Как сделать фракталы в c

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Шабаршин А.А.

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

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

Одним из основных свойств фракталов является самоподобие. В самом простом случае небольшая часть фрактала содержит информацию о всем фрактале.

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

Для чтобы представить все многообразие фракталов удобно прибегнуть к их общепринятой классификации [2].

2.1 Геометрические фракталы

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


Рис 1. Построение триадной кривой Кох.

Рассмотрим один из таких фрактальных объектов - триадную кривую Кох [3]. Построение кривой начинается с отрезка единичной длины (рис.1) - это 0-е поколение кривой Кох. Далее каждое звено (в нулевом поколении один отрезок) заменяется на образующий элемент, обозначенный на рис.1 через n=1. В результате такой замены получается следующее поколение кривой Кох. В 1-ом поколении - это кривая из четырех прямолинейных звеньев, каждое длиной по 1/3. Для получения 3-го поколения проделываются те же действия - каждое звено заменяется на уменьшенный образующий элемент. Итак, для получения каждого последующего поколения, все звенья предыдущего поколения необходимо заменить уменьшенным образующим элементом. Кривая n-го поколения при любом конечном n называется предфракталом. На рис.1 представлены пять поколений кривой. При n стремящемся к бесконечности кривая Кох становится фрактальным обьектом [3].


Рис 2. Построение "дракона" Хартера-Хейтуэя.

Для получения другого фрактального объекта нужно изменить правила построения. Пусть образующим элементом будут два равных отрезка, соединенных под прямым углом. В нулевом поколении заменим единичный отрезок на этот образующий элемент так, чтобы угол был сверху. Можно сказать, что при такой замене происходит смещение середины звена. При построении следующих поколений выполняется правило: самое первое слева звено заменяется на образующий элемент так, чтобы середина звена смещалась влево от направления движения, а при замене следующих звеньев, направления смещения середин отрезков должны чередоваться. На рис.2 представлены несколько первых поколений и 11-е поколение кривой, построенной по вышеописанному принципу. Предельная фрактальная кривая (при n стремящемся к бесконечности) называется драконом Хартера-Хейтуэя [3].

В машинной графике использование геометрических фракталов необходимо при получении изображений деревьев, кустов, береговой линии. Двухмерные геометрические фракталы используются для создания объемных текстур (рисунка на поверхности обьекта) [2,3].

2.2 Алгебраические фракталы

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

Известно, что нелинейные динамические системы обладают несолькими устойчивыми состояниями. То состояние, в котором оказалась динамическая система после некоторого числа итераций, зависит от ее начального состояния. Поэтому каждое устойчивое состояние (или как говорят - аттрактор) обладает некоторой областью начальных состояний, из которых система обязательно попадет в рассматриваемые конечные состояния. Таким образом фазовое пространство системы разбивается на области притяжения аттракторов. Если фазовым является двухмерное пространство, то окрашивая области притяжения различными цветами, можно получить цветовой фазовый портрет этой системы (итерационного процесса). Меняя алгоритм выбора цвета, можно получить сложные фрактальные картины с причудливыми многоцветными узорами. Неожиданностью для математиков стала возможность с помощью примитивных алгоритмов порождать очень сложные нетривиальные структуры.


Рис 3. Множество Мандельброта.

В качестве примера рассмотрим множество Мандельброта (см. pис.3 и рис.4). Алгоритм его построения достаточно прост и основан на простом итеративном выражении:

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] остается внутри окружности в течение достаточно большого количества итераций, итерационный процесс прекращается и эта точка растра окрашивается в черный цвет).


Рис 4. Участок границы множества Мандельброта, увеличенный в 200 pаз.

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

2.3 Стохастические фракталы

Еще одним известным классом фракталов являются стохастические фракталы, которые получаются в том случае, если в итерационном процессе случайным образом менять какие-либо его параметры. При этом получаются объекты очень похожие на природные - несимметричные деревья, изрезанные береговые линии и т.д. Двумерные стохастические фракталы используются при моделировании рельефа местности и поверхности моря [2].

