Построение фракталов
Опубликовано: 23 июля 2011 Обновлено: 12 октября 2016

Однажды в субботнее летнее утро страсть как захотелось порисовать фракталы :-)
Нет, серьезно.. бывает такое, находит ни с того ни с сего..

Что такое фрактал? Фрактал – это фигура, части которой подобны самой себе.

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

Самоподные фигуры были известны человечеству уже давно, но непосредственно термин фрактал появился не так уж давно – в 1975 году сотрудник IBM Бенуа Мандельброт ввел термин в оборот.

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

Исследованием таким функций и занимался Мандельброт.. и он был далеко не первым. Еще в 1905 году Пьер Фату заметил, что если производить итерации в ряду Zn = Zn-12 + C, где Z и C комплексные числа, то при некоторых Z0 и C значение Zn (при n) стремится к определенному значению, а в остальных же случаях Zn стремится к бесконечности. Причем, где-то быстрее, а где-то медленнее.

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

В случае фракталов Мандельброта и Жюлиа используется соотношение Zn = Zn-12 + C, но можно обобщить соотношение, взяв общий случай Zn = Zn-1K + C, где K - любое действительное число.

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

Внимание: построение объектов занимает некоторое время, поэтому, если браузер вылетит с ошибкой, что скрипт не отвечает, жмите кнопку Продолжить и через некоторое время увидите результат :-)

Пример самоподобия фрактала:
Первоначальное изображение
Увеличение нижней правой ветви в 2 раза
Увеличение нижней правой ветви в 3 раза
Увеличение нижней правой ветви в 6 раз
Увеличение нижней правой ветви в 12 раз
Увеличение нижней правой ветви в 24 раза
и так до бесконечности, разве не удивительно? а говорят, математика скучная.. :-)

Теперь давайте поэкспериментируем со степенью инкремента и величиной дополнения:
3 снежинки
запутавшееся Сердечко
неведомая штука
воронки
еще воронки
еще снежинки
пентаграмма
паутинка
квадратус

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

Смещение Z0 по оси x
Смещение Z0 по оси y
Смещение C по оси x
Смещение C по оси y
Степень рекурсии K
Масштаб картинки
Градаций цвета
Добавить комментарий к статье:
― показать еще комментарии ―