from math import * from turtle import * def triangle_frac(a,b,niveau): niveau-=1 distance=((a[0]-b[0])**2+(a[1]-b[1])**2)**.5 penup() goto(a[0],a[1]) pendown() pcos=(b[0]-a[0]) psin=(b[1]-a[1]) angle1=acos((b[0]-a[0])/distance)*180/pi angle2=asin((b[1]-a[1])/distance)*180/pi if pcos>0 and psin>0: angle=angle1 elif pcos<=0 and psin>0: angle=angle1 elif pcos<0 and psin<=0: angle=-angle1 else : angle=angle2 left(angle-heading()) forward(distance/4) b=position() if niveau>0: triangle_frac(a,b,niveau) left(60) forward(distance/2) a=position() if niveau>0: triangle_frac(b,a,niveau) right(120) forward(distance/2) b=position() if niveau>0: triangle_frac(a,b,niveau) left(60) forward(distance/4) a=position() if niveau>0: triangle_frac(b,a,niveau) speed(0) triangle_frac((50,-50),(-50,-50),4) triangle_frac((-50,50),(50,50),4) triangle_frac((50,50),(50,-50),4) triangle_frac((-50,-50),(-50,50),4) done()