Строка навигации
Фракталы
Растяните рамку по изображению — область увеличится. Колесо мыши масштабирует, двойной щелчок центрирует, Ctrl+перетаскивание двигает картинку, Esc отменяет выделение.
- Центр
- —
- Ширина области
- —
- Увеличение
- —
- Точность
- —
- Кадр
- —
Что это такое и как этим пользоваться
Что такое фрактал
Фрактал — фигура, у которой узор не кончается. Приближаете край обычной окружности — он становится всё более прямым; приближаете край фрактала — он остаётся таким же изрезанным, и в новых подробностях снова проступает то, что вы уже видели крупнее.
Главное: такую картинку никто не рисовал. Она задана правилом. Берём число, много раз подряд применяем к нему одно и то же простое действие и смотрим, что с ним стало: улетело в бесконечность или осталось на месте. Вся сложность узора рождается из повторения этого простого действия — и граница между «улетело» и «осталось» оказывается бесконечно сложной.
Как рисуется картинка
- Каждая точка экрана — это число. Плоскость здесь комплексная: по горизонтали откладывается обычная, действительная часть числа, по вертикали — мнимая, та, что идёт с множителем i (это число, у которого i² = −1). Точка с координатами (x, y) — это число x + yi.
- К числу много раз применяют правило. У Мандельброта оно такое: z начинается с нуля, дальше z → z² + c, где c — та самая точка экрана. Получили новое z — подставили обратно, и так по кругу.
- Смотрят, убежало ли. Как только длина z переваливает за «радиус убегания», точку признают сбежавшей и считать перестают. Если за отведённое число повторений (итераций) она так и не убежала — считается, что точка внутри множества, и её красят «цветом внутренней области».
- Цвет — это скорость побега. Номер шага, на котором точка убежала, переводится в цвет по палитре. Убежавшие за 5 шагов и дотянувшие до 300 попадают в разные места палитры — отсюда цветные полосы вокруг фигуры. Галочка «плавные переходы» делает номер шага дробным (по тому, насколько далеко z вылетело за радиус), и ступеньки между полосами исчезают.
- Считает видеокарта. У каждого пикселя свой независимый цикл, а пикселей миллионы — поэтому расчёт идёт в WebGL на GPU, а не в обычном JavaScript. При сильном увеличении координаты перестают помещаться в точность видеокарты, и включаются обходные приёмы — какой именно работает сейчас, написано в строке «Точность».
Что означают формулы
Во всех формулах z — то, что меняется на каждом шаге, c — постоянная, а |z| — расстояние от нуля, то есть длина. Панель «Формула» всегда показывает текущее правило целиком, с уже подставленными значениями.
- Мандельброт, z → zp + c. Точка экрана подставляется как c, а z стартует с нуля. Получается карта: каждая точка отвечает на вопрос «если правило запустить отсюда — улетит или нет».
- Жюлиа — то же правило наоборот: c один и тот же для всей картинки (его задают ползунки Re(c) и Im(c)), а стартовым z становится точка экрана. У каждого c свой узор, поэтому рядом лежат «готовые константы» — заведомо красивые значения.
- Степень p — во сколько раз число «закручивается» вокруг нуля за один шаг. При p = 2 выходит классическая фигура с одним телом и усами, при p = 3 — три симметричных лепестка, дальше по тому же принципу.
- Горящий корабль — перед возведением в степень у z берут модули обеих частей, то есть отбрасывают знаки. Отражение ломает плавные завитки и делает узор угловатым, похожим на горящие мачты.
- Трикорн — вместо z подставляется сопряжённое число: у мнимой части меняется знак. Картинка становится симметричной и обзаводится тремя рогами.
- Кельтский, Буффало, Перпендикулярный корабль, Паук — те же два приёма (модуль и сопряжение), но применённые к разным кускам выражения. Мелкая правка правила даёт совершенно другое семейство узоров — в этом и смысл лаборатории.
- Феникс помнит не только текущее z, но и предыдущее, и подмешивает его с коэффициентом. Из-за этой памяти узор вытягивается в перистые нити.
- Магнит — дробь, пришедшая из физики фазовых переходов. Вместо привычных усов даёт круглые капли и кольца.
- Бассейны Ньютона — здесь ничего не убегает. Метод Ньютона ищет корень уравнения zp − 1 = 0, а цвет показывает, к какому из корней съехала точка и за сколько шагов. Фрактал — это границы между зонами притяжения корней: сколько ни приближай, ни в одной точке границы нельзя сказать, куда она свалится.
Как пользоваться формой
Мышь и клавиши
- Растянуть рамку по картинке — приблизить эту область. Пропорции кадра сохраняются, так что картинка не растянется.
- Колесо мыши — плавное увеличение, двойной щелчок — центрировать на точке, Ctrl + перетаскивание — сдвинуть картинку, Esc — отменить рамку.
- Кнопка «Перемещение» переключает мышь в режим таскания, если рамка мешает. Кнопки + и - меняют масштаб вдвое, ↶ Назад отменяет последнее приближение, ⟲ Сброс возвращает исходный вид, ⤓ PNG сохраняет кадр картинкой.
Вид
Семейство фракталов — с него и начинайте. Остальные поля подстраиваются под выбор: например, ползунки Re(c)/Im(c) появляются только там, где константа имеет смысл.
Структура
- Степень p — форма фигуры, см. раздел про формулы.
- Re(c) и Im(c) — действительная и мнимая части константы для Жюлиа и родственных семейств. Двигайте их медленно: узор меняется резко, и самое интересное происходит у края множества Мандельброта.
- Радиус убегания — на каком удалении точку признают сбежавшей. Математически хватает двойки, но чем радиус больше, тем плавнее и «шире» получаются цветные полосы.
Интенсивность
- Итерации — сколько шагов отводится точке, прежде чем её признают внутренней. Главная ручка при глубоком приближении: если картинка стала плоской и чёрной, итераций не хватает.
- Подбирать итерации по глубине — оставьте включённым, и число шагов будет расти само по мере приближения.
- Плотность цвета — насколько часто повторяется палитра: маленькие значения дают широкие плавные переходы, большие — тонкие кольца.
- Сдвиг палитры — прокручивает цвета по кругу, не меняя рисунок. Удобно, когда узор нравится, а сочетание цветов — нет.
- Качество — сглаживание: 4 или 9 отсчётов на пиксель убирают «песок» на тонких нитях, но кадр считается дольше.
Цвет
Десять палитр, включая «Свой цвет» — он строит градиент от выбранного оттенка. Отдельно задаётся цвет внутренней области (по умолчанию почти чёрный), а «подсветка внутренней области» проявляет её структуру вместо сплошной заливки.
Готовые виды
Кнопки-фишки переносят сразу к известным местам: «долина морских коньков», «слоновья долина» и прочие. Ниже — «картинка в картинке»: точные центры уменьшенных копий множества, найденные заранее. С них удобно начинать знакомство с глубоким зумом.
Строка состояния
- Центр и ширина области — где вы находитесь на комплексной плоскости.
- Увеличение — во сколько раз кадр уже приближен относительно исходного.
- Точность — каким способом считается кадр. «Одинарная» — обычная точность видеокарты; «двойная (эмуляция)» включается сама при увеличении примерно от ×30 000 и работает примерно до ×10¹⁵; для квадратичного Мандельброта дальше подхватывает «возмущения» — расчёт идёт относительно одной точной опорной точки, и приближаться можно на много порядков глубже. Приписка «предел» означает, что глубже метод уже не может.
- Кадр — сколько миллисекунд занял последний расчёт.
Ссылка на вид
Все настройки, включая координаты центра, пишутся в адрес страницы после
символа #. Скопируйте адрес из строки браузера — по нему откроется ровно
тот же кадр; закладка тоже сработает.
Если что-то пошло не так
Картинка почти вся чёрная — мало итераций или вы внутри множества. Картинка «мылом» и крупными квадратами — упёрлись в предел точности, посмотрите строку «Точность». Кадр считается секундами — уменьшите качество или итерации: на слабой видеокарте девять отсчётов на пиксель при 50 000 итераций честно отработают всё, что попросили.