Содержание
OpenGL, или открытая графическая библиотека, представляет собой графический API (интерфейс прикладного программирования) для написания 2D- и 3D-приложений на различных языках программирования и платформах. Его можно использовать для рендеринга чего угодно, от простых примитивных объектов до сложных 3D-сцен. Open GL широко используется в компьютерном дизайне, научной визуализации, моделировании полета и видеоиграх. Несмотря на то, что OpenGl не имеет методов для прямого рисования круга, его можно построить, используя серию линий. Чтобы нарисовать круг, вам потребуется базовое знание OpenGL.
Шаг 1
Создайте базовую программу с окном просмотра OpenGL. Если вы не знакомы с этим процессом, на странице OpenGL есть руководство.
Шаг 2
Добавьте файл math.h.header в свою программу, введя следующий код в начале программы: #include Запустите метод круга, добавив следующий код перед отображением функции обратного вызова: void drawCircle (GLint x, GLint y, GLint radius, int num_lines) {} Переменные «x» и «y» будут использоваться для определения центра круга в вашем окне, в то время как «радиус» устанавливает радиус круга. Целое число num_lines - это количество линий, используемых для создания круга. Чем выше это число, тем более гладким будет круг. Добавьте следующий код конфигурации внутри ключей: float angle GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO. Переменная "angle" будет содержать угол линий, используемых для построения круга. Вызов функции glColor3f () устанавливает черный цвет линий, где серия из трех 0 соответствует интенсивности красного, зеленого и синего цветов по шкале от 0 до 1. Добавьте следующий код под функцией glColor3f () из шага 4: glBegin (GL_LINE_LOOP) GO Это сообщает OpenGL, что любые последующие линии включают линии рисования. В частности, он будет рисовать «GL_LINE_LOOP», который представляет собой серию соединенных линий. Введите следующий код для цикла for после вызова glBegin (): для (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (угол) * радиус), y + (sin (угол) * радиус)); } Этот цикл выполняет три функции. Сначала выполняется итерация в соответствии со значением «num_lines», где num_lines - целое число, рисуя линию на каждой итерации, и в результате получается круг, состоящий из прямых линий num_lines. Во-вторых, он вычисляет угол линий относительно центра круга в радианах. «M_P» - это константа, определенная в math.h, представляющая число пи. Наконец, вызов glVertex2f () вычисляет координаты конечных точек линий. После цикла введите следующую строку кода: glEnd () GO Это сообщит OpenGL, что вы закончили рисовать линии. Чтобы нарисовать круг в сцене, добавьте вызов метода drawCircle () к функции отображения обратного вызова программы, которую необходимо подготовить на шаге 1. Укажите значения x, y, radius и num_lines, где x и y представляют точку. в вашей сцене радиус - это радиус круга, а num_lines - количество линий, составляющих круг. Опять же, если вы не знакомы с OpenGL и отображением обратного вызова, см. Руководство по OpenGL. Скомпилируйте и запустите вашу программу. Если вы правильно ввели функции, он должен скомпилироваться без ошибок. Если вы указали значения для x, y и радиуса, вы должны увидеть черный круг на белом фоне.Шаг 3
Шаг 4
Шаг 5
Шаг 6
Шаг 7
Шаг 8
Шаг 9