Фрактальная графика
Фрактальная графика - раздел компьютерной графики, изучающий методы и средства создания и обработки изображений, состоящих из фракталов с помощью программно-аппаратных вычислительных комплексов Фрактальная графика, как и векторная, основана на математических вычислениях. Однако базовым элементом фрактальной графики является фрактал. Слово фрактал образовано от латинского fractus и в переводе означает состоящий из фрагментов. Фрактал - самоподобная структура, состоящая из частей, каждая из которых в каком-то смысле подобна целому Это очаровательный вид графики, дающий картины потрясающей красоты. Она используется в графических пакетах и, как правило, ее применяют программисты, желающие получить необычные и неожиданные результаты, которые к тому же занимают очень мало места в программном коде Само изображение в фрактальной графике вообще нигде не храниться и потому не требует места. Храниться только математическая формула, по которой оно строиться. Всякий раз, когда изображение надо строить, оно исполняется вычислительным путем. Интересно, что если поменять в формуле несколько параметров, то можно получить совершенно другую картину. Так удается несколькими формулами создать бесконечное множество прекрасных иллюстраций В природе многие объекты имеют фрактальную структуру. Фрактал подобен острову с береговой линией, кажущейся ровной издали, но становящейся совершенно нерегулярной по мере приближения. Фракталы классифицируются на: Геометрические фракталы. Алгебраические фракталы. Стохастические фракталы.
Геометрические фракталы
Фракталы этого класса самые наглядные. В двумерном случае их получают с помощью некоторой ломаной (или поверхности в трехмерном случае), называемой генератором. За один шаг алгоритма каждый из отрезков, составляющих ломанную, заменяется на ломаную - генератор, в соответствующем масштабе. В результате бесконечного повторения этой процедуры, получается геометрический фрактал. В машинной графике использование геометрических фракталов необходимо при получении изображений деревьев, кустов, береговой линии. Двухмерные геометрические фракталы используются для создания объемных текстур (рисунка на поверхности объекта). Рассмотрим один из таких фрактальных объектов – триадную кривую Кох.
Рис.3Триадная кривая Кох Рис 4. Построение "дракона" Хартера-Хейтуэя. Рис 5 6. Множество Мандельброта. Рассмотрим один из таких фрактальных объектов - триадную кривую Кох. Построение кривой начинается с отрезка единичной длины (рис.3) - это 0-е поколение кривой Кох. Далее каждое звено (в нулевом поколении один отрезок) заменяется на образующий элемент, обозначенный на рис.3 через n=1. В результате такой замены получается следующее поколение кривой Кох. В 1-ом поколении - это кривая из четырех прямолинейных звеньев, каждое длиной по 1/3. Для получения 3-го поколения проделываются те же действия - каждое звено заменяется на уменьшенный образующий элемент. Итак, для получения каждого последующего поколения, все звенья предыдущего поколения необходимо заменить уменьшенным образующим элементом. Кривая n-го поколения при любом конечном n называется предфракталом. На рис.3 представлены пять поколений кривой. При n стремящемся к бесконечности кривая Кох становится фрактальным обьектом. Для получения другого фрактального объекта нужно изменить правила построения. Пусть образующим элементом будут два равных отрезка, соединенных под прямым углом. В нулевом поколении заменим единичный отрезок на этот образующий элемент так, чтобы угол был сверху. Можно сказать, что при такой замене происходит смещение середины звена. При построении следующих поколений выполняется правило: самое первое слева звено заменяется на образующий элемент так, чтобы середина звена смещалась влево от направления движения, а при замене следующих звеньев, направления смещения середин отрезков должны чередоваться. На рис.4 представлены несколько первых поколений и 11-е поколение кривой, построенной по вышеописанному принципу. Предельная кривая (при n стремящемся к бесконечности)называется драконом Хартера-Хейтуэя.
Алгебраические фракталы. Самая крупная группа фракталов. Получают их с помощью нелинейных процессов в n-мерных пространствах. Наиболее изучены двухмерные процессы. Интерпретируя нелинейный итерационный процесс, как дискретную динамическую систему, можно пользоваться терминологией теории этих систем: фазовый портрет, установившийся процесс, аттрактор и т.д. Известно, что нелинейные динамические системы обладают несколькими устойчивыми состояниями. То состояние, в котором оказалась динамическая система после некоторого числа итераций, зависит от ее начального состояния. Поэтому каждое устойчивое состояние (или как говорят - аттрактор) обладает некоторой областью начальных состояний, из которых система обязательно попадет в рассматриваемые конечные состояния. Таким образом фазовое пространство системы разбивается на области притяжения аттракторов. Если фазовым является двухмерное пространство, то окрашивая области притяжения различными цветами, можно получить цветовой фазовый портрет этой системы (итерационного процесса). Меняя алгоритм выбора цвета, можно получить сложные фрактальные картины с причудливыми многоцветными узорами. Неожиданностью для математиков стала возможность с помощью примитивных алгоритмов порождать очень сложные нетривиальные структуры. В качестве примера рассмотрим множество Мандельброта (см. pис.5 и рис.6). Алгоритм его построения достаточно прост и основан на простом итеративном выражении: Z[i+1] = Z[i] * Z[i] + C, где Zi и C - комплексные переменные. Итерации выполняются для каждой стартовой точки C прямоугольной или квадратной области - подмножестве комплексной плоскости. Итерационный процесс продолжается до тех пор, пока Z[i] не выйдет за пределы окружности радиуса 2, центр которой лежит в точке (0,0), (это означает, что аттрактор динамической системы находится в бесконечности), или после достаточно большого числа итераций (например 200-500) Z[i] сойдется к какой-нибудь точке окружности. В зависимости от количества итераций, в течении которых Z[i] оставалась внутри окружности, можно установить цвет точки C (если Z[i] остается внутри окружности в течение достаточно большого количества итераций, итерационный процесс прекращается и эта точка растра окрашивается в черный цвет). Вышеописанный алгоритм дает приближение к так называемому множеству Мандельброта. Множеству Мандельброта принадлежат точки, которые в течение бесконечного числа итераций не уходят в бесконечность (точки имеющие черный цвет). Точки принадлежащие границе множества (именно там возникает сложные структуры) уходят в бесконечность за конечное число итераций, а точки лежащие за пределами множества, уходят в бесконечность через несколько итераций (белый фон). Стохастические фракталы Стохастические фракталы получаются в том случае, если в итерационном процессе случайным образом менять какие-либо его параметры. При этом получаются объекты очень похожие на природные – несимметричные деревья, изрезанные береговые линии и т.д.
|