Как вы можете видеть из заголовка, я занимаюсь программированием небольшой программы для визуализации фракталов на Java. Любой, кто имеет дело с фракталами, достигнет точки, в которой он или она ищет решение, чтобы убрать эти глупые «полосы», когда вы просто окрашиваете пиксель по количеству итераций, которые потребовались, чтобы убежать. Итак, я искал более продвинутый алгоритм раскраски, нахожу «нормализованный счетчик итераций». Формула я использую:Нормализованный счетчик итераций не работает. Что я делаю не так?
float loc = (float) 1 - Math.log(Math.log(c.abs()))/Math.log(2);
Все в Интернете настолько счастлив об этом алгоритме, каждый использует его, Everbody получает отличные результаты. Кроме меня. Я думал, этот алгоритм должен обеспечивать поплавок между 0 и 1. Но этого не происходит. Я сделал некоторые расчеты и пришел к выводу, что этот алгоритм работает только для c.abs()> = Math.E & & c.abs() < = Math.exp (2) (то есть Math.E * Math. E). В цифрах это означает, что мой ввод в это уравнение должен быть между 2,718 и 7,389.
Но комплексное число c считается склонным к бесконечности, когда его величина становится больше 2. Но для любого ввода, меньшего, чем Math.E, я получаю значение больше единицы. И для любого числа, большего, чем Math.exp (2), он становится отрицательным. Это тот случай, если сложное число ускоряется очень быстро.
Итак, пожалуйста, скажите мне: что я делаю неправильно. Я в отчаянии.
Спасибо.
EDIT:
Я был неправ: код, который я отвечал правильно, я просто 1. использовал это неправильный путь, и поэтому он не обеспечивает правильный вывод. 2. Должен был установить значение спасения алгоритма mandelbrot/julia на 10, иначе у меня снова были бы глупые группы.
Проблема решена!
Вы делаете что-то в java, но вы не отметили java –
Значение для спасения должно быть 2, а не 10. – karatedog
@karatedog. При реализации сглаживания вам нужно увеличить выкуп до значения, значительно превышающего 2 - и фактически, больше 10 (OP, возможно, уже это обнаружил). Полагаю, я должен объяснить, почему в качестве ответа. – sh1