Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.pdf
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
2.2 Mб
Скачать

рица тела используется для определения граней, которые экранируются самим этим телом.

Пусть наблюдатель находится в бесконечности на положительной полуоси z и смотрит на начало координат вдоль этой оси. В однородных координа-

тах

вектор

направления, вдоль

которого

смотрит

наблюдатель, есть

E = [0

0 -1

0]. Это одновременно и координаты точки, которая по оси z на-

ходится в - ¥ . Нас интересует только то, с какой стороны граней нашего тела находится бесконечно удалённая точка. Если скалярное произведениеE на столбец, соответствующий какой-либо плоскости в матрице тела, отрицательно, то эта плоскость невидима из нашей точки наблюдения. Иными словами, условие

 

 

 

 

E ×V * < 0

(64)

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

6.6. Фракталы

Латинское fractus означает «составленный из фрагментов», или «дробный». В 1975 году французский математик Бенуа Мандельброт издал книгу

«The Fractal Geometry of Nature»; с того времени словофрактал стало обще-

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

Рисунок 61 – Фрактал

133

Фракталом Мандельброта (рисунок 61) названа фигура, которая порождается следующим итерационным циклом:

zk +1 = zk2 + z0 ,

(65)

где k = 0,1,...,n .

 

Величины zk – это комплексные числа( zk = xk + iyk ), причём

стартовые

значения x0 и y0 – это координаты точки изображения. Для каждой точки изо-

бражения итерации выполняются ограниченное число раз (например, n = 500). Цикл итераций для фрактала Мандельброта можно получить в диапазоне

x Î[- 2.2 ... 1], y Î[-1.2 ... 1.2]. Данный алгоритм дает приближение к так называемому множеству Мандельброта. Множеству Мандельброта принадлежат точки, которые в течение бесконечного числа итераций не уходят в бесконечность (точки, имеющие черный цвет на рисунке). Точки, принадлежащие границе множества (именно там возникает сложные структуры) уходят в бесконечность за конечное число итераций, а точки, лежащие за пределами множества, уходят в бесконечность через несколько итераций (белый фон).

Рисунок 62 – Последовательное деление

Фрактал Джулия внешне совсем не похож на фрактал Мандельброта, однако он определяется итерационным циклом, почти полностью тождественным с циклом генерации Мандельброта, и также относится к классу алгебраических фракталов. Формула итераций для фрактала Джулия такова:

zk +1 = zk2 + c

(66)

134

где с – комплексная константа.

Условием завершения итераций является | zk |> 2 (так же, как и для фрак-

тала Мандельброта).

Геометрические фракталы – объекты, форма которых может быть описана как последовательность простых геометрических операций. Известный пример – кривая Кох. На рисунок 62 показан способ последовательного деления каждого отрезка прямой на три части.

К иному классу относятся фракталы, генерируемые по методу систем итеративных функций (Iterated Function Systems – IFS) 21 . Этот метод может быть описан, как последовательный итеративный расчёт координат новых точек в пространстве

xk +1 = Fx (xk , yk ),

(67)

yk +1 = Fy (xk , yk ),

где Fx и Fy – функции преобразования координат, например аффинного преоб-

разования. Эти функции и определяют форму фрактала.

Метод IFS применяется не только для создания изображений. Его начинают активно использовать для эффективного сжатия графических изображений при записи в файлы. Основная идея: поиск самоподобных фрагментов в изображении.

Контроль знаний.

1.Что необходимо для создания реалистичной модели объекта?

2.Для чего используются сплайновые поверхности?

3.Какими методами осуществляется закраска поверхностей?

4.Что такое инверсная кинематика движения?

5.Что такое рендеринг?

6.Какие виды сплайнов применяются в компьютерной графике?

7.Что такое геометрическое моделирование?

8.Какие существуют методы построения моделей?

9.Что такое проецирование?

10.Какие проекции существуют?

11.Для чего необходимо преобразование координат в компьютерной графике?

12.Как производится построение кривой Безье?

21

Здесь и далее числа даны в шестнадцатеричном представлении

135

13.Какие существуют методы удаления невидимых частей изображения в компьютерной графике?

14.Что такое фрактал?

136