# Créé par prof, le 06/03/2020 en Python 3.2 from turtle import * #====================================================== # Déclaration des fonctions #====================================================== # - - - - - - - - - - - - - - - - - - - - - - - - - - - # Trace un triangle à l'endroit et renvoi la liste de ses sommets def triangle_h(longueur): setheading(0) liste=[] for i in range(3): liste.append(position()) forward(longueur) left(120) return liste # - - - - - - - - - - - - - - - - - - - - - - - - - - - # Trace un triangle à l'envert et renvoi la liste de ses sommets def triangle_b(longueur): setheading(0) liste=[] for i in range(3): liste.append(position()) forward(longueur) right(120) return liste # - - - - - - - - - - - - - - - - - - - - - - - - - - - # déplace le curseur sans tracer : def deplacer(xy): up() goto(xy[0],xy[1]) down() # - - - - - - - - - - - - - - - - - - - - - - - - - - - # calcule le point milieu entre deux sommets et renvoie un tuple : def milieu(sommet1,sommet2): x=(sommet1[0]+sommet2[0])/2 y=(sommet1[1]+sommet2[1])/2 return (x,y) #====================================================== # Programme principal #====================================================== # Trace le premier triangle : segment=600 deplacer((-300,-200)) liste_sommets_1=triangle_h(segment) # Trace le triangle du milieu : deplacer(milieu(liste_sommets_1[0],liste_sommets_1[2])) segment=segment/2 liste_sommets_2=triangle_b(segment) """ segment=segment/2 deplacer(milieu(liste_sommets_2[0],liste_sommets_1[0])) liste_sommets=triangle_b(segment) deplacer(milieu(liste_sommets_2[0],liste_sommets_1[1])) liste_sommets=triangle_b(segment) deplacer(milieu(liste_sommets_2[0],liste_sommets_1[2])) liste_sommets=triangle_b(segment) deplacer(milieu(liste_sommets_2[0],liste_sommets_2[2])) liste_sommets=triangle_h(segment) """ """ for s in range(3): liste_sommets=liste_sommets_2 segment_1=segment for i in range(4): deplacer(milieu(liste_sommets[0],liste_sommets_1[s])) segment_1=segment_1/2 liste_sommets=triangle_b(segment_1) """ done()