Як відобразити коло в OpenGL

Автор: Eugene Taylor
Дата Створення: 13 Серпень 2021
Дата Оновлення: 14 Листопад 2024
Anonim
Лекція 29. Графіка в С++. WinAPI. Створення рухомих графічних об’єктів
Відеоролик: Лекція 29. Графіка в С++. WinAPI. Створення рухомих графічних об’єктів

Зміст

OpenGL або Open Graphics Library - це графічний API (Інтерфейс програмування прикладних програм) для написання 2D та 3D додатків різними мовами програмування та платформами. Він може використовуватися для відтворення будь-чого - від простих примітивних об’єктів до складних 3D-сцен. Open GL широко використовується в комп'ютерному дизайні, науковій візуалізації, імітації польотів та відеоіграх. Незважаючи на те, що OpenGl не має методів безпосереднього малювання кола, його можна побудувати, використовуючи ряд рядків. Вам потрібно буде мати базові знання OpenGL, щоб намалювати коло.

Крок 1

Створіть базову програму за допомогою вікна перегляду OpenGL. Якщо ви не знайомі з цим процесом, на сторінці OpenGL є підручник.


Крок 2

Додайте файл math.h.header до своєї програми, ввівши такий код на початку програми: #include . Це забезпечить вам функції cos () та sin () (синус та косинус), необхідні для обчислення кола.

Крок 3

Почніть метод кола, додавши такий код перед відображенням функції зворотного виклику:

void drawCircle (GLint x, GLint y, GLint radius, int num_lines) {}

Змінні "x" та "y" будуть використані для визначення центру кола у вашому вікні, тоді як "радіус" встановлює радіус кола. Ціле число "num_lines" - це кількість рядків, що використовуються для складання кола. Чим вище це число, тим плавнішим буде коло.

Крок 4

Додайте такий код конфігурації всередину клавіш:

плаваючий кут GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Змінна "кут" міститиме кут ліній, що використовуються для побудови кола. Виклик функції glColor3f () встановлює колір ліній чорним, де ряд із трьох 0 відповідає інтенсивності червоного, зеленого та синього за шкалою від 0 до 1.


Крок 5

Додайте такий код під функцією glColor3f () з кроку 4:

glBegin (GL_LINE_LOOP) GO

Це говорить OpenGL, що будь-які наступні рядки включають малювання ліній. Зокрема, він намалює "GL_LINE_LOOP", який являє собою ряд з'єднаних ліній.

Крок 6

Введіть такий код для циклу for після виклику glBegin ():

for (int i = 0; i <number_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (кут) * радіус), y + (sin (кут) * радіус)); }

Цей цикл робить три речі. По-перше, він повторюється відповідно до значення "num_lines", де num_lines є цілим числом, малюючи лінію в кожній ітерації і отримуючи коло, що складається з прямих рядків num_lines. По-друге, він обчислює кут прямих відносно центру кола в радіанах. "M_P" - константа, визначена в math.h, що представляє pi. Нарешті, виклик glVertex2f () обчислює координати кінцевих точок ліній.


Крок 7

Після циклу, введіть наступний рядок коду:

glEnd () GO

Це покаже OpenGL, що ви закінчили малювати лінії.

Крок 8

Щоб намалювати коло в сцені, додайте виклик методу drawCircle () до функції відображення зворотного виклику програми, яку потрібно підготувати на кроці 1. Вкажіть значення x, y, радіус і num_lines, де x і y представляють точку у вашій сцені радіус - це радіус кола, а num_lines - кількість рядків, що складають коло. Знову ж таки, якщо ви не знайомі з OpenGL та відображенням зворотного виклику, див. Підручник з OpenGL.

Крок 9

Складіть та запустіть свою програму. Якщо ви правильно ввели функції, вона повинна компілюватись без помилок. Якщо ви вказали значення x, y та радіус, на білому тлі ви побачите чорне коло.

Тіловий колір знаходиться на півдорозі між синім і зеленим, і чудово виглядає на багатьох тонах шкіри. Синьо-зелені сукні пропонують можливість поєднання з аксесуарами інших яскравих або нейтральних к...

Обов'язки учнів у класі

John Pratt

Листопад 2024

Щоб підтримувати безпечне та ефективне навчальне середовище, кожен член класу повинен співпрацювати та нести певні обов'язки. Вчитель встановлює відповідні правила поведінки в класі та стежить за ...

Прочитайте Сьогодні