Programmer en Python en 2nde

Dessiner avec le module turtle

Le module graphique turtle permet de piloter un «crayon» afin 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.

La liste complète des fonctions disponibles grâce au module turtle est disponible sur la documentation officielle.
On pourra aussi télécharger un petit résumé au format .pdf en cliquant ici.
Signalons également un site en français proposant une bonne présentation de ce module tortue : zestedesavoir.

Pour importer d'un seul coup toutes les fonctions du module afin de dessiner avec turtle, il faudra écrire en en-tête du fichier :


from turtle import *

Un premier tracé

Ce module peut être un bon outil pour faire le lien entre l'initiation à la programmation faite au collège avec le langage Scratch et l'algorithmique au lycée. Voici comment traduire en Python le programme ci-contre, réalisé avec Scratch :


					
					

Gestion des déplacements

Les déplacements peuvent être relatifs (ils dépendent de la position courante de la tortue) ou absolus (selon les coordonnées et l'orientation angulaire du repère). Les deux scripts suivants permettent d'obtenir le même dessin de carré que celui représenté ci-contre.

  • Un carré obtenu par déplacements relatifs :
    
    					
    					
  • Le même carré obtenu par déplacements absolus :
    
    					
    					

Fenêtre d'affichage

L'unité du système de coordonnées du module turtle dépend de la taille de la fenêtre d'affichage. Par exemple, dans les exercices interactifs de ce site, les axes sont gradués des valeurs -200 à 200 :


					
					

Modifier les unités des axes du repère

Il n'est pas possible d'agrandir indéfiniment les dimensions de la fenêtre d'affichage, mais il est heureusement possible de modifier les unités des axes grâce à la méthode .setworldcoordinates() appliquée à une instance de l'écran d'affichage ci-après affectée à la variable fenetre (fenetre = Screen()).

Par exemple :

  • Avec un repère orthonormè usuel gradué de -10 à 10 :
    
    						
    						
  • Avec un repère orthogonal gradué de -100 à 100 en abscisse et de -5 à 5 en ordonnée :