В 1977 году Бенуа Мандельброт написал книгу «Фрактальная геометрия природы». В ней он подробно описал, как, руководствуясь простыми правилами, нарисовать сложный и красивый самоподобный узор. И до Мандельброта, и после, и по сей день фрактальные узоры привлекают к себе внимание математиков, программистов, художников и прочих любителей красоты.
Существует множество фрактальных семейств. Сегодня я расскажу об одном из них, удивительно простом в построении его в окне вашего браузера, и достаточно красивом, что бы захотеть исследовать его свойства.
Семейство фракталов, описанное здесь, не имеет собственного названия, но выросло оно из T-квадрата. Постоить Т-квадрат очень просто, пользуясь принципами наложения слоев, описанными в статье про цикад. Мы берем маленький квадратик, вот такой, только меньше, 4px*4px размерами, и замощаем им плоскость. Обратите внимание — граничные пиксели квадратика — прозрачны. Тот, кто читал статью про принцип цикад, сразу поймет, зачем это нужно.
Затем мы увеличиваем квадрат в четыре раза — по два на сторону — и замощаем плоскость еще разок. Повторяем. Повторяем. Через несколько итераций квадраты станут большими — а их взаимное наложение друг на друга образует фрактал.
А что, если взять не такой квадратик-паттерн , а такой ?
И сделать видимые пиксели полупрозрачными, что бы слои просвечивали друг через друга?
А вот что.
А с другим паттерном (сможете догадаться, каким?) результат окажется такой:
Самое интересное то, что не всякий раз можно предсказать, что выйдет из паттерна.
Думаю, вам интересно будет самим задать пару фракталов. Не обрушьте мне сервер!
Простите за минимализм. Кстати, если вы запустите исходники у себя, функций будет больше.
Ну вот, теперь извиняться не только за минимализм, но и дурной код. Все написано на php, и вам потребуется gc для обработки картинок — думаю, он у вас уже есть.
Откройте свой красивый фрактал!
P.S. Картинка в начале сделана так.
Автор: celen