Папоротник Барнсли

Папоротник Барнсли - фрактал, названный в честь Майкла Барнсли, британского математика, который первым описал его в своей книге "Фракталы Повсюду".

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

Построение

Папоротник Барнсли строится при помощи 4-х афинных преобразований вида:

Барнсли представил свой IFS-код папоротника (Iterated function system - "Система повторяющихся функций") в виде матрицы значений:

w a b c d e f p
ƒ1 0 0 0 0.16 0 0 0.01
ƒ2 0.85 0.04 -0.04 0.85 0 1.6 0.85
ƒ3 0.2 -0.26 0.23 0.22 0 1.6 0.07
ƒ4 -0.15 0.28 0.26 0.24 0 0.44 0.07

где столбцы a-f - коэффициенты уравнения, а p - коэффициент вероятности, x и y - координаты.

Данная таблица отвечает следующим преобразованиям:



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

Варьируя значения констант в таблице можно получать множество различных моделей, отличных от Папоротника Барнсли:

Телиптерисовый папоротник

Лептоспоранговый папоротник

Пошаговое моделирование

Первая точка находится в начале координат $(х_0 = 0, у_0 = 0)$, а затем новые точки итеративно вычисляются путем случайного применения одного из следующих четырех преобразований координат:

$$x_{n + 1} = 0; \\
y_{n + 1} = 0.16y_n \quad \; (1)$$

Данное преобразование выбирается в 1% случаев и указывает на точку у основания "стебля". Эта часть рисунка в результате итерационных преобразований завершается первой.

$$x_{n + 1} = 0.85x_n + 0.04y_n; \\
y_{n + 1} = −0.04x_n + 0.85y_n + 1.6 \quad (2)$$

Преобразование (2) используется в 85% случаев и указывает на любую точку листовки попадающую в красный треугольник

$$x_{n + 1} = 0.2x_n − 0.26y_n; \\
y_{n + 1} = 0.23x_n + 0.22y_n + 1.6 \quad (3)$$

Выбирается в 7% случаев - попадания точки в синий треугольник и симметричного ему относительно главного стебля треугольника.

$$x_{n + 1} = −0.15x_n + 0.28y_n; \\
y_{n + 1} = 0.26x_n + 0.24y_n + 0.44 \quad (4)$$

В оставшихся 7% случаев используется преобразование (4) - для симметричных преобразованию (3) относительно стеблей 2-го порядка позиций.

Направление: