He creado un código JavaScript fractal de cajón que se puede ver aquí:
Como usted probablemente todos saben, un Conjunto de Mandelbrot es creado por la iteración sobre los píxeles como si fueran las coordenadas de lo real y lo imaginario planos. Cada píxel tiene un real y una parte imaginaria (como todos los números complejos) que se puede alimentar en un bucle iterativo de su propio:
$ z = z^2 + c $
Donde tanto z
y c
son números complejos, z
comienza en 0
y c
es el valor del píxel. Si ejecuta esta a un montón de veces, el cuadrado del módulo de la z
(|z|
) permanecerá por debajo de un límite establecido (6 en mi fractal cajón) o se va a ir por encima del límite. Si se supera el límite, se rompe la iteración y considerar la posibilidad de que el píxel se fuera de la serie. Cuando esto sucede, el color de ese pixel de un color determinado, dependiendo de cómo de grande |z|
ha recibido y cuántas iteraciones se llevó a determinar que se trata de un principio el conjunto. (Ver más sobre la fórmula utilizada en mi cajón de aquí: Continua para colorear de un fractal Mandelbrot)
Así que teniendo en cuenta todo esto, podemos decir que un mayor max iteración de valor le dirá con mayor precisión si o no un punto está en el conjunto. Asimismo, tomará más tiempo para ejecutar debido a que se trata de hacer más cálculos por píxel. También hay otros visual de los factores de...
Si comienzas a una completa zoom out y ejecutar la trama con maxIterations valor de 50, 100 y 300, este:
Así que usted puede ver que, si bien el detalle de la esquina de la mejora a medida que aumente la maxIterations valor de los píxeles fuera del conjunto son casi todos de color rojo. En este nivel de zoom, yo diría algo así como 50 iteraciones sería un equilibrio ideal de la variación en el color y el detalle de borde.
Ahora si te acercas a algún nivel arbitrario de mantenimiento de 50 maxIterations, usted comenzará a ver algo como esto:
El detalle es horrible y los colores también son un poco homogéneo. Así que vamos a ver qué pasa si queremos mantener el mismo nivel de zoom y cambiar el maxIterations número de 80, 120, 250, 500, 1000, y 2000 (recuerde, las coordenadas y el zoom son exactamente el mismo en todas las imágenes, la única diferencia es el maxIterations valor):
Como de costumbre, el aumento de la maxIterations valor demasiado las hojas de la mayoría de los puntos fuera de la serie roja. Aquí me gustaría decir algo entre el segundo (120 maxIterations) y la tercera (250 maxIterations) es más o menos ideal.
Todo esto es relativamente fácil de hacer una imagen a la vez con su ojo y de algunos retoques, pero esto sería muy difícil de hacer si me fuera a crear un zoom como este: http://vimeo.com/1908224. Me haría falta algún método de encontrar algo como un ideal maxIterations valor en función del nivel de zoom.
Así que después de todo esto, mi pregunta es: ¿hay algún método? Si no, donde puedo empezar a mirar con el fin de averiguar esto para mí? Estoy pensando acerca de este mal? Hay más solución obvia de que me estoy perdiendo?
Gracias de antemano!