Fractal de la curva del dragón
La curva del dragón es un fractal que se construye siguiendo los siguientes pasos:
- A partir de un segmento, se construye el triángulo rectángulo e isósceles, como lo muestra las dos primeras figuras. Luego se borra el segmento inicial.
- Se repite varias veces el proceso de remplazar un segmento por otros dos para cada línea de la curva, alternando siempre la orientación de los triángulos.
La siguiente figura muestra los trece primeros pasos:
El ejercicio consiste en definir (en CodeWorld) la función
1 |
dragon :: Number -> Picture |
tal que dragon(n)
es el dibujo correspondiente al paso n de la construcción de la curva del dragón. Por ejemplo, el dibujo de dragon(20)
es
Comentarios
- La descripción de la curva dragón es la que se encuentra en el artículo de la Wikipedia.
- Una definición análoga es la del fractal de la curva de Koch.
Soluciones
1 2 3 4 5 6 7 |
main = pictureOf(translate(dragon(20), 1, -2)) dragon :: Number -> Picture dragon(0) = line[(-6, 0), (6, 0)] dragon(n) = translate(rotate(sub, 45), -3, 3) & translate(rotate(sub, 135), 3, 3) where sub = scale(dragon(n-1), 1 / sqrt(2), 1 / sqrt(2)) |