Дипломная работа





НазваниеДипломная работа
страница4/12
Дата публикации14.12.2014
Размер0.6 Mb.
ТипДиплом
100-bal.ru > Информатика > Диплом
1   2   3   4   5   6   7   8   9   ...   12

2.2 Графические примитивы


Все графические примитивы задаются с помощью вершин (vertices) – координат, определяющих точки, концы сегментов линий и углы многоугольников.

Графические примитивы: точки, линии, многоугольники.

Вершина задается с помощью функции glVertex3d (x, y, z).

Для каждого типа примитива набор вершин заключается в операторные скобки – команды glBegin() и glEnd(). Аргумент функции glBegin() определяет тип описываемого вершинами графического примитива.

В роли аргумента могут выступать следующие значения:

  • GL_POINTS – отдельные точки;

  • GL_LINES – каждая пара вершин задает отрезок;

  • GL_LINES_STRIP – серия соединенных отрезков;

  • GL_LINE_LOOP – серия соединенных отрезков, последняя точка соединяется с первой;

  • GL_TRIANGLES – тройка вершин задает треугольник;

  • GL_TRIANGLE_STRIP – рисуются треугольники с общей стороной;

  • GL_TRIANGLE_FAN – рисуются треугольники с общей стороной, другой способ соединения сторон;

  • GL_QUADS – четыре вершины задают четырехугольник;

  • GL_QUAD_STRIP – четырехугольники с общей стороной;

  • GL_POLYGON – рисуется простой правильный многоугольник.

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

Функция glLineWidth() задает толщину отображаемой линии.

По умолчанию многоугольники рисуются со сплошной закраской, но их можно рисовать в виде контура или в виде точек в вершинах. Закраска многоугольника может быть сплошной или фактурной по некоторому заданному образцу. Если соседние многоугольники имеют общие границы или вершины, пикселы на границах или вершинах рисуются всего один раз – они принадлежат только одному многоугольнику – с той целью, чтобы у частично прозрачных многоугольников границы не рисовались дважды.

Многоугольники имеют две стороны – лицевую и оборотную, которые могут быть отрисованы различно, в зависимости от того, какая сторона сейчас видна. Это позволяет получать такой разрез сплошных объектов, где ясно различаются внутренние и внешние части. По умолчанию обе поверхности рисуются одинаково. Для изменения режима по умолчанию или рисования только контура или вершин используется функция glPolygonMode(face, mode). Первый аргумент определяет сторону отрисовки: лицевую, внутреннюю или обе одновременно. Второй аргумент задает режим отрисовки: точками, линиями или заполнением.

2.3 Векторы нормали


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

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

Функция glNormal() используется для установки текущей нормали, определяемой значением аргумента. Последующие вызовы glVertex() связывают определяемые вершины с текущей нормалью.

В любой точке поверхности есть два перпендикулярных вектора, направленных в противоположных направлениях. Нормалью считается тот, что ориентирован вовне от моделируемой поверхности. Векторы нормали нормируются каждый раз при выполнении модельных преобразований – при повороте и параллельном переносе. Можно автоматически нормализовать векторы нормали с помощью команды glEnable(GL_NORMALIZE).


2.4 Модельные преобразования


В OpenGL определены три команды модельных преобразований: glTranslate(), glRotate(), glScale(). Эти функции трансформируют объект (или систему координат, если думать об изменении системы координат, а не объекта) посредством сдвига, вращения и масштабирования.

Перенос.

void glTranslate{fd} (TYPE x, TYPE y, TYPE z);

Умножает текущую матрицу на матрицу, передвигающую (переносящую) объект на расстояния x, y, z, переданные в качестве аргументов команды, по соответствующим осям (или перемещает локальную координатную систему на те же расстояния).

Поворот.

void glRotate{fd} (TYPE angle, TYPE x, TYPE y, TYPE z);

Умножает текущую матрицу на матрицу, которая поворачивает объект (или локальную координатную систему) в направлении против часовой стрелки вокруг луча из начала координат, проходящего через точку (x, y, z). Параметр angle задает угол поворота в градусах.

Масштабирование.

void glScale{fd} (TYPE x, TYPE y, TYPE z);

Умножает текущую матрицу на матрицу, которая растягивает, сжимает или отражает объект вдоль координатный осей. Каждая x -, y- и z- координата каждой точки объекта будет умножена на соответствующий аргумент x, y или z команды glScale*(). При рассмотрении преобразования с точки зрения локальной координатной системы, оси этой системы растягиваются, сжимаются или отражаются с учетом факторов x, y и z, и ассоциированный с этот системой объект меняется вместе с ней.

glScale*() – это единственная из трех команд модельных преобразований, изменяющая размер объекта: масштабирование с величинами более 1.0 растягивает объект, использование величин меньше 1.0 сжимает его. Масштабирование с величиной -1.0 отражает объект относительно оси или осей. Единичными аргументами (то есть аргументами, не имеющими эффекта) являются (1.0, 1.0, 1.0). Следует ограничивать использование glScale*() теми случаями, когда это действительно необходимо. Использование glScale*() снижает быстродействие расчетов освещенности, так как вектора нормалей должны быть нормализованы заново после преобразования.


1   2   3   4   5   6   7   8   9   ...   12

Похожие:

Дипломная работа iconДипломная работа
Мамзеров Д. В., навигация и интерфейс в средах виртуальной реальности, дипломная работа
Дипломная работа iconДипломная работа по теме: “ Интерактивная база данных по дендроклиматологии” Работу
Моя дипломная работа очень актуальна, потому что дендроклиматология – малоизученная и малоизвестная область биологии. Дендроклиматология...
Дипломная работа iconДипломная работа содержит 104 листа, 6 таблиц, 35 рисунков. Тема:...
Данная дипломная работа посвящена проблемам разработки и внедрения устройств связи высокочастотного и сверхвысокочастотного диапазона....
Дипломная работа iconНазвание организации
Заголовок «Дипломная работа» или «Курсовая работа»: Times New Roman, 14 (вопреки П. 113), по центру. Затем – 2 пустые строки
Дипломная работа iconРеферат. Содержание
Дипломная работа (далее просто работа) выполняется на листах формата А4 с размерами полей: сверху – 20 мм, снизу – 20мм, справа –...
Дипломная работа icon2 требования к содержанию работы
Дипломная работа (далее просто работа) выполняется на листах формата А4 с соблюдением следующих размеров полей: правое – 10 мм, верхнее...
Дипломная работа iconДипломная работа

Дипломная работа iconРеферат. Содержание
Дипломная работа (далее просто работа) выполняется на листах формата А4 с размерами полей: сверху – 20 мм, снизу –20мм, справа- 15мм,...
Дипломная работа iconДипломная работа пгу 030501

Дипломная работа iconКнига 1
Объем работы – реферат от 12 до 25 печатных листов, курсовая работа – от 20 до 30 страниц, дипломная работа 60-70 страниц компьютерного...
Дипломная работа iconТребования к дипломной работе учащихся 10 11-х классов
Дипломная работа заключительная работа учебно-исследовательского характера, выполняемая оканчивающими университеты, экономические,...
Дипломная работа iconЛатинские заимствования в современном русском литературном языке (дипломная работа)

Дипломная работа iconДипломная работа Создание программы помогающей изучать английский язык

Дипломная работа iconДипломная работа на тему: «Совершенствование организации поддержки...
Дипломная работа «Совершенствование организации поддержки и развития малого предпринимательства в муниципальном районе на примере...
Дипломная работа iconДипломная работа
Соответствие современной интернет-рекламы психологическим особенностям подростков
Дипломная работа iconДипломная работа не менее 65 страниц без приложения
Курсовая работа выполняется на одной стороне листа белой бумаги формата А4 (210 Х 297 мм). Иллюстрированный материал (таблицы, схемы,...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск