h1

Receta: Fractal de Newton

13 \13UTC septiembre \13UTC 2008

Tenía ganas de liberar este código desde hace tiempo. Es quizá la forma más bonita de hacer fractales, y ahora que he cambiado la función de color, la más vistosa. El problema que tuve antes para no liberarlo es que usaba una biblioteca personal MAL escrita y desordenada para pintar, así que hice la adaptación a SDL. Y que seguro que cualquiera puede adaptarlo a cualquier otro motor gráfico.

Free Image Hosting at www.ImageShack.us


El único fallo del programa es que necesita de Praslan para funcionar (no hay problema, te lo bajas de aquí, que para algo abrí un post). Praslan es una biblioteca demasiado sencilla y no necesita demasiado (el gcc, las cabeceras, la biblioteca de matemáticas y nada más), y SDL viene en la mayoría de distribuciones.

Código fuente aquí.

La compilación es sencilla siempre y cuando dispongamos de todo lo necesario (remarco de nuevo en que necesitamos SDL, los archivos de desarrollo incluidos) para compilar. Se resume a un único comando:

gcc sdlnewton.c -o sdlnewton -lpraslan `sdl-config --cflags --libs` -O3

Y entonces ya tendremos el binario sdlnewton listo para usar. El programa usa la z como incógnita (ojo con esto).

Para dibujar una función necesitamos conocer su derivada. Por ejemplo, si queremos dibujar el fractal para z^5 – 1 (cuya derivada es 5z^4) tendríamos que escribir:

$ ./sdlnewton 'z^5 - 1' '5*z^4'

(Las comillas son necesarias para que la shell no haga el chapuzas con los espacios y los operadores)

Y eso es todo. Con ese programa podremos hacer fractales muy vistosos (yo recomiendo hacerlos todos con polinomios de cualquier tipo, además de que así las derivadas son más fáciles) y hala. Enjoy your fractals.

One comment

  1. Moooola!! Esta chulo. Inventando polinomios al azar lo hice petar varias veces jajaaja!!



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: