Для некоторых значений с функция уходит в бесконечность, для некоторых - нет. Все очень просто: значения с, уходящие в бесконечность, не являются частью множества Мандельброта. Используя компьютер (или графический ускоритель с поддержкой языка шейдеров OpenGL) для проверки тысяч точек на плоскости комплексных чисел и помечая серым цветом точки, уходящие в бесконечность, и черным цветом - все остальные точки, получим геометрическую фигуру сердцевидной формы (рис. 15.7).

Как же проверить, какие значения уходят в бесконечность? Мандельброт определил это. Он показал, что если модуль Z (расстояния от начала координат) больше 2, значение функции всегда бесконечно. Чтобы запрограммировать эту функцию, нужно остановить итерации, когда модуль Z превысит значение 2. И даже проще, так как мы все время работаем с Z2, сравнивать это значение с 4.

Значения внутри черной фигуры на рис. 15.7 не уходят в бесконечность за некоторое разумное количество итераций. Чтобы не зацикливать графический

Нефотореалистичные шейдеры

акселератор, нужно определить максимальное количество итераций, после проведения которых предполагается, что точка принадлежит множеству Мандель-брота. На основе этих двух критериев можно написать простой цикл, вычисляющий множество Мандельброта.

Графическое представление множества Мандельброта

Рис. 15.7. Графическое представление множества Мандельброта Изображение будет более красочным, если закодировать количество итераций разными цветами, Значения, которые оказались вне множества после первой итерации, обозначаются одним цветом; значения, «выброшенные» на следующей итерации, обозначаются другим цветом и т. д. На рис. 15.7 вместо разных цветов использованы оттенки серого. Белые точки вдоль края были вычислены за 20 итераций.

Края множества Мандельброта бесконечно разнообразны при разном количестве итераций. Продолжая вычисления, можно выявить точки вне множества на сотых или даже тысячных итерациях.

Вот несколько соображений по поводу рисования множества Мандельброта.

□ Длина края бесконечна.


⇐ Предыдущая| |Следующая ⇒