Существуют и другие классификации фракталов, например деление фракталов на детерминированные (алгебраические и геометрические) и недетерминированные (стохастические).

Метод "Систем Итерируемых Функций" (Iterated Functions System - IFS) появился в середине 80-х годов как простое средство получения фрактальных структур.

IFS представляет собой систему функций из некоторого фиксированного класса функций, отображающих одно многомерное множество на другое. Наиболее простая IFS состоит из аффинных преобразований плоскости:

X' = A*X + B*Y + C
Y' = D*X + E*Y + F

В 1988 году известные американские специалисты в теории динамических систем и эргодической теории Барнсли и Слоан предложили некоторые идеи, основанные на соображениях теории динамических систем, для сжатия и хранения графической информации. Они назвали свой метод методом фрактального сжатия информации. Происхождение названия связано с тем, что геометрические образы, возникающие в этом методе, обычно имеют фрактальную природу в смысле Мандельброта.

На основании этих идей Барнсли и Слоан создали алгоритм, который, по их утверждению, позволит сжимать информацию в 500-1000 раз. Теоретическое обоснование метода изложено в [1]. Вкратце метод можно описать следующим образом. Изображение кодируется несколькими простыми преобразованиями (в нашем случае аффинными), т.е. коэффициентами этих преобразований (в нашем случае A,B,C,D,E,F).

Например, закодировав какое-то изображение двумя аффинными преобразованиями, мы однозначно определяем его с помощью 12-ти коэффициентов. Если теперь задаться какой-либо начальной точкой (например X=0 Y=0) и запустить итерационный процесс, то мы после первой итерации получим две точки, после второй - четыре, после третьей - восемь и т.д. Через несколько десятков итераций совокупность полученных точек будет описывать закодированное изображение. Но проблема состоит в том, что очень трудно найти коэффициенты IFS, которая кодировала бы произвольное изображение.

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

X' = (A1*X + B1*Y + C1) / (D1*X + E1*Y + F1)
Y' = (A2*X + B2*Y + C2) / (D2*X + E2*Y + F2)

X' = A1*X*X + B1*X*Y + C1*Y*Y + D1*X + E1*Y + F1
Y' = A2*X*X + B2*X*Y + C2*Y*Y + D2*X + E2*Y + F2

преобразования на плоскости.

В качестве примера использования IFS для построения фрактальных структур, рассмотрим кривую Коха (Рис.1) и "дракона" Хартера-Хейтуэя (Рис.2). Выделим в этих структурах подобные части и, для каждой из них вычислим коэффициенты аффинного преобразования. В аффинный коллаж будет включено столько аффинных преобразований, сколько существует частей подобных целому изображению.


Рис 5. Заготовка для построения IFS "дракона" Хартера-Хейтуэя.

Построим IFS для "дракона" Хартера-Хейтуэя. Для этого расположим первое поколение этого фрактала на сетке координат дисплея 640 x 350 (Рис.5). Обозначим точки получившейся ломаной A, B, C. По правилам построения (раздел 2.1) у этого фрактала две части, подобные целому - на рис.5 это ломаные ADB и BEC. Зная координаты концов этих отрезков, можно вычислить коэффициенты двух аффинных преобразований, переводящих ломаную ABC в ADB и BEC:

X' = -0.5*X -0.5*Y + 490
Y' = 0.5*X -0.5*Y + 120

X' = 0.5*X -0.5*Y + 340
Y' = 0.5*X +0.5*Y - 110

Задавшись начальной стартовой точкой (например X=0 Y=0) и итерационно действуя на нее этой IFS, после десятой итерации на экране получим фрактальную структуру, изображенную на рис.6, которая представляет собой "дракон" Хартера-Хейтуэя. Его кодом (сжатым описанием) является набор коэффициентов двух аффинных преобразований.


