lunes, 25 de julio de 2011

Curva Dragón

Curva dragón, así se llama este fractal, como siempre, con los fractales la idea es simple: "hacer lo mismo varias veces". Este es el primero que me salío. La figura inicial son dos lados consecutivos de un cuadrado. Lo rotamos 90º, y a toda la figura resultante, lo volvemos a rotar. Así sucesivamente.
Esta es una variante.






Código:

def rot_point(x,p):    
    size=len(x)
    P=[]
    for i in range(size):        
        P.append([-x[i][1]+p[1]+p[0],x[i][0]-p[0]+p[1]])
    return P
def curva_dragon(N):
    DRA=[[-1,0],[0,0],[0,-1]]
    for i in range(1,N):
        tem=[]
        tem=rot_point(DRA[0:2^i],DRA[2^i])
        tem.reverse()
        DRA=DRA+tem       
    return DRA
D=curva_dragon(10)
line(D)

1 comentario:

  1. Hola muy interesante tu articulo la verdad yo siempre uso matlab y he oído algo del sage ...me podrías explicar en que consiste el SAGE , para que sirve
    Muchas Gracias y sigue así
    Bye

    ResponderEliminar