Aller au contenu

Le module turtle

Importer un module

Un module est une collection de fonctions supplémentaires. En général, lorsqu'un programmeur a constitué un ensemble de fonctions sur le même thème, il les enregistre et les met à disposition de tous sous forme de bibliothèques.

  • Pour importer toutes les fonctions d'un module nommé module (par exemple), on écrit au début du script :

    1
    from module import *
    

  • Les modules déjà intégrés à Python sont listés dans le fichier python38.chm (dépend de votre distribution).

Des dessins avec le module turtle

Repère masqué

Le module graphique turtle permet de piloter un « crayon ». L'utilisation de ce module permet de profiter d'instructions simples de tracés de figures. On peut ainsi concevoir et tester quelques algorithmes de représentations de figures, qui ne sont pas nécessairement simples.

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ée 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.

Ne pas oublier d'importer le module turtle

Pour dessiner avec turtle, on pourra écrire en en-tête du fichier :

1
from turtle import *

Des objets et des méthodes

Usuellement, les instructions du tracé sont affectées au crayon défini par défaut.

Il est aussi possible de piloter plusieurs crayons en même temps (voire une liste de crayons). Pour cela :

  1. on définit (nomme) un crayon
    2
    nom_crayon = Turtle()
    
  2. puis on applique les instructions usuelles sous la forme de méthodes :
    3
    nom_crayon.nom_methode(parametres_eventuels)
    

Exemples

Voici quelques petits programmes permettant de découvrir les méthodes les plus courantes.

Le crayon avance...

1
2
3
4
5
6
from turtle import *        # Importation du module

stylo = Turtle()            # Crayon "stocké" dans la variable stylo
stylo.forward(100)          # Le crayon avance de 100 pixels

exitonclick()               # La fenêtre se ferme en cliquant dessus

Le crayon tourne...

1
2
3
4
5
6
7
8
from turtle import *        # Importation du module

stylo = Turtle()            # Crayon "stocké" dans la variable stylo
stylo.forward(100)          # Le crayon avance de 100 pixels
stylo.left(60)              # Le crayon tourne sur lui-même de 60° à gauche
stylo.forward(100)          # Le crayon avance de 100 pixels

exitonclick()               # La fenêtre se ferme en cliquant dessus

Le crayon trace une spirale...

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from turtle import *        # Importation du module

stylo = Turtle()            # Crayon "stocké" dans la variable stylo
stylo.color('blue')         # On dessine en bleu...
n = int(input('Valeur ?'))  # L'utilisateur entre un nombre

for i in range(n):          # On répète n fois
    stylo.forward(3*i)      # Le crayon avance de 3*i pixels (de 0 à n-1)
    stylo.right(90)         # Le crayon tourne sur lui-même de 90° à droite

exitonclick()               # La fenêtre se ferme en cliquant dessus

Description de plusieurs méthodes

La liste des commandes ci-dessous n'est pas exhaustive. Il s'agit seulement des commandes principales.

  • En cliquant ici, vous trouverez la documentation complète sur la tortue.
  • Un petit résumé pdf est disponible par ici.

Dans ce qui suit, le crayon est stocké dans la variable c grâce à l'instruction c = Turtle().
Il faut donc remplacer c par le nom de la variable de son propre programme.

Méthodes de « comportement » du crayon

Méthode(paramètre) Description
c.shape(forme) forme possible : 'classic' ou 'turtle' (type string)
c.speed(n) Vitesse du tracé : de n = 1 (lent) à n = 10 (rapide). n = 0 est la vitesse maximale
c.width(n) Épaisseur du trait : de n = 1 (fin) à n = 10 (épais)
c.color(couleur) couleur du crayon : 'green', 'red', '#0000ff', ... (type string)
c.up() Relever le crayon (pour le déplacer sans dessiner)
c.down() Abaisser le crayon (pour recommencer à dessiner)
c.setheading(angle) Tourne le crayon sur lui-même dans la direction indiquée par l'angle
c.write(texte) Le texte, de type string est écrit, avec la couleur courante, à la position actuelle du crayon
c.hideturtle() Permet de masquer le crayon

Méthodes de déplacements/tracés du crayon

Méthode(paramètre) Description
c.forward(dist) Avancer d'une longueur dist (en pixels) donnée
c.backward(dist) Reculer d'une longueur dist (en pixels) donnée
c.left(angle) Le crayon tourne sur lui-même à gauche d'un angle donné (en degrés)
c.right(angle) Le crayon tourne sur lui-même à droite d'un angle donné (en degrés)
c.circle(x,[y]) Trace un cercle de rayon x. Possibilité d'arc de cercle avec un valeur d'angle y (sans crochets pour l'utiliser)
c.dot(x,[couleur]) Disque de rayon x, centré à l'endroit où se trouve le crayon (couleur intérieure en option, de type string)
c.goto(x,y) Déplacer le crayon jusqu'aux coordonnées (x;y)

Méthodes pour récupérer des informations sur le crayon

Méthode(paramètre) Description
c.pos() Renvoie sous forme d'un couple (tuple) les coordonnées actuelles du crayon
c.heading() Renvoie l'orientation (en degrés) actuelle du crayon

Méthodes pour modifier la fenêtre (ne s'applique pas au crayon)

Méthode(paramètre) Description
clear() Efface le dessin, le crayon reste à sa place
reset() Ré-initialise la page (dessin effacé, crayon replacé à l'origine)
exitonclick() Permet de sortir du script en cliquant sur la fenêtre. A écrire en fin de script

Interaction avec l'utilisateur

Dans un environnement de programmation en Python, les instructions ci-dessous affichent une fenêtre « popup » dont le nom est Nom_Fenetre avec un Message écrit à destination de l'utilisateur.
L'utilisateur saisi une valeur dans le champs de texte, valeur qui est stockée dans la variable a.

Méthode(paramètre) Description
a = textinput('Nom_fenetre', 'Message') a est de type string
a = numinput('Nom_fenetre', 'Message') a est de type float