Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика лабораторный практикум.doc
Скачиваний:
233
Добавлен:
01.05.2014
Размер:
1.41 Mб
Скачать

3.5. Область вывода

После применения матрицы проекций на вход следующего преобразования подаются так называемые усеченные (clipped) координаты. Затем находятся нормализованные координаты вершин по формуле:

(xn, yn, zn)T= (xc/wc , yc/wc, zc/wc)T

Область вывода представляет собой прямоугольник в оконной системе координат, размеры которого задаются командой:

void glViewPort (GLint x, GLint y, GLint width, GLint height)

Значения всех параметров задаются в пикселах и определяют ширину и высоту области вывода с координатами левого нижнего угла (x,y) в оконной системе координат. Размеры оконной системы координат определяются текущими размерами окна приложения, точка (0,0) находится в левом нижнем углу окна.

Используя параметры команды glViewPort(), OpenGL вычисляет оконные координаты центра области вывода (ox,oy) по формулам ox=x+width/2, oy=y+height/2.

Пусть px=width, py=height, тогда можно найти оконные координаты каждой вершины:

(xw, yw, zw)T = ( (px/2) xn+ ox , (py/2) yn+ oy , [(f-n)/2] zn+(n+f)/2 )T

При этом целые положительные величины n и f задают минимальную и максимальную глубину точки в окне и по умолчанию равны 0 и 1 соответственно. Глубина каждой точки записывается в специальный буфер глубины (z-буфер), который используется для удаления невидимых линий и поверхностей. Установить значения n и f можно вызовом функции

voidglDepthRange(GLclampdn,GLclampdf)

Команда glViewPort() обычно используется в функции, зарегистрированной с помощью команды glutReshapeFunc(), которая вызывается, если пользователь изменяет размеры окна приложения.

3.6. Цель, требования и рекомендации к выполнению задания

Цель выполнения задания: знакомство с требованиями, которые необходимо выполнить при выводе 3Dобъектов с использованием OpenGL.

Требования и рекомендации к выполнению задания:

- проанализировать полученное задание, выделить информационные объекты и действия;

- разработать программу с использованием требуемых операций по трехмерному представлению объектов.

3.7. Задания

Разработать программу, реализующую представление разработанного вами трехмерного рисунка, используя предложенные функции библиотеки OpenGL(матрицы видового преобразования, проецирование).

Разработанная программа должна быть пополнена возможностями остановки интерактивно различных атрибутов через вызов соответствующих элементов интерфейса пользователя (замена типа проекции, управление преобразованиями как с помощью мыши, так и с помощью диалоговых элементов)

4. Фрактал и фрактальная геометрия

Понятия фрактал и фрактальная геометрия, появившиеся в конце 70-х, с середины 80-х прочно вошли в обиход математиков и программистов. Слово фрактал образовано от латинских слов fractus - дробный и frangere - ломать, что отражает суть фрактала, как "изломанного", нерегулярного множества. Оно было предложено Бенуа Мандельбротом в 1975 году для обозначения нерегулярных, но самоподобных структур, которыми он занимался. Рождение фрактальной геометрии принято связывать с выходом в 1977 году книги Мандельброта `The Fractal Geometry of Nature'. В его работах использованы научные результаты других ученых, работавших в период 1875-1925 годов в той же области (Пуанкаре, Фату, Жюлиа, Кантор, Хаусдорф). Но только в наше время удалось объединить их работы в единую систему.

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

Одним из основных свойств фракталов является самоподобие. Определение фрактала, данное Мандельбротом, звучит так: "Фракталом называется структура, состоящая из частей, которые в каком-то смысле подобны целому".

Один из методов генерации фракталов – использование комплексного преобразования. Комплексные числа имеют вид

Z = X + iY, где X и Y действительные числа, а i2=-1.

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

Естественно, что при этом требуется – нелинейная зависимость между результатом и начальным значением, то.есть динамический закон

рис. 4.1. Ппроцесс порождения

XN+1=f(XN) должен быть сложнее, чемXN+1=KXN

Пока с целое – ничего особенного, с вещественное – множество Мандельброта (см. рис. задания)

Соседние файлы в предмете Компьютерная Графика