Папоротник Барнсли
Папоротник Барнсли — фрактал, названный в честь британского математика Майкла Барнсли, описавшего его в книге Fractals Everywhere. Он нарисован по образцу костенца чёрного, Asplenium adiantum-nigrum, и служит одной из самых наглядных иллюстраций системы итерируемых функций.
Папоротник из повторяемой формулы
Папоротник — базовый пример самоподобного множества: узора, который воспроизводится при любом увеличении. Как и треугольник Серпинского, он показывает, как простая формула, применяемая снова и снова, может построить изображение, похожее на живое. Книга Барнсли Fractals Everywhere (1988) выросла из курса Fractal Geometry, который он читал в Технологическом институте Джорджии. Более поздний курс, Fractal Measure Theory, продолжил ту же работу. С тех пор художники-графики используют эту идею, имитируя растения математическими моделями.
Система итерируемых функций
Код папоротника — это система итерируемых функций, IFS. Теорема о коллаже гласит: если фигуру можно покрыть её уменьшенными копиями, то отображения, создающие эти копии, имеют эту фигуру своим аттрактором. Барнсли применял фракталы во многих областях науки и техники. Растения были особым случаем, ведь ветвистая вайя действительно состоит из меньших ветвистых вай. Природа не является идеальной копией на каждом масштабе. Двух одинаковых папоротников не бывает, и в какой-то момент ветвь становится листом. Позже Барнсли изучал V-вариабельные фракталы, которые непрерывно зависят от параметров и при этом позволяют узору меняться от масштаба к масштабу. Он предположил, что геометрический код, подходящий растению, может соответствовать информации, записанной в его генах. Изгиб, размер листочков и случайные мутанты в приложении — небольшая практическая версия игры с этими параметрами.
Четыре аффинных отображения
Одно преобразование — это f(x, y) = матрица [[a, b], [c, d]], умноженная на столбец (x, y), плюс сдвиг (e, f). Костенец чёрный Барнсли использует четыре таких. Числа ниже — его IFS-код: от a до f — коэффициенты, p — вероятность выбора отображения. Стебель, выбирается в 1% случаев: a = 0, b = 0, c = 0, d = 0.16, e = 0, f = 0. Всё более мелкие листочки, выбирается в 85% случаев: a = 0.85, b = 0.04, c = −0.04, d = 0.85, e = 0, f = 1.60. Самый крупный левый листочек, выбирается в 7% случаев: a = 0.20, b = −0.26, c = 0.23, d = 0.22, e = 0, f = 1.60. Самый крупный правый листочек, выбирается в 7% случаев: a = −0.15, b = 0.28, c = 0.26, d = 0.24, e = 0, f = 0.44.
Как его рисует компьютер
В принципе папоротник можно нарисовать вручную. На практике нужны десятки тысяч точек, поэтому удобный инструмент — компьютер. Любая программа с этими константами рисует один и тот же папоротник. Начните в начале координат, x = 0 и y = 0. Затем повторяйте: выберите случайно одно из четырёх отображений с учётом вероятностей и замените точку её образом. Отображение стебля — xn+1 = 0 и yn+1 = 0,16 yn. Оно лишь прижимает точки к первому отрезку стебля, и этот отрезок заполняется первым. Второе, выбираемое чаще всего, копирует листочек в следующий, меньший листочек выше по стеблю. Третье переворачивает листочек через стебель на левое перо. Четвёртое кладёт парное перо справа без такого переворота. Весь папоротник — увеличенная копия каждой вайи. При этих константах он лежит примерно в −2,1820 < x < 2,6558 и 0 ≤ y < 9,9983.
Мутантные разновидности
Сдвиньте коэффициенты — и папоротник станет другим растением. Барнсли назвал эту свободу суперфракталом. Один опубликованный мутант похож на Cyclosorus из семейства Thelypteridaceae: Стебель: a = 0, b = 0, c = 0, d = 0.25, e = 0, f = −0.4, p = 0.02. Основная копия: a = 0.95, b = 0.005, c = −0.005, d = 0.93, e = −0.002, f = 0.5, p = 0.84. Левая: a = 0.035, b = −0.2, c = 0.16, d = 0.04, e = −0.09, f = 0.02, p = 0.07. Правая: a = −0.04, b = 0.2, c = 0.16, d = 0.04, e = 0.083, f = 0.12, p = 0.07. Второй мутант из четырёх отображений, лептоспорангиатный папоротник в приложении, использует другой опубликованный набор того же рода. «Стебель и копии» убирает два боковых отображения, чтобы вы увидели отдельно стебель и цепочку всё более мелких листочков.
Исследуйте его в PictorX
Откройте «Папоротник Барнсли» и запустите игру хаоса. Перетаскивайте для перемещения, прокручивайте для увеличения листочка и переключите режим цвета на «По преобразованию», чтобы каждое отображение получило свой оттенок. «Телиптерисовые» и «Лептоспорангиатный папоротник» загружают таблицы мутантов. «Изгиб» и «Размер листочков» изгибают опубликованные коэффициенты, а «Случайно» придумывает ещё одного мутанта. Сохраните PNG или откройте холст в редакторе PictorX. Сочетайте с генератором фракталов или гипотезой Коллатца — и увидите больше картин, рождённых коротким правилом.
Часто задаваемые вопросы
Кто придумал папоротник Барнсли?
Майкл Барнсли. Он опубликовал папоротник в книге Fractals Everywhere как модель костенца чёрного и как учебный пример системы итерируемых функций.
Что такое система итерируемых функций?
Небольшой набор функций, здесь четыре аффинных отображения, применяемых снова и снова. Теорема о коллаже утверждает, что получаемая картина — единственная фигура, равная объединению своих образов при этих отображениях.
Почему одно отображение выбирается в 85% случаев?
Это отображение строит цепочку всё более мелких листочков вверх по стеблю — то есть бо́льшую часть вайи. Отображение стебля редкое, потому что стебель — тонкое множество. Двум боковым отображениям нужно лишь заложить нижние перья; остальное достраивает самоподобие.
Можно ли создать папоротник, которого нет в списке?
Да. «Изгиб» и «Размер листочков» сдвигают коэффициенты костенца, а «Случайно» возмущает всю таблицу. При крайних значениях фигура может перестать походить на папоротник. Это и есть мутантное, или суперфрактальное, поведение, описанное Барнсли.
Готовы попробовать?
Откройте PictorX в своем браузере — установка не требуется, для запуска не требуется кредитная карта.
Попробовать папоротник Барнсли