Au cours de cette séance, nous avons abordé un autre module inclus avec Python : le module "turtle".
Ce module permet de dessiner très simplement des figures. Il est utilisable comme un traceur : imprimante
utilisée avec des crayons pour imprimer des plans de grandes dimensions. Il est inspiré de la programmation
Logo et permet de déplacer une tortue sur l’écran.
Notre premier programme a pour objectif de découvrir les premières fonctionnalités du module : tracer
des traits et orienter la tortue.
# Importation du module "turtle"
import turtle
# Choix des couleurs : rouge pour le trait,
# jaune pour le remplissage
turtle.color("red", "yellow")
# Reglage de la vitesse de deplacement :
# 0 => le plus rapide possible
# 10 => rapide
# 6 => normal
# 3 => lent
# 1 => le plus lent possible
turtle.speed(1)
# On indique que l'on commence le dessin
# pour le remplissage de la forme finale
turtle.begin_fill()
# Avance de 30
turtle.forward(30)
# S'oriente de 45° à gauche (sens anti-horaire)
turtle.left(45)
# Avance de 50
turtle.forward(50)
# S'oriente de 45° à droite (sens horaire)
turtle.right(45)
# Recule de 50
turtle.backward(50)
# Fin de la forme pour le remplissage
turtle.end_fill()
# Demarre la boucle d'evenements
turtle.done()
Nous avons ensuite utilisé une boucle while pour dessiner un mandala : le principe est de
dessiner un trait, puis de tourner d'un angle, re-dessiner un trait, etc. La condition de fin
d'exécution de la boucle est atteinte quand la tortue revient au point de départ.
# Importation de toutes les fonctions
# du module turtle
from turtle import *
# Choix des couleurs : rouge pour le trait,
# jaune pour le remplissage
color('red', 'yellow')
# On indique que l'on commence le dessin
# pour le remplissage de la forme finale
begin_fill()
# Boucle de dessin
while True:
# Avance de 200
forward(200)
# S'oriente de 170° à gauche (sens anti-horaire)
left(170)
# Si la position de la tortue est inferieure
# a 1 => elle est revenue au point de depart
if abs(pos()) < 1:
# Arret de la boucle
break
# Fin de la forme pour le remplissage
end_fill()
# Demarre la boucle d'evenements
done()
Les différents codes sources sont disponibles sur les liens suivants :