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

Автор: Eugene Taylor
Дата Створення: 13 Серпень 2021
Дата Оновлення: 1 Липня 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 та радіус, на білому тлі ви побачите чорне коло.

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

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

Цікаво На Сайті