2012-02-03 2 views
0

У меня есть небольшая проблема, когда мой набор mandelbrot представлен как матрица высотной карты, когда каждая ячейка содержит количество итераций, для достижения бесконечности или менее требуется одна точка.
В конце концов напечатана 3d модель. моя проблема возникает, когда я быстро масштабируюся, и я начинаю видеть, что весь набор плавает (потому что количество итераций увеличивается для каждого пикселя).
есть способ заставить модель остановиться на 0 (ось y), но все же позволить ей расти, поскольку каждая точка получает различное количество итераций?make mandelbrot heightmap stay in one place

Я попытался найти точку, требующую наименьшего количества итераций (и, в основном, самую низкую точку в наборе), и вычитает ее из всех точек, но это не сработало (поскольку число итераций меняется на каждый масштаб например, процесс сделал скачок набора от значения 5 до 100, например).

ответ

0

Эта проблема случается с 2D-фрактальными картами, а цветовое представление выходного значения «сдвигается». Если вы увеличиваете масштаб в 10 раз, каждая 10-я точка должна быть точкой из не увеличенной версии, но по мере увеличения итераций с увеличением эти точки не будут одинаковыми.

Решение (для меня было) - найти самый большой масштаб, который вы хотите достичь, найти подходящий коэффициент итерации для этого уровня масштабирования (для точных вычислений) и применять этот коэффициент итерации каждый раз даже для уровня масштабирования 0.

Это сделает расчет медленным, в моем случае мне пришлось перебирать каждую точку 5000 раз независимо от уровня масштабирования.

+0

Спасибо за ваш ответ, мне удалось решить эту проблему, просто выполнив итерацию по множеству (матрицу высот), а затем вычитая наименьшую высоту из всех остальных точек - таким образом мой Y-AX всегда относителен к 0. мой начальный проблема возникла в результате плохого отношения обработки. –

+0

Я прелестный фрик в фракталах (для некоторых экспериментов мне нужно :-), и я уверен, что рассчитанные значения - для определенных точек - могут измениться с вашим решением во время масштабирования. Представьте себе точку, которая ** не ** переходит в бесконечность при повторении более ** 100 ** раз, но она выполняется при повторении ** 150 ** раз. Эта точка изменится при масштабировании на карту (это обычно происходит на граница набора Мандельброта, черная или плоская область). Ваш Y-ax может относиться к 0, но два соседних пикселя могут изменять относительную разность высот. Но вам не обязательно быть прецизионным уродцем :-) – karatedog

+0

им не уверен, почему он по-прежнему вызывает проблемы в соответствии с вами, мое решение изменяет измененные значения, соотношение и точность между всеми ячейками сохраняется. это похоже на функцию glTranslated() в OpenGL –