"Curlicue Fractals" con Visual C#

 

Sucedió que un día me encontré con esta web http://blog.csharphelper.com/categories/fractals.aspx donde Rod Stephens nos da los algoritmos para dibujar fractales con .Net. Siempre quise dibujar fractales así que decidí intentar programar alguno de ellos. Empecé con el que me pareció el más sencillo de todos: el Fractal Curlicue (se traduciría como "el fractal de las florituras" pero en verdad no he hallado el equivalente en español).
http://blog.csharphelper.com/2010/02/05/draw-a-curlicue-fractal-in-c.aspx 

Mas al revisar la documentación en http://mathworld.wolfram.com/CurlicueFractal.html noté que sólo menciona dos ecuaciones cuando en el código fuente de Rod se usan cuatro:

Al seguir examinando se puede ver que las ecuaciones de la documentación de Mathworld generan ángulos, y lo que se dibujan son líneas que necesitan las coordenadas de los puntos inicial y final. 

La traducción del algoritmo es la siguiente: Se tiene una línea de longitud 1, paralela al eje x. Se calcula un número theta con la ecuación, luego, con la ecuación se calcula el nuevo ángulo de la siguiente línea de longitud 1, cuyo punto inicial será el extremo final de la línea anterior.
Al final resulta un ángulo. Su módulo es 1. Para calcular las coordenadas se multiplica por el coseno (coordenada x) y el seno (coordenada y).

Mi programa está basado en el algoritmo de Rob, pero con algunas cosas añadidas, como zoom y poder posicionar el fractal, además emplea el objeto Graphics de una forma diferente para dibujar el fractal, también añadí un número aleatorio para jugar con los colores:

 

El fractal se genera sólo a partir de un número irracional. Si se utiliza un número racional sólo aparecerá una línea horizontal.

Mi programa, con el código fuente, se puede bajar de aquí :D (para Visual C# 2008).