Рис 6. "Дракон" Хартера-Хейтуэя, постpоенный с помощью IFS в пpямоугольнике 640x350.

Аналогично можно построить IFS для кривой Кох. Нетрудно видеть, что эта кривая имеет четыре части, подобные целой кривой (раздел 2.1 Рис 1.). Для нахождения IFS опять расположим первое поколение этого фрактала на сетке координат дисплея 640 x 350 (Рис.7).


Рис 7. Заготовка для построения IFS кpивой Кох.

Для ее построения требуется набор аффинных преобразований, состоящий из четырех преобразований:

X' = 0.333*X + 13.333
Y' = 0.333*Y + 200

X' = 0.333*X + 413.333
Y' = 0.333*Y + 200

X' = 0.167*X + 0.289*Y + 130
Y' = -0.289*X + 0.167*Y + 256

X' = 0.167*X - 0.289*Y + 403
Y' = 0.289*X + 0.167*Y + 71

Результат применения этого аффинного коллажа после десятой итерации можно увидеть на рис.8.


Рис 8. Кpивая Кох, постpоенная с помощью IFS в пpямоугольнике 640x350.

Использование IFS для сжатия обычных изображений (например фотографий) основано на выявлении локального самоподобия, в отличие от фракталов, где наблюдается глобальное самоподобие и нахождение IFS не слишком сложно (мы сами только-что в этом убедились). По алгоритму Барнсли происходит выделение в изображении пар областей, меньшая из которых подобна большей, и сохранение нескольких коэффициентов, кодирующих преобразование, переводящее большую область в меньшую. Требуется, чтобы множество "меньших" областей покрывало все изображение. При этом в файл, кодирующий изображения будут записаны не только коэффициенты, характеризующие найденные преобразования, но и местоположение и линейные размеры "больших" областей, которые вместе с коэффициентами будут описывать локальное самоподобие кодируемого изображения. Восстанавливающий алгоритм, в этом случае, должен применять каждое преобразование не ко всему множеству точек, получившихся на предыдущем шаге алгоритма, а к некоторому их подмножеству, принадлежащему области, соответствующей применяемому преобразованию.

Коммуникативный педагогический тренинг: способы взаимодействия с разными категориями учащихся

Сертификат и скидка на обучение каждому участнику

Афанасьева Мария

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

Кафедра информатики и вычислительной техники

ФРАКТАЛЬНАЯ ГРАФИКА В СПЕЦИАЛЬНЫХ ПРОГРАММНЫХ СРЕДСТВАХ

Автор работы Е. С. Филатова

Направление подготовки 44.03.05 Педагогическое образование

Профиль Математика. Информатика

канд. физ.-мат. наук, доцент Т. В. Кормилицына

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

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

Базовым элементом фрактальной графики является сама математическая формула – это означает, что никаких объектов в памяти компьютера не хранится, и изображение строится исключительно на основе уравнений. Также не мало важным аспектом является цветовая настройка, фильтры трансформации.

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

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

Фрактальная графика, как и векторная, основана на математических вычислениях. Базовыми элементами фрактальной графики являются сами математические формулы, описывающие линии и линейные поверхности, то есть никаких объектов в памяти ЭВМ не хранится и изображение строится исключительно по формулам (уравнениям).

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

Фракталы, особенно на плоскости, популярны благодаря сочетанию красоты с простотой построения при помощи компьютера.

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

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

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

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

Фрактальная графика не является, строго говоря, частью векторной графики, поскольку широко использует и растровые объекты. Фракталы широко используются в растровых (AdobePhotoshop) и векторных (CorelDraw) редакторах и трехмерной (CorelBryce) графике.

Фрактальная компьютерная графика позволяет создавать абстрактные композиции, где можно реализовать такие композиционные приёмы как, горизонтали и вертикали, диагональные направления, симметрию и асимметрию

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

Компьютерные системы.

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

Механика жидкостей.

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

Телекоммуникации.

Для передачи данных на расстояния используются антенны, имеющие фрактальные формы, что сильно уменьшает их размеры и вес.

Физика поверхностей.

Фракталы используются для описания кривизны поверхностей. Неровная поверхность характеризуется комбинацией из двух разных фракталов.

Биология.

Моделирование хаотических процессов, в частности при описании моделей популяций

Программа Art Dabbler (рисунок 1)

Рис.1 – Art Dabbler

Знакомство с основами фрактальной графики лучше всего начать с пакета Art Dabbler. Этот редактор (созданный фирмой Fractal Design, а теперь принадлежащий Corel) фактически представляет собой усеченный вариант программы Painter. Это отличная программа для обучения не только компьютерной графике, но прежде всего азам рисования. Малый объем требуемой памяти (для его установки необходимо всего 10 Мбайт), а также простой интерфейс, доступный даже ребенку, позволяют использовать его в школьной программе. Как и растровый редактор MS Paint, фрактальный редактор Art Dabbler особенно эффективен на начальном этапе освоения компьютерной графики.

Главное внимание разработчиками пакета Art Dabbler было уделено двум факторам:

· созданию упрощенного интерфейса, основным элементом которого являются коробки инструментальных наборов;

Строка меню включает в себя шесть пунктов: стандартные для большинства программ – File, Edit и Help, а также Effects, Options и Tutors, которые присутствуют в большинстве графических программ и не нуждаются в дополнительных комментариях.

Art Dabbler предоставляет комплект эффектов (меню Effects), которые могут быть использованы для изменения или искажения изображений. Например, эффект Texturize создает текстуры бумаги, холста и т.п., расширяя творческие возможности художника.

Следует отметить, что в Art Dabbler выдвижными ящиками называются все инструментальные средства точно так же, как, например, в Photoshop аналогичные средства называются палитрами, а в CorelDRAW - докерами. В них хранятся кисти, карандаши, резинка и другие инструменты, для активизации которых достаточно нажать соответствующую им пиктограмму. На передних стенках ящиков отображается небольшое количество кнопок и ручка, нажав которую пользователь получает доступ ко всему набору осуществляемых через него операций благодаря открывающимся дополнительным кнопкам.

Программа Ultra Fractal (рисунок 2)

Рис.2 – Ultra Fractal

Ultra Fractal – лучшее решение для создания уникальных фрактальных изображений профессионального качества. Пакет отличается дружественным интерфейсом, многие элементы которого напоминают интерфейс Photoshop, и сопровождается невероятно подробной и прекрасно иллюстрированной документацией, в которых поэтапно рассматриваются все аспекты работы с программой. Ultra Fractal представлен двумя редакциями: Standard Edition и расширенной Animation Edition, возможности которой позволяют не только генерировать фрактальные изображения, но и создавать анимацию на их основе. Созданные изображения можно визуализировать в высоком разрешении, пригодном для полиграфии, и сохранить в собственном формате программы или в одном из популярных фрактальных форматов. Визуализированные изображения также могут быть экспортированы в один из растровых графических форматов (jpg, bmp, png и psd), а готовые фрактальные анимации – в AVI-формат.

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

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

Программа Fractal Explorer (рисунок 3)

Рис.3 – Fractal Explorer

Fractal Explorer – программа для создания изображений фракталов и трехмерных аттракторов с достаточно впечатляющими возможностями. Имеет интуитивно понятный классический интерфейс, который может быть настроен в соответствии с пользовательскими предпочтениями, и поддерживает стандартные форматы фрактальных изображений (*.frp; *.frs; *.fri; *.fro; *.fr3, *.fr4 и др.). Готовые фрактальные изображения сохраняются в формате *.frs и могут быть экспортированы в один из растровых графических форматов (jpg, bmp, png и gif), а фрактальные анимации сохраняются как AVI-файлы.

