UKOnline

Dessin avec turtle

Pour terminer ce chapitre, découvrons le module turtle qui permet d'effectuer simplement des dessins constitués de lignes. Ce module permet de réaliser des dessins en faisant se déplacer une tortue dans le plan, qui dessine le chemin qu'elle a parcouru. Voyons d'abord un programme qui utilise ce module avant d'en détailler le contenu :

Ce programme comporte une boucle while qui s'exécute cinq fois. À chaque boucle, la tortue avance de $50$ unités (forward), puis tourne sur place de $72$ degrés (left), dans le sens anti-horloger. La figure 11 montre le résultat de l'exécution du programme, sachant que la tortue se trouve initialement au milieu de la fenêtre, orientée vers la droite.

Dessin avec tortue
Le module turtle permet de dessiner des formes dans le plan, en faisant se déplacer une tortue à partir de primitives simples.

Une fois le module importé avec from turtle import *, on peut utiliser toutes les fonctions définies dans ce module, dont les principales sont reprises à la figure 12. La fonction forward permet d'avancer d'un nombre d'unités qu'on lui précise tandis que la fonction left permet de tourner sur place d'un angle en degrés qu'on lui précise également. La fonction done, appelée à la fin du programme, permet de garder la fenêtre de dessin ouverte, malgré que la tortue ait fini ses déplacements.

Fonction Description
forward(dist) Avancer de la distance spécifiée
backward(dist) Reculer de la distance spécifiée
left(ang) Tourne sur place dans le sens anti-horloger de l'angle spécifié
right(ang) Tourne sur place dans le sens horloger de l'angle spécifié
up() Relever le crayon
down() Baisser le crayon
color(col) Changer la couleur du crayon ('red', 'blue'...)
width(wid) Changer l'épaisseur du crayon par l'épaisseur spécifiée
goto(x, y) Aller, en ligne droite, au point de coordonnées $(x, y)$
reset() Effacer tout
done() Maintenir la fenêtre ouverte une fois le dessin terminé
Le module turtle possède plusieurs fonctions permettant de déplacer la tortue et de changer les caractéristiques du trait dessiné.

Il faut faire attention à la fonction goto(x, y) qui permet de déplacer la tortue vers le point de coordonnées $(x, y)$. En effet, les axes ne sont pas comme vous en avez l'habitude en mathématiques : le coin supérieur gauche se trouve en $(0, 0)$, et l'axe des $x$ va vers la droite tandis que l'axe des $y$ descend vers le bas.

On observe également la présence des fonctions up() et down() qui permettent de lever et baisser le crayon, ce qui permet de dessiner ou non lorsque la tortue se déplace. D'autres fonctions sont disponibles, comme celle pour dessiner des arcs de cercle, par exemple, mais nous n'allons pas les détailler ici.

Le listing de la figure 13 montre un autre exemple complet de programme qui utilise une tortue pour réaliser un dessin. Le résultat de l'exécution de ce programme est présenté à la figure 14. Expérimentez ce programme en changeant les valeurs des variables MAX et factor.

Le fichier turtle-drawing.py contient un programme de dessin à l'aide du module turtle.
Dessin avec tortue
Le programme de la figure 13 dessine une séquence de lignes de plus en plus longue, en tournant à chaque fois de $90$ degrés vers la gauche entre chaque ligne.