Dessiner avec turtle

Repère de turtle

Le module graphique turtle permet de piloter un « crayon » permettant de tracer dynamiquement des figures géométriques.

Les dessins sont réalisés dans un repère orthonormé virtuel centré sur la fenêtre d'affichage. L'unité des axes est le pixel. Le repère n'est pas visible à l'écran.

La forme par défaut du crayon de tracé est une flèche « orientée », placé au départ à l'origine du repère. Le crayon est situé à la pointe, la flèche montre le sens du tracé en cours ou à venir.

Repère du module Turtle

FondamentalDes objets et des méthodes

Le crayon utilisé pour les tracés est un objet informatique. Pour manipuler cet objet, il faut lui appliquer une méthode selon la syntaxe :

1
objet.methode(parametres eventuels)

Les méthodes utilisées avec turtle doivent donc être appliquée à un crayon stocké dans une variable. Par exemple dans stylo grâce à l'instruction :

1
stylo = Pen()

ExempleExemple 1 : le stylo avance...

1
from turtle import *  # Importation du module
2
stylo = Pen()         # Crayon "stocké" dans la variable stylo
3
stylo.forward(100)    # Le crayon avance de 100 pixels
4
exitonclick()         # La fenêtre se ferme en cliquant dessus

ExempleExemple 2 : le stylo tourne...

1
from turtle import *      # Importation du module
2
stylo = Pen()             # Crayon "stocké" dans la variable stylo
3
stylo.forward(100)        # Le crayon avance de 100 pixels
4
stylo.left(60)            # Le crayon tourne sur lui-même de 60° à gauche
5
stylo.forward(100)        # Le crayon avance de 100 pixels
6
exitonclick()             # La fenêtre se ferme en cliquant dessus

ExempleExemple 3 : le stylo trace une spirale

1
from turtle import *         # Importation du module
2
stylo = Pen()                # Crayon "stocké" dans la variable stylo
3
stylo.pencolor('blue')       # On dessine en bleu...
4
n = numinput('', 'Valeur ?') # L'utilisateur entre un nombre
5
n = int(n)                   # numinput renvoie un flottant...
6
for i in range(n):           # On répète n fois
7
   stylo.forward(i)          # Le crayon avance de i pixels
8
   stylo.right(90)           # Tourne sur lui-même de 90° à droite
9
exitonclick()                # La fenêtre se ferme en cliquant dessus