# Start writing your code!
import time
from random import*
from math import*
#point initial
p=(0.5,0)
#Constantes
c=0.255
r=0.75
q=0.625
A_1=-pi/8
A_2=pi/5
def transformation_1(p):
x=p[0]
y=p[1]
x1=0*x+0*y+0.5
y1=0*x+c*y
return x1,y1
def transformation_2(p):
x=p[0]
y=p[1]
x1=r*cos(A_1)*x-r*sin(A_1)*y+0.5-0.5*r*cos(A_1)
y1=r*sin(A_1)*x+r*cos(A_1)*y+c-0.5*r*sin(A_1)
return x1,y1
def transformation_3(p):
x=p[0]
y=p[1]
x1=q*cos(A_2)*x-r*sin(A_2)*y+0.5-0.5*q*cos(A_2)
y1=q*sin(A_2)*x+r*cos(A_2)*y+1*c-0.5*q*sin(A_2)
return x1,y1
def transforme(p):
# Choix aléatoire avec équiprobabilité entre les trois transformations
tirage=random()
if tirage <1/3 :
x,y = transformation_1(p)
elif tirage <2/3:
x,y =transformation_2(p)
else:
x,y =transformation_3(p)
return x,y
def construction(p,nbpoints):
x = [p[0]]
y = [p[1]]
for i in range(nbpoints):
p = transforme(p)
x.append(p[0])
y.append(p[1])
#P1=Point(x[i-1],y[i-1],size=1)
P2=Point(x[i],y[i],size=1)
#time.sleep(0.1)
#s=Segment(P1,P2)
# Exécution
construction(p,15000)