Мне удалось раскрасить набор Мандельброта, хотя я не могу увеличивать масштаб до тех пор, пока он не станет «размытым» и рисунок не остановится. Я исправляю это, увеличивая max_iteration, это работает, но я получаю очень мало цветов при увеличении * 1, и много цветов появляются только при увеличении масштаба. Я понимаю, почему это происходит, поскольку в «истинном» множестве Мандельброта нет цветов и увеличение max_iterations просто приближает его к этому. Но мой вопрос: как зоомы, такие как на YouTube, имеют красивые цвета на протяжении всего процесса масштабирования, и в то же время могут увеличивать масштаб для ощущения вечности?
Я пытался искать везде в Интернете, но я не могу найти решение, и когда я смотрю в описаниях этих масштабов YouTube, они, кажется, дают почти ничего о том, как они сделали этот зум.
Вот только часть кода, которая рисует множество Мандельброта. Код ниже написан в обработке, которая является Java с добавлением визуальных библиотек. Вы можете узнать больше о программе здесь: https://processing.org/
//m is max_iterations //mb is the function which calculates how many iterations each point took to escape to infinity. I won't be including the function since I know it works fine and it's quite messy. //i'm using a HSB/HSV system to draw the mandelbrot hue=(mb(x, y, m)*360)/m; sat=255; if (mb(x, y, m)<m) { val=255; } else { val=0; } stroke(hue,sat,val); point(x, y);
Я понимаю, почему происходит моя проблема, но я не знаю, как ее решить.
Вот изображение с низким max_iterations и уменьшенным, как вы можете видеть, оно очень красочное:
Вот изображение с низким max_iterations и слегка увеличенным, как вы можете видеть, оно скучное и не очень красочное:
Вот изображение с высоким max_iterations и уменьшенным, как вы можете видеть, оно не очень красочное:
Вот изображение с высоким max_iterations и увеличенным, как вы можете видеть, оно очень красочное:
Всего 1 ответ
Как сказал Дэниел Уильямс, вы должны сделать максимальные итерации динамическими и увеличить их с помощью уровня масштабирования.