Fun with FractalsBeta

Внешний вид фракталов

Картинки, которые при удачном стечении обстоятельств имеют фрактальную структуру (т.е. мелкие детали которых подобны более крупным), строятся как окрестность множества Жюлиа для определенной функции f. Алгоритм построения достаточно прост — для каждой из точек, соответствующих отдельным пикселям картинки, применяется преобразование z := f(z) до тех пор, пока точка не уйдет на достаточно большое расстояние от нуля (условно говоря, бесконечность):

i := 0;
пока (|z| < D) и (i < N):
    z := f(z);
    i := i + 1;

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

Таким образом, получаемая картинка зависит от:

Количество итераций N

Параметр определяет максимальное число итераций для каждой точки. Чем меньше итераций, тем более яркой будет картинка, но достигается это ценой потери деталей.

Пример. Фрактал, заданный функцией (cosh z)^3 + c.

20 итераций
30 итераций
40 итераций
60 итераций
100 итераций

Граничное расстояние D

Параметр определяет модуль комплексного числа, при достижении которого считается, что точка ушла на бесконечность. Для многих функций, в частности, для квадратичной функции z*z + c картинка почти не зависит от D.

Пример. Фрактал, заданный функцией z + atanh(z) + c.

D = 3
D = 5
D = 9
D = 12
D = 15

Технические детали