Как сделать круг в OpenGL

Автор: Bobbie Johnson
Дата создания: 3 Апрель 2021
Дата обновления: 18 Ноябрь 2024
Anonim
OpenGL - Урок 2 - точка, линия, треугольник, круг
Видео: OpenGL - Урок 2 - точка, линия, треугольник, круг

Содержание

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


направления

В OpenGL нет прямого способа сделать круг, но все еще можно составить круг с правильными строками кода (Creatas / Creatas / Getty Images)
  1. Создайте базовую программу с окном просмотра OpenGL. Если вы не знакомы с этим процессом, на странице OpenGL есть учебное пособие.

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

  3. Запустите метод круга, добавив следующий код перед отображением функции обратного вызова:

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

    Переменные «x» и «y» будут использоваться для определения центра круга в вашем окне, в то время как «луч» устанавливает радиус круга. Целое число «num_lines» - количество строк, используемых для составления круга. Чем больше это число, тем более гладким будет выглядеть круг.


  4. Добавьте следующий код конфигурации внутри ключей:

    угол плавания GO int num_lines GO glColor3f (0,0, 0,0, 0,0) GO.

    Переменная «угол» будет содержать угол линий, используемых для построения круга. Вызов функции glColor3f () устанавливает цвет линий на черный, где серия из трех нулей соответствует интенсивности красного, зеленого и синего по шкале от 0 до 1.

  5. Добавьте следующий код ниже функции glColor3f () из шага 4:

    glBegin (GL_LINE_LOOP) GO

    Это говорит OpenGL, что любые последующие линии включают рисование линий. В частности, он нарисует «GL_LINE_LOOP», который представляет собой серию соединенных линий.

  6. Введите следующий код из цикла to после вызова glBegin ():

    for (int i = 0; i <num_lines; i ++) {angle = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (угол) * радиус) и + (без (угол) * радиус)); }

    Этот галстук делает три вещи. Во-первых, он выполняет итерацию в соответствии со значением «num_lines», где num_lines является целым числом, рисуя линию на каждой итерации и получая в результате окружность, состоящую из num_lines из прямых линий. Во-вторых, вычислите угол линий относительно центра круга в радианах. «M_P» - это константа, определенная в math.h, представляющая число «пи». Наконец, вызов glVertex2f () вычисляет координаты конечных точек строк.


  7. После цикла введите следующую строку кода:

    glEnd () GO

    Это скажет OpenGL, что вы закончили рисовать линии.

  8. Чтобы нарисовать круг в сцене, добавьте вызов из метода drawCircle () в функцию обратного вызова программы, которую необходимо подготовить на шаге 1. Укажите значения x, y, radius и a_line, где x и y представляют точку в его сцене радиус - это радиус круга, а num_lines - количество линий, из которых состоит круг. Опять же, если вы не знакомы с OpenGL и отображением обратного вызова, обратитесь к учебному пособию по OpenGL.

  9. Скомпилируйте и запустите вашу программу. Если вы ввели функции правильно, он должен скомпилироваться без ошибок. Если вы указали значения x, y и radius, вы должны увидеть черный круг на белом фоне.

Что вам нужно

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