turtle est un module du langage Python qui permet de réaliser des graphiques correspondant à la trace laissée par une tortue (virtuelle) sur l’écran.
Le module permet de donner des instructions à la tortue.
Je vous propose d’explorer quelques possibilités du module à l’aide d’exemples.
import turtle
# initialisation de la tortue et de la fenêtre
t = turtle.Turtle()
myWin = turtle.Screen()
myWin.setup(800, 600)
# on commence à dessiner
t.forward(100)
t.left(60)
t.forward(50)
t.right(120)
t.forward(25)
# on attend le clic de la souris pour fermer la fenêtre
myWin.exitonclick()
Cet exemple n’est pas très joli, mais nous indique deux instructions :
forward(longueur)
qui indique à la tortue d’avancer d’un certain nombre de pixelsleft(angle)
qui demande à la tortue de tourner d’un angle en degré vers la gauche (sens anti-horaire)right(angle)
qui demande à la tortue de tourner d’un angle en degré vers la droite (sens horaire)speed(vitesse)
où la vitesse va de 1 à 10.
Attention, une vitesse de 0 signifie la vitesse maximum (qui dépend de la machine, du système d’exploitation …).color(couleur)
qui prend comme paramètre une chaine de caractères parmi :
“blue”, “red”, “green”, “yellow”, “brown”, “black”, “white”, “pink”, “orange”, “purple”, “grey”width(épaisseur)
import turtle
# initialisation de la tortue et de la fenêtre
t = turtle.Turtle()
myWin = turtle.Screen()
myWin.setup(800, 600)
t.speed(1)
t.width(4)
# on commence à dessiner
t.forward(100)
t.left(60)
t.color("green")
t.forward(50)
t.right(120)
t.color("blue")
t.forward(25)
# on attend le clic de la souris pour fermer la fenêtre
myWin.exitonclick()
Reproduisez la figure ci-dessous :
Vous remarquerez l’instruction hideturtle()
qui permet de cacher la tortue (la flèche).
Son contraire est showturtle()
Reproduisez la figure ci dessous.
Vous pouvez utiliser l’instruction up()
qui permet de “lever le crayon”, c’est à dire qu’après cette instruction, la tortue bouge sans laisser de trace, et ce jusqu’à l’appel de la fonction down()
.
À partir de maintenant nous ne mettons que la partie du code qui concerne directement le dessin.
Pour tracer un arc de cercle on peut utiliser l’instruction circle(rayon, angle)
.
On peut s’en servir pour tracer une spirale :
rayon = 1
rayon_fin = 100
while(rayon < rayon_fin):
t.circle(rayon, 180)
rayon += 4
Précisons que le module Turtle peut manipuler plusieurs tortues :
import turtle
# initialisation de la tortue et de la fenêtre
t1 = turtle.Turtle()
t2 = turtle.Turtle()
myWin = turtle.Screen()
myWin.setup(800, 600)
rayon1 = 1
rayon2 = 3
rayon_fin = 100
t1.up()
t1.backward(150)
t1.down()
while(rayon2 < rayon_fin):
t1.circle(rayon1, 180)
t2.circle(rayon2, 180)
rayon1 += 4
rayon2 += 4
t1.hideturtle()
t2.hideturtle()
# on attend le clic de la souris pour fermer la fenêtre
myWin.exitonclick()
Vous remarquerez l’utilisation de l’instruction backward()
dont je vous laisse deviner l’utilité.
Les fonctions que nous venons de voir ont presque toutes un raccourci.
instruction complète | raccourci |
---|---|
forward() | fd() |
backward() | bk() |
left() | lt() |
right() | rt() |
Visionnez la vidéo suivante :
Réalisez un programme dessinant le flocon de Von Koch à un niveau donné.
Votre programme contiendra une fonction koch(t, niveau, taille)
qui dessine un côté du flocon (sur un côté du triangle équilatéral) où :
t
est la tortueniveau
le niveau auquel le flocon doit être dessinétaille
la longueur d’un côté du triangle équilatéral.Cette fonction sera recursive (refléchissez bien à l’algorithme et à la conditon d’arrêt).
Si la notion de fractale vous intéresse, vous pouvez visionner cette vidéo : Les fractales