1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
   |  
from turtle import *
def draw_oval(x,y,long_radius,short_radius,tilt):
    #tilt 90=> portrait départ Sud-Est
    #tilt 0 => paysage départ Sud-Ouest
    #tilt 45=> montante départ Sud
    #tilt 135=> descendante départ Est
    up()
    #si vertical
    if tilt==90: #tilt 90=> portrait départ Sud-Est
        depart_x = (long_radius-short_radius)/1.4142
        depart_y = (long_radius-short_radius)/1.4142*2
    elif tilt==0:#tilt 0 => paysage départ Sud-Ouest
        depart_x = -((long_radius-short_radius)/1.4142+short_radius/1.4142)
        depart_y = short_radius/1.4142
    elif tilt==45: #tilt 45=> montante départ Sud   
        depart_x = -((long_radius-short_radius)/2)
        depart_y = (long_radius-((long_radius-short_radius)/2))
    elif tilt==135:#tilt 135=> descendante départ Est
        depart_x = (long_radius-((long_radius-short_radius)/2))
        depart_y = ((long_radius-short_radius)/2)
    else:
        depart_x=0 # juste pour eviter une erreur si angle différent
        depart_y=0 # de ceux prévus(0,45,90,135)
    goto(depart_x,-depart_y)
    down()
    seth(-45+tilt)
    color('red')
    circle(long_radius,90)
    color('blue')
    circle(short_radius,90)
    color('yellow')
    circle(long_radius,90)
    color('green')
    circle(short_radius,90)
 
draw_oval(0,0,100,50,90)#portrait
draw_oval(0,0,100,30,0)#paysage
draw_oval(0,0,60,30,45) #montante
draw_oval(0,0,60,30,135) #descendante
#draw_oval(0,0,100,50,22)#angle non prévu => fera demarrer le tracé au centre de la fenetre | 
Partager