Сделай Сам Свою Работу на 5

Операторные скобки glBegin / glEnd





Для того, чтобы задать атрибуты графического примитива, одних координат вершин недостаточно. Эти вершины надо объединить в одно целое, определив необходимые свойства. Для этого в OpenGL используются так называемые операторные скобки, являющиеся вызовами специальных команд OpenGL Определение примитива или последовательности примитивов происходит между вызовами команд:

· void glBegin(GLenum mode);

· void glEnd(void);

Параметр mode определяет тип примитива, который задается внутри и может принимать следующие значения (табл. 3.3, рис 3.2).

 

Таблица 3.3. Типы примитивов

Тип примитива Назначения вершин
GL_POINTS каждая вершина задает координаты некоторой точки.
GL_LINES каждая отдельная пара вершин определяет отрезок; если задано нечетное число вершин, то последняя вершина игнорируется.
GL_LINE_STRIP каждая следующая вершина задает отрезок вместе с предыдущей.
GL_LINE_LOOP отличие от предыдущего примитива только в том, что последний отрезок определяется последней и первой вершиной, образуя замкнутую ломаную.
GL_TRIANGLES каждая отдельная тройка вершин определяет треугольник; если задано не кратное трем число вершин, то последние вершины игнорируются.
GL_TRIANGLE_STRIP каждая следующая вершина задает треугольник вместе с двумя предыдущими.
GL_TRIANGLE_FAN треугольники задаются первой и каждой следующей парой вершин (пары не пересекаются).
GL_QUADS каждая отдельная четверка вершин определяет четырехугольник; если задано не кратное четырем число вершин, то последние вершины игнорируются.
GL_QUAD_STRIP четырехугольник с номером n определяется вершинами с номерами 2n-1, 2n, 2n+2, 2n+1.
GL_POLYGON последовательно задаются вершины выпуклого многоугольника.

 



Рис. 3.2. Примитивы OpenGL

 

Например, чтобы нарисовать треугольник с разными цветами в вершинах, можно использовать следующий код:

glBegin(GL_TRIANGLES); // красный glColor3f(1, 0, 0); glVertex3i(0, 0, 0); // зеленый glColor3ub(0,255,0); glVertex3i(1, 0, 0); // синий glColor3f(0,0,1); glVertex3i(1, 1, 0); glEnd();

 

Кроме задания самих многоугольников, можно определить метод их отображения на экране. Однако сначала надо определить понятие лицевых и обратных граней.

Под гранью понимается одна из сторон многоугольника, и по умолчанию лицевой считается та сторона, вершины которой обходятся против часовой стрелки. Направление обхода вершин лицевых граней можно изменить вызовом команды void glFrontFace (GLenum mode) со значением параметра mode равным GL_CW (clockwise), а вернуть значение по умолчанию можно, указав GL_CCW (counter-clockwise).



 

Чтобы изменить метод отображения многоугольника используется команда void glPolygonMode (GLenum face, Glenum mode). Параметр mode определяет, как будут отображаться многоугольники:

GL_POINT будут отображаться только вершины многоугольников
GL_LINE многоугольник будет представляться набором отрезков
GL_FILL многоугольники будут закрашиваться текущим цветом с учетом освещения (этот режим установлен по умолчанию)

Параметр face устанавливает тип многоугольников, к которым будет применяться эта команда и может принимать следующие значения:

GL_FRONT для лицевых граней
GL_BACK для обратных граней
GL_FRONT_AND_BACK для всех граней

 

Лабораторная работа №8

Цель работы: овладение методами программирования трехмерной компьютерной графики с использованием библиотек OpenGL.

 

Отчет по работе должен включать в себя следующие разделы:

Техническое задание

Построение с использованием языка программирования высокого уровня и графических библиотек трехмерной модели детали (по индивидуальному заданию лабораторной работы №1). В качестве графических библиотек могут использоваться инструментальные средства OpenGl и DirectX, а также их надстройки (GLUT, GLAUX и т.д.).

Анализ решаемой задачи

Проведение анализа:

· Выбор используемых инструментальных средств (языка программирования и графической библиотеки);



· Определение геометрических примитивов и объектов, на основе которых возможна реализация поставленной задачи.

Выполнение задания

Описание этапов реализации технического задания с приведением исходного кода программы и изображений сцены.

Выводы по работе

Описание возможностей используемых инструментальных средств, функций и их параметров, выявленных достоинств и недостатков.

 

 

При полигональном моделировании для быстрого определения координат точек полигонов можно использовать построенную в среде AutoCAD модель детали. В этом случае в среде AutoCAD необходимо:

· Включить режим объектной привязки «OSNAP»;

· Установить центр координат (панель «UCS» ð «Origin UCS»);

· Указать точки, координаты которых требуется получить (панель «Inquiry» ð «Locate Point»).

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.