martes, 11 de enero de 2011

La curva del dragón con Logo

Nada, que después de encontrarse uno con que alguien se las arreglo para hacer este fractal con redcode [ http://impomatic.blogspot.com/2011/01/dragon-curve-in-redcode.html ] (para quitarse el sombrero, vaya :P !) no se puede menos que intentarlo en otro lenguaje, y a falta de poder tirar de los gráficos de tortuga el python por cosas de la vida, la siguiente opción es logo.


Realmente no tiene mucha complicación, la wikipedia nos da la fórmula lista para programar, simplemente hay que hacer:


G = B ^ (B >> 1)

(El ^ es XOR y el >> 1 es mover todos los bits una posición a la derecha). Y después hacer AND de este "G" y el NOT del anterior, así puede quedar por ejemplo en Logo:


to ge :g :gz
    ifelse (bitand (bitnot :g) :gz) > 0 [
        rt 90
    ] [
        lt 90
    ]
end

to dragon :length :step :base :gz
    if :base > :length [stop]
    ge bitxor :base (lshift :base -1 ) :gz
    fd :step
    dragon :length :step :base+1 bitxor :base (lshift :base -1)
end

ht ; Hace que vaya más rápido
dragon 100000 1 0 0




Si al final todo es más fácil de lo que parece :P

No hay comentarios:

Publicar un comentario