Это может быть слишком абстрактно, или слишком конкретно, или непостижимо. Как я сказал в комментарии, было бы легче обсудить с вашим кодом под рукой.
Если вы имеете в виду то, что я думаю, вы подразумеваете под масштабированием, вы изменили бы границы c
(в формуле z[n+1] = z[n]^2 + c
).
Для пояснения, полный набор Мандельброта содержится в окружности с радиусом 2 вокруг центра [0;0]
. c
в формуле представляет собой комплексное число, то есть [r;i]
(действительное; воображаемое), которое на экране компьютера соответствует x
и y
.
Другими словами, если мы поместим этот круг радиуса 2 так, чтобы он точно находился внутри нашего изображения, тогда [-2;2]
будет верхним левым углом нашего изображения, а [2;-2]
- нижним правым углом.
Затем мы берем каждую точку нашего изображения, рассчитываем, как соответствуют ее пиксельные координаты [x;y]
в терминах меньшей, «фактической» системы координат [r;i]
. Тогда у нас есть c
и мы можем отправить его через наши итерации.
Таким образом, для «увеличения» вы должны выбрать другие границы [r;i]
, чем полные [-2;2]
, [2:-2]
, например. [-1;1]
[1:-1]
.
С 512x512 пикселей и «фактической» системой координат, которая теперь 2 на 2, это означало бы, что каждый пиксель соответствует 2/512 единицам «фактической» системы координат. Таким образом, ваше первое r
значение будет равно -1, следующее будет -1 + 2/512 = -0.99609375
и т. Д.
Количество итераций только определяет, насколько точным будет ваш рендеринг. Как правило, чем дальше вы увеличиваете масштаб изображения, тем точнее они будут требовать , так что чем больше итераций вам понадобится для захвата деталей.