# importation du module Turtle
import turtle
# première fenêtre
turtle.setup(600, 400, 100, 100)
# titre de la fenêtre
turtle.title("Ma première fenêtre")
# modification de la couleur de fond
turtle.bgcolor("yellow")
Comprendre le programme :
Problème : la fenêtre se referme immédiatement après que le dessin soit terminé.
Pour maintenir la fenêtre visible quelques secondes nous allons utiliser le module time de Python et arrêter le programme pendant 3 secondes avec la méthode sleep du module time : time.sleep(3).
Cela donne :
# importation du module Turtle
import turtle
# importation du module time
import time
# première fenêtre
turtle.setup(600, 400, 100, 100)
# titre de la fenêtre
turtle.title("Ma première fenêtre")
# modification de la couleur de fond
turtle.bgcolor("yellow")
# on arrête le programme pendant 3 secondes
time.sleep(3)
Pour dessiner des lignes, on ajoute ce qui suit à notre précédent programme.
# dessiner un trait
turtle.forward(100) # on avance de 100 pixels en traçant un trait
# tourner vers la droite et dessiner un trait
turtle.right(90) on tourne vers la droite de 90 degrés
turtle.forward(100)
time.sleep(3) # on fait une pause de 3 secondes
Comprendre le programme :
Pour dessiner plusieurs choses à la suite, nous allons avoir besoin d'effacer notre fenêtre. Pour cela :
turtle.reset()
# dessiner un cercle de rayon 100
turtle.circle(100)
# pause de 2 secondes
time.sleep(2)
# effacer la fenêtre
turtle.reset()
# dessiner un quart de cercle de rayon 100
turtle.circle(100,90) # circle(r,a) où r est le rayon et a l'angle, ici 90°
time.sleep(2)
On peut changer l'épaisseur du trait utilisé pour effectuer les tracés.
## Exemple de tracé d'un triangle équilatéral avec une base au trait plus épais
# changement de l'épaisseur du trait
turtle.width(3)
# tracé de la base du triangle
turtle.forward(100)
# changement épaisseur du trait et tracé du côté droit
turtle.width(1)
turtle.left(120)
turtle.forward(100)
# tracé du côté gauche
turtle.left(120)
turtle.forward(100)
time.sleep(3)
On déplace le stylo avec l'instruction turtle.goto(x,y) où x et y sont les coordonnées du point de destination.
En se déplaçant, le stylo va tracer un trait. Cela ne représente donc pas un grand intérêt par rapport à forward que nous avons vu précédemment.
Mis à part que Turtle offre la possibilité de :
Combiné avec goto(), cela nous permet de faire plusieurs dessins côte à côte.
## dessiner trois cercles dans la même fenêtre
# épaisseur du trait
turtle.width(2)
# on lève le crayon
turtle.up()
# on déplace le crayon en (-150,0)
turtle.goto(-150,0)
# on baisse le crayon
turtle.down()
# on trace un cercle
turtle.circle(50)
turtle.up()
turtle.goto(0,0)
turtle.down()
turtle.circle(50)
turtle.up()
turtle.goto(150,0)
turtle.down()
turtle.circle(50)
time.sleep(3)
Petite optimisation de notre code : on remarque que le programme précédent refait 3 fois la même chose, seule la position du départ du cercle change.
On peut donc optimiser notre code avec une boucle for :
## dessiner trois cercles dans la même fenêtre
# épaisseur du trait
turtle.width(2)
for x in range(-150,151,150):
print(x)
# on lève le crayon
turtle.up()
# on déplace le crayon
turtle.goto(x,0)
# on baisse le crayon
turtle.down()
# on trace un cercle
turtle.circle(50)
time.sleep(3)
Comprendre le programme : d'accord pour les mouvements du crayon et le tracé... Mais c'est quoi cette boucle for ??? On connaît pas, nous !
Pourquoi 151 et pas 150 : si 150 est la borne supérieure de mon range, 150 ne sera pas pris en compte. Revoir si nécessaire la partie du cours sur la boucle for.
turtle.dot(15) # où 15 est l'épaisseur du trait
Pour définir la couleur du crayon, on utise la méthode color() et on précise en paramètre la couleur qui est le nom de la couleur en anglais entre guillemets.
Exemple :
turtle.color("white")
Un exemple plus complet :
## dessiner un rectangle avec des lignes colorées
turtle.begin_fill()
turtle.ht() # on cache le curseur
turtle.pensize(3) # équivalent de width - pour définir la taille du trait
turtle.color("blue")
turtle.forward(100)
turtle.right(90)
turtle.color("red")
turtle.forward(50)
turtle.right(90)
turtle.color("green")
turtle.forward(100)
turtle.right(90)
turtle.color("purple")
turtle.forward(50)
turtle.fillcolor("white")
time.sleep(3)
print(turtle.pos())
turtle.ht() # ht pour hide turtle
Cliquer ici pour consulter la documentation complète du module Turtle