Tallo de Pickover

De Wikipedia, la enciclopedia libre
Ejemplo de tallos de Pickover en un detalle del conjunto de Mandelbrot

Los tallos de pickover (nombre original en inglés:Pickover Stalks) son ciertos tipos de detalles que se encuentran empíricamente en el conjunto de Mandelbrot, como parte del estudio de fractales.[1]​ Llevan el nombre del investigador Clifford Pickover, cuyo método de "cruz épsilon" fue fundamental para su descubrimiento. Una "cruz épsilon" es una trampa orbital en forma de cruz.

Según Vepstas (1997) "Pickover dio con el concepto novedoso de observar cuánto se acercan las órbitas de los puntos interiores a los ejes x e y. En estas imágenes, cuanto más se acerca un punto, más alta se sitúa en la escala de color, con el rojo indicando el mayor acercamiento. Se toma el logaritmo de la distancia para acentuar los detalles".[2]

Biomorfos[editar]

Un ejemplo del tipo de formas biomórficas producidas por el algoritmo de Pickover

Los biomorfos son tallos de Pickover de aspecto biológico.[3]​ A finales de la década de 1980, Pickover desarrolló organismos de retroalimentación biológica similares a los que aparecen en el conjunto de Julia y en el conjunto de Mandelbrot.[4]​ Según declaró resumidamente el propio Pickover (1999), "describió un algoritmo que podría usarse para la creación de formas diversas y complicadas que se asemejan a organismos invertebrados. Las formas son complicadas y difíciles de predecir antes de experimentar realmente con los gráficos. Esperaba que estas técnicas animarían a otros a explorar más y descubrir nuevas formas, por accidente, que están en el límite entre la ciencia y el arte".[5]

Pickover desarrolló un algoritmo (que no utiliza perturbaciones aleatorias ni leyes naturales) para crear formas muy complicadas que se asemejan a organismos invertebrados. La iteración o recursión de transformaciones matemáticas se utiliza para generar morfologías biológicas. Los llamó "biomorfos". Al mismo tiempo que acuñó el término "biomorfo" para estos patrones, el famoso biólogo evolutivo Richard Dawkins usó la palabra para referirse a su propio conjunto de formas biológicas a las que se llegó mediante un procedimiento muy diferente. Más rigurosamente, los "biomorfos" de Pickover abarcan la clase de morfologías orgánicas creadas por pequeños cambios en las pruebas de convergencia tradicionales en el campo de la teoría del "conjunto de Julia".[5]

Los biomorfos de Pickover muestran una auto-similitud en diferentes escalas, una característica común de los sistema dinámicos con retroalimentación. Los sistemas reales, como las costas y las cadenas montañosas, también muestran auto-similitud en algunas escalas. Un sistema 0L paramétrico bidimensional puede "parecerse" a los biomorfos de Pickover.[6]

Generación[editar]

Tallo de Pickover renderizado aplicando el pseudocódigo dado

El siguiente ejemplo, escrito en pseudocódigo, muestra un conjunto de Mandelbrot coloreado usando un tallo de Pickover con un vector de transformación y un dividendo de color.

El vector de transformación se utiliza para compensar la posición (x, y) al muestrear la distancia del punto a los ejes horizontal y vertical.

El dividendo de color es un valor flotante que se utiliza para determinar el grosor del tallo cuando se renderiza.

For each pixel (x, y) on the target, do:
{
	zx = scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1))
    zy = scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-1, 1))
	float2 c = (zx, zy) //Offset in the Mandelbrot formulae
	
	float x = zx; //Coordinates to be iterated
	float y = zy;
	
	float trapDistance = 1000000; //Keeps track of distance, set to a high value at first.

    int iteration = 0;
	while (x*x + y*y < 4 && iteration < maxIterations)
	{	
		float2 z = float2(x, y);

		z = cmul(z, z); // z^2, cmul is a multiplication function for complex numbers
	    z += c;					

		x = z.x;
		y = z.y;

		float distanceToX = abs(z.x + transformationVector.x); //Checks the distance to the vertical axis
		float distanceToY = abs(z.y + transformationVector.y); //Checks the distance to the horizontal axis

		smallestDistance = min(distanceToX, distanceToY); // Use only smaller axis distance
		trapDistance = min(trapDistance, smallestDistance);

		iteration++;
	}
	return trapDistance * color / dividend; 
	//Dividend is an external float, the higher it is the thicker the stalk is
}

Referencias[editar]

  1. Peter J. Bentley and David W. Corne (2001). Creative Evolutionary Systems. Morgan Kaufmann. p. 354.
  2. Linas Vepstas (1997). "Interior Sketchbook Diary". Retrieved 8 July 2008.
  3. Paul Nylander. Mandelbrot Set Biomorph. feb 2005. Retrieved 8 July 2008.
  4. Edward Rietman (1994). Genesis Redux: Experiments Creating Artificial Life. Windcrest/McGraw-Hill. p. 154.
  5. a b Clifford A. Pickover (1991) "Accident, Evolution, and Art". YLEN NEWSLETTER number. 12 volume 19 Nov/Dec. 1999.
  6. Alfonso Ortega, Marina de la Cruz, and Manuel Alfonseca (2002). "Parametric 2-dimensional L systems and recursive fractal images: Mandelbrot set, Julia sets and biomorphs". In: Computers & Graphics Volume 26, Issue 1, February 2002, Pages 143-149.

Lecturas relacionadas[editar]

  • Pickover, Clifford (1987). «Biomorphs: Computer Displays of Biological Forms Generated from Mathematical Feedback Loops». Computer Graphics Forum 5 (4): 313-316. doi:10.1111/j.1467-8659.1986.tb00317.x. 

Enlaces externos[editar]