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

Автор: Bobbie Johnson
Дата Створення: 7 Квітень 2021
Дата Оновлення: 15 Травень 2024
Anonim
Лекція 29. Графіка в С++. WinAPI. Створення рухомих графічних об’єктів
Відеоролик: Лекція 29. Графіка в С++. WinAPI. Створення рухомих графічних об’єктів

Зміст

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


Інструкції

Немає прямого методу для створення кола в OpenGL, але все ж можна створити один з правими рядками коду (Creatas / Creatas / Getty Images)
  1. Створіть базову програму з вікном вікна ViewLog з OpenGL. Якщо ви не знайомі з цим процесом, на сторінці OpenGL є підручник.

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

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

    void drawCircle (Глінт x, GLint y, промінь GLint, int num_lines) {}

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


  4. Додайте в ключі наступний код конфігурації:

    float кут 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. Після виклику glBegin () введіть наступний код із циклу a до:

    для (int i = 0; i <num_lines; i ++) {кут = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (кут) * радіус), і + (без (кут) * радіус)); }

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


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

    glEnd () GO

    Це відкриє OpenGL, що ви закінчили малювати рядки.

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

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

Що вам потрібно

  • Комп'ютер з підтримкою OpenGL
  • Текстовий редактор і інструменти компілятора мови C або середовище розробки C