Генерация фракталов возможна двумя способами – на основе базовых фрактальных изображений, построенных по входящим в поставку формулам, или с нуля. Первый вариант позволяет получить интересные результаты сравнительно просто, ведь выбрать подходящую формулу несложно, тем более что удобный файловый браузер позволит оценить качество фрактала из базы еще до создания на его основе фрактального изображения. У полученного таким путем фрактального изображения можно сменить цветовую палитру, добавить к нему фоновое изображение и определить режим смешивания фрактального и фонового слоев, а также степень прозрачности фрактального слоя. Затем можно будет подвергнуть фрактальное изображение трансформации, при необходимости масштабировать, определить размеры изображения и провести рендеринг. Создание изображения с нуля гораздо сложнее и предполагает выбор одного из двух способов. Можно выбрать тип фрактала почти из 150 вариантов. А затем уже перейти к изменению разнообразных параметров: настройке палитры, фона и пр. А можно попробовать создать свою пользовательскую формулу, воспользовавшись встроенным компилятором. Перед рендерингом готового изображения может потребоваться проведение автоматической коррекции цветового баланса и/или ручной коррекции яркости, контрастности и насыщенности.

Программа ChaosPro (рисунок 4)

Рис.4 – ChaosPro

ChaosPro – один из лучших бесплатных генераторов фрактальных изображений, с помощью которого нетрудно создать бесконечное множество удивительных по красоте фрактальных изображений. Программа имеет очень простой и удобный интерфейс и наряду с возможностью автоматического построения фракталов позволяет полностью управлять данным процессом за счет изменения большого количества настроек (число итераций, цветовая палитра, степень размытия, особенности проецирования, размер изображения и др.). Кроме того, создаваемые изображения могут быть многослойными (режимом смешивания слоев можно управлять) и к ним можно применить целую серию фильтров. Все накладываемые на строящиеся фракталы изменения тут же отражаются в окне просмотра. Созданные фракталы могут быть сохранены в собственном формате программы, либо в одном из основных фрактальных типов благодаря наличию встроенного компилятора. Или экспортированы в растровые изображения или 3D-объекты (если предварительно было получено трехмерное представление фрактала).

В списке возможностей программы:

· точная цветовая настройка, обеспечивающая плавные градиентные переходы цветов друг в друга;

· одновременное построение нескольких фракталов в разных окнах;

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

· создание трехмерных представлений фракталов на основе обычных двумерных изображений;

· поддержка многих стандартных форматов фрактальных изображений, изображения в которых могут быть импортированы и отредактированы в среде ChaosPro.

Программа Apophysis (рисунок 5)

Рис.5 – Apophysis

Apophysis – интересный инструмент для генерации фракталов на основе базовых фрактальных формул. Созданные по готовым формулам фракталы можно редактировать и неузнаваемо изменять, регулируя разнообразные параметры. Так, например, в редакторе их можно трансформировать, либо изменив лежащие в основе фракталов треугольники, либо применив понравившийся метод преобразования: волнообразное искажение, перспективу, размытие по Гауссу и др. Затем стоит поэкспериментировать с цветами, выбрав один из базовых вариантов градиентной заливки. Список встроенных заливок достаточно внушителен, и при необходимости можно автоматически подобрать наиболее подходящую заливку к имеющемуся растровому изображению, что актуально, например, при создании фрактального фона в том же стиле, что и иные изображения некоего проекта. При необходимости несложно подрегулировать гамму и яркость, изменить фон, масштабировать фрактальный объект и уточнить его расположение на фоне. Можно также подвергнуть результат разнообразным мутациям в нужном стиле. По окончании следует задать размеры конечного фрактального изображения и записать его визуализированный вариант в виде графического файла (jpg, bmp, png).

Программа Mystica (рисунок 6)

Рис.6 – Mystica

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

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

Развитие фрактальных технологий на сегодняшний день – одна из прогрессирующих областей науки. Она используется не только в компьютерной графике.

Бесспорными достоинствами фрактала являются:

