turtle_test.py

Created by julien-bernon

Created on October 17, 2020

1.09 KB


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()