07 Exos Turtle Correction
Exercice 1⚓︎
-
Ecrire une fonction
triangle_equilateral(cote)qui trace un triangle équilatéral de côtécotepixels.🐍 Script PythonUn appel de cette fonction, par exempledef triangle_equilateral(cote): for i in range(3): forward(cote) left(120)triangle_equilateral(100)donnera :
-
Ecrire une fonction
rosace(n)qui trace une rosace constituée de \(n\) triangles équilatéraux (en utilisant la fonction précédente).
Exemples de "rosaces" pour n = 5 ou n = 10 (vous n'êtes pas obligés de mettre des couleurs) :
def rosace(n):
for i in range(n):
triangle_equilateral(200)
left(360/n)
Un appel de cette fonction, par exemple rosace(8) donnera :

On pouvait aussi décider de passer la dimension des triangles en paramètre de la fonction rosace(), ou changer de couleur entre les triangles, etc...
Exercice 2⚓︎
Écrire une fonction polygone(longueur_cote, nb_cotes) permettant de tracer un polygone à nb_cotes cotés de longueur longueur_cote.
from turtle import *
def polygone(longueur_cote, nb_cotes):
"""Fonction qui dessine un polygone à nb_cotes côtés, de taille longueur_cotes"""
for c in range(nb_cotes):
forward(longueur_cote)
left(360 // nb_cotes)
# appel de la fonction :
polygone(100, 5)
done()
Exercice 3⚓︎
-
Écrire une fonction
carre(cote, couleur)permettant de tracer un carré rouge de coté 100 à l’appel decarre(100,'red').🐍 Script PythonUn appel de cette fonction, par exemplefrom turtle import * def carre(taille, couleur): """Fonction qui dessine un carré de taille et de couleur déterminées""" color(couleur) for c in range(4): forward(taille) right(90)carre(100, 'red')donnera :
-
Écrire un script utilisant la fonction
carreet donnant le résultat :
🐍 Script Pythonup() # relever le crayon goto(-300, 50) # reculer en haut à gauche # dessiner dix carrés rouges, alignés : for i in range(10): down() # abaisser le crayon carre(50, 'red') # tracer un carré up() # relever le crayon forward(60) # avancer + loin done() # attendre
Exercice 4⚓︎
Écrire un script avec Python permettant d’obtenir la figure suivante :

# On définit une fonction qui dessine des carrés pleins :
# (ou alors, on écrira begin_fill()) et end_fill() avant / après chaque tracé de carré
def carre_plein(taille, couleur):
"""Fonction qui dessine un carré plein de taille et de couleur déterminées"""
color(couleur)
begin_fill()
for c in range(4):
forward(taille) # en pixels
right(90) # tourner le curseur à droite de 90 degrés
end_fill()
# Puis pour les carrés dessinés en cercle :
def cercle_de_carres(n):
"""Dessine un cercle de n carrés pleins, n passé en argument"""
for i in range(n):
down() # abaisser le crayon
carre_plein(25, 'red') # tracer un carré
up() # relever le crayon
forward(30) # avancer + loin
left(360/n) # l'angle dépend du nombre total de carrés
up() # relever le crayon
goto(-50, -150) # commencer en bas
cercle_de_carres(36) # appel de la fonction précédente pour dessiner 36 carrés
done()
Exercice 5⚓︎
Écrire un script avec Python permettant d’obtenir la figure suivante :

Nota Bene : si on dessine les carrés en tournant à droite, et les triangles en tournant à gauche, on remarque cela nous simplifiera les choses pour dessiner la figure souhaitée.
from turtle import *
# On définit une fonction qui dessine des carrés pleins :
def carre_plein(taille, couleur):
"""Fonction qui dessine un carré plein de taille et de couleur déterminées"""
color(couleur)
begin_fill()
for c in range(4):
forward(taille) # en pixels
right(90) # tourner le curseur à droite de 90 degrés
end_fill()
# et une fonction qui dessine des triangles pleins :
def triangle_plein(taille, couleur):
"""Fonction qui dessine un triangle plein de taille et de couleur déterminées"""
color(couleur)
begin_fill()
for t in range(3):
forward(taille) # en pixels
left(120) # tourner le curseur à left de 120 degrés
end_fill()
# Puis pour les carrés et triangles dessinés en cercle :
def cercle_de_carres_et_triangles(n):
"""Trace un cercle de n carrés rouges et n triangles bleus"""
for i in range(n):
down() # abaisser le crayon
carre_plein(25, 'red') # tracer un carré
up() # relever le crayon
forward(30) # avancer + loin
left(180/n) # il y a 2n éléments, donc on tourne de 360/(2n)
down() # abaisser le crayon
triangle_plein(25, 'blue')
up()
forward(30) # avancer + loin
left(180/n) # il y a 2n éléments, donc on tourne de 360/(2n)
up() # relever le crayon
goto(0, -150) # commencer en bas
cercle_de_carres_et_triangles(18)
done()
Exercice supplémentaire⚓︎
Je ne publie pas de correction. Si vous avez des questions, n'hésitez pas à les poser...