· Малый размер исполняемого файла при большом изображении.

· Бесконечная масштабируемость и увеличение сложности картинки.

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

· Относительная легкость в создании сложных композиций.

· Все вычисления делаются компьютером, чем сложнее изображение, тем больше загруженность ЦП и ОЗУ.

· Плохое распространение и поддержка различными системами.

· Небольшой спектр создания объектов изображений.

· Ограниченность материнских математических фигур.

2. Мандельброт Б. Б. Фрактальная геометрия природы; Мурманск: Книжное издательство – Москва, 2010. – 895 c. – Текст : непосредственный.

4. Шабетник Василий Фрактальная физика. Наука о мироздании; Профиздат – Москва, 2013. – 416 c. – Текст : непосредственный.

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Программы генераторы фракталов

Основные генераторы фракталов



Five o’clock



В этой статье мы узнаем что такое фракталы и как рисовать их на PHP используя GTK и Cairo.

Немного о фракталах. Интересные факты

Галактики, рельефы планет, океанские волны, облака и молнии, реки, формы растений и животных, и даже человеческое тело можно рассматривать как фракталы…


Библиотека векторной графики Cairo

Итак, мы начинаем рассмотрение основ фрактальной графики на PHP. В нашей работе мы будем использовать графическую библиотеку Cairo, предназначенную для отрисовки векторной графики. Эта библиотека написана на языке C и может быть использована в связке с такими языками как C++, Python и др.

Данная библиотека обладает тремя существенными преимуществами, обеспечивающими её популярность в среде open source:

  1. открытый исходный код графического кода между различными платформами
  2. качественная отрисовка векторной графики

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

Создание окна GTK. Подготовительный этап

Для начала нам придётся создать класс, который будет отвечать за создание окна. Мы назовём его FractalDrawingWindow и унаследуем его от базового класса GtkWindow, который входит во фреймворк GTK. Это позволит нам работать с оконной системой нашей операционной системы и отображать сгенерированные изображения фракталов внутри неё.


Чудо-ролик 03.02.2015 --> Смотрели: 70 (4)

-Поиск по дневнику

-Статистика

Очень трудно строить фрактал с нуля, поэтому в этом уроке я пошагово буду показывать что меняю и как при этом меняется картинка.


Открыли 2D фрактал , заходим в окно с формулами . Вот что вы видите сначала. По умолчанию открывается формула Classic Mandelbrot



Но нам совсем не обязательно работать с этой формулой. Какую выбрать формулу - это ваше личное дело. (Никаких рекомендаций я тут дать не могу, надо пробовать всё.) Только не расчитывайте, что в другой формуле вы увидите что-то более симпатичное, чем упавший на бок снеговик. Всё не так просто.

Выбираем формулу. Я перешла во вкладку Sterlingvare и выбрала формулу 55 . На превью вы можете видеть как изменился наш фрактал.



Меняем параметр для Functions. Я изменила только один параметр на CATan (именно так, другой параметр даст другой результат), второй оставила без изменений.


Двигаемся дальше. Меняем параметр для Filter properties (свойства фильтра)


Меняем параметр Transform


Мне, если честно, не очень нравится расположение фрактала, просто не удобно смотреть. Разворачиваем его



Очень интересная функция Inverted , если её активировать, то фрактал меняется. Так что давайте активируем эту функцию, поставив галочку



Очень советую экспериментировать с параметрами Max.iterations (максимальное число повторений), получаются интересные результаты. У нас стоит 150, изменим на 14


Предлагаю выйти из окна формул, нажав на кнопочку Select. Зачем нам это надо? Дело в том, что окно превью очень маленькое и в нём очень сложно рассмотреть детали, а ведь, именно, детали нас интересуют.

Вышли из окна с формулами, выставили размер хотя бы 600х600 и смотрим. А посмотреть здесь есть на что. Меня заинтересовала эта часть



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



Интересно. Но мне этого мало, кое-что ещё привлекло моё внимание, хочу рассмотреть поближе.



Вот что получилось


Теперь перходим к палитре. Начинаем перебирать возможные варианты. А вариантов, действительно, много.







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



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

Если вы не хотите потерять достигнутый результат, а покопаться в этом фрактале вам ещё хочется, нажмите на вашей клавиатуре сочетание клавиш Ctrl + D . У вас откроется дубликат вашего фрактала. Вот с ним мы можем продолжить работу.

Я возвращаюсь к палитре. И перехожу во вкладку Gradient (UF colors). Знаю, что многие не любят эту вкладку, а зря.



Конечно, не шедевр. НО. Кое-что привлекло моё внимание, а именно, вот эта часть.


Увеличили её и вот что получили



Мне нравится. Осталось немного доработать цвет.С помощью градиента и контрастности (Contrast) я изменила фон, он стал равномерно чёрным



Часто бывает, что я не могу определиться с цветом, поэтому посмотрим, как этот фрактал будет выглядеть в светлом варианте



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

В принципе, количество фракталов, которые вы можете получить только из этого урока, достаточно, велико, просто внимательно всматривайтесь в детали.

На этом всё. Не забудьте сделать ваш фрактал побольше. Помните, фракталы, как правило, лучше смотрятся, именно, в большом размер.

Рубрики: Создание_фракталов_(уроки,_руководства)/Fractal Explorer
Метки: урок авторская работа авторский урок фракталы создание фракталов fractal explorer

Процитировано 16 раз
Понравилось: 14 пользователям










Если бы точно знать, что надо новичкам, было бы гораздо проще. Но, в основном, все молчат, спрашивают единицы. Кто спрашивает, тот и получает ответ.

А есть формулы, с помощью которых можно делать конкретные фигуры - например, одна отвечает за шары, другая - за спирали и так далее? Или это надо методом тыка запоминать?

В этой программе, в основном, всё получается случайно. Конечно, можно постараться запомнить сочетание формул, но я в основном беру какой-то из своих готовых фракталов и кручу его.
Спиральки, есть практически в любой формуле - от них очень сложно отделаться, они лезут из всех щелей. Шарики найти тоже не сложно. Я не задавалась целью запоминать где шарики или ещё что-то, а тем более систематизировать это. Знаю, что шарики можно найти в параметрах Filter Properties в формуле Abs(X-Y)&|Z|
Конкретный фигуры есть в Incendia, причём запоминать там ничего не надо, их видно. даже чайник есть.


В программе Ultra Fractal, тоже есть различные фигуры. Мне удалось там нарисовать пауков
и бабочек, я уже не говорю про огромное количество цветов, которые там можно найти. Только тут надо понимать, что пауки или бабочки там в готовом виде не лежат, их надо собирать. Отдельный слой лапки, отдельный слой тело (это я про пауков), по слою на каждый глазик, рисунок на теле - это тоже отдельный слой.

K_E_T, Спасибо за Ваши уроки и приглашению в "Мир фракталов" Я новичок из Яру и очень хочу научиться делать как Вас красивые фракталы! Буду учиться.

Я очень рада, что Вы хотите научиться создавать фракталы! Если возникнут вопросы, пожалуйста, спрашивайте, я постараюсь помочь.
И не бойтесь выставлять свои работы в сообществе. Люди у нас, достаточно, доброжелательные.


K_E_T, Спасибо за урок! Училась по уроку, поигралась немного, конечно не шедевра сделала, меняла настройки, но получилось что то вроде цветочка и я очень рада. Хотела вставить картинку, но к сожалению не успела.

. кажется, успела.

Спасибо большое за урок!! Полезен он не только новичкам,и я почерпнула некоторые важные моменты! Как обычно,урок очень понятен и доступен!


Здравствуйте. спасибо огромное за Ваши уроки. Обязательно ещё буду пробовать. Пока не работала , было больше времени заниматься всем интересным.

Читайте также: