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