Construcción 2

import time import math #definimos una función que dibuja los puntos de la mariposa def Puntos(): m=0 while m<=2*math.pi: punto=Point(((math.e)**(math.sin(m))-2*math.cos(4*m)+(math.sin((2*m-math.pi)/24))**5)*math.cos(m),((math.e)**(math.sin(m))-2*math.cos(4*m)+(math.sin((2*m-math.pi)/24))**5)*math.sin(m)) punto.size=2 puntos.append(punto) m=m+math.pi/100 time.sleep(0.01) #definimos una función que dibuja los segmentos entre puntos def Segmentos(): for i in range(0,len(puntos)-1): segmento=Segment(puntos[i], puntos[i+1]) segmento.color='red' segmento. line_thickness=15 time.sleep(0.01) #función que dibuja puntos en el interior de las alas superiores def Interior1(): for i in range(1,20): for j in range(1,20): m=math.atan(j/i) m1=math.pi-m if math.sqrt((i/5)**2+(j/5)**2)< ((math.e)**(math.sin(m))-2*math.cos(4*m)+(math.sin((2*m-math.pi)/24))**5): P=Point(i/5,j/5) P.color=((math.sin(m)),(math.sin(m))**4,0.1) P.size=6 time.sleep(0.01) if math.sqrt((i/5)**2+(j/5)**2)< ((math.e)**(math.sin(m1))-2*math.cos(4*m1)+(math.sin((2*m1-math.pi)/24))**5): P=Point(-i/5,j/5) P.color=((math.sin(m1)),(math.sin(m1))**4,0.1) P.size=6 time.sleep(0.01) #función que dibuja puntos en el interior de las alas inferiores def Interior2(): for l in range(1,20): for p in range(-20,0): m2=math.atan(p/l) m3=math.pi-m2 if math.sqrt((l/5)**2+(p/5)**2)< ((math.e)**(math.sin(m2))-2*math.cos(4*m2)+(math.sin((2*m2-math.pi)/24))**5): P1=Point(l/5,p/5) P1.color=(abs((math.sin(m2)))**3,abs((math.sin(m2))),0.1) P1.size=6 time.sleep(0.01) if math.sqrt((l/5)**2+(p/5)**2)< ((math.e)**(math.sin(m3))-2*math.cos(4*m3)+(math.sin((2*m3-math.pi)/24))**5): P1=Point(-l/5,p/5) P1.color=(abs((math.sin(m3)))**3,abs((math.sin(m3))),0.1) P1.size=6 time.sleep(0.01) #programa principal #Dibujamos una circunferencia en el fondo P=Point(0,0,is_visible=False) C=Circle(P,30) C.color='black' C.opacity=1 time.sleep(0.01) puntos=[] Puntos() Segmentos() Interior1() Interior2()