Студопедия — Задание векторных примитивов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Задание векторных примитивов






Лекция 4. Библиотека OpenGL

 

В OpenGL векторными примитивами являются точки, линии и многоугольники. Они описываются в терминах их вершин – совокупностей координат. Как мы знаем, в разных координатных системах вершина может описываться парой, тройкой или четверкой координат. Смысл используемых понятий точки, линии и многоугольника отличается от математического. Это связано с ограниченными возможностями машинных вычислений, в частности с округлением и растеризацией.

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

Предоставляемый библиотекой набор примитивов является достаточным для создания сложных моделей. Любые кривые или поверхности могут быть получены путем аппроксимации.

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

glVertex[2 3 4][s i f d](координаты)

glVertex[2 3 4][s i f d][v](координаты).

Если в команде опущена координата z, то она устанавливается равной 0, если координата w – то равной 1.

Набор вершин ограничивается операторными скобками glBegin(mode) и glEnd(), а тип объекта, который он определяет, задается параметром mode.

 

glBegin();

Команды задания вершин и их атрибутов, например цвета

glEnd;

mode – вид примитива, может принимать следующие значения:

 

GL_POINTS – точки. Каждая вершина задает координаты некоторой точки;

GL_LINES – линии. Каждая отдельная пара вершин определяет отрезок; если задано нечетное число вершин, то последняя вершина игнорируется;

GL_LINE_STRIP – ломаная линия. Каждая следующая вершина задает отрезок вместе с предыдущей;

GL_LINE_LOOP – замкнутая ломаная. В отличие от предыдущего примитива только в том, что последний отрезок определяется последней и первой вершиной, образуя замкнутую ломаную;

GL_TRIANGLES – треугольники. Каждая отдельная тройка вершин определяет треугольник; если задано не кратное трем число вершин, то последние вершины игнорируются;

GL_TRIANGLE_STRIP – связанные треугольники. Каждая следующая вершина задает треугольник вместе с двумя предыдущими (рис 4.1 а);

GL_TRIANGLE_FAN – веер треугольников. Треугольник задается каждой вершиной, начиная с третьей. Вершины n, n - 1 и 1 задают треугольник n. Всего будет выведено N-2 треугольников (рис 4.1 б);

GL_QUADS – четырехугольники. Каждая отдельная четверка вершин определяет четырехугольник; если задано не кратное четырем число вершин, то последние вершины игнорируются;

GL_QUAD_STRIP – связанные четырехугольники. Четырехугольник с номером n определяется вершинами с номерами 2n-1, 2n, 2n+2, 2n+1 (рис 4.1 в);

GL_POLYGON – многоугольник. Вершины от 1 до N задают один многоугольник.

 

Внешний вид примитивов задают команды? определяющие следующие атрибуты:

цвет – glColor;

размер точек - glPointSize();

толщина линии – glLineWidth;

тип (шаблон) линии – glLineStipple;

способ представления полигонов – glPolygonMode;

тип (шаблон) заполнения полигонов.







Дата добавления: 2015-10-19; просмотров: 495. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия