Python-Turtle-Exemple2
Démarrer Turtle
Voici une petite série d'exemples Turtle dont la complexité du code augmente progressivement.
Cela permet de se faire une petite idée des possibilités offertes par Turtle, vous pouvez tester ces script directement dans Turtle sur REPL.it.
Changer de couleur
La commande pencolor() permet de changer la couleur du trait (du crayon) en identifiant la couleur par son nom en anglais (comme red, blue, etc) ou sa codification RGB (voir plus loin).
import turtle
t = turtle.Turtle()
# Dessiner en rouge
t.pencolor("blue")
for i in range(50):
t.forward(50)
t.left(123) # tourner a gauche
# Dessiner en rouge
t.pencolor("red")
for i in range(50):
t.forward(100)
t.left(123)
Résultat attendu:
Nom de couleurs
blue : bleu | orange : orange | green : vert | red : rouge |
purple : violet | brown : brun | pink : rose | gray : gris |
olive : olive | cyan : cyan | black : noir | white : blanc |
magenta : magenta | yellow : jaune | . | . |
Les noms des couleurs CSS peut être utilisé avec Turtle. Voici une copie provenant de matplotlib.org.
Code couleur RGB
Il est également possible d'utiliser la notation RGB tel qu'utilisé dans les feuilles de styles des pages HTML.
import turtle
t = turtle.Turtle()
t.pencolor("#FF0000") # Rouge
t.forward( 50 )
t.left( 35 )
t.pencolor("#00FF00") # Vert
t.forward( 50 )
t.left( 35 )
t.pencolor("#0000FF") #Bleu
t.forward( 50 )
t.left( 35 )
Résultat attendu:
La syntaxe utilisé pour mentionner la couleur "#00FF00" pour du vert peut paraître totalement incompréhensible sans les connaissances adéquates.
Heureusement, il y a l'outil HTML Color Picker de W3Schools (www.w3schools.com/colors/colors_picker.asp).
Cet outil permet de sélectionner une couleur et d'obtenir le code couleur sous différentes formes.
Dans l'exemple ci-dessus, nous voyons que la couleur rose bonbon sélectionnée correspond au code RGB #FF0066 .
Code couleur qui peut être utilisé dans un script Turtle comme ci-dessous:
import turtle
t = turtle.Turtle()
t.pencolor("#ff0066")
for i in range(50):
t.forward(2)
t.left(90)
t.forward(80)
t.right(90)
t.forward(2)
t.right(90)
t.forward(80)
t.left(90)
Résultat attendu:
Remplissage
Dans l'exemple suivant, fillcolor(), begin_fill() et end_fill() sont utilisés pour remplir un polygone (un triangle) dessiné avec la tortue.
import turtle
t = turtle.Turtle()
t.fillcolor('yellow')
# Faire un triangle SANS remplissage
t.forward(50)
t.right(90)
t.forward(50)
t.right(135)
t.forward(71)
# Faire un triangle AVEC remplissage
t.begin_fill()
t.forward(50)
t.right(90)
t.forward(50)
t.right(135)
t.forward(71)
t.end_fill()
Résultat attendu:
Variables
Une variable est une zone mémoire utilisée pour mémoriser une valeur, un peu comme on stocke un objet dans un tiroir.
La variable porte un nom, ce qui permet de retrouver facilement la valeur facilement dans la mémoire de l'ordinateur, un peu comme une étiquette apposée sur le tiroir et portant le nom de l'objet (son identifiant).
Ainsi l'écriture de a = 10 stocke la valeur 10 dans une variable nommée a . Il est alors possible d'utiliser le mon de la variable à la place de la valeur lors de l'exécution d'une commande.
Exemple 1:
Dans l'exemple suivant, la variable long contient la longueur du côté d'un carré. En modifiant la valeur de la variable, l'utilisateur change la taille du carré dessiné.
import turtle
t = turtle.Turtle()
long = 150 # Valeur à modifier
for i in range(4):
t.forward(long)
t.left(90)
Exemple 2:
Dans cet autre exemple, plusieurs variables sont utilisées pour stocker les différentes valeurs nécessaire au tracé d'un polygone.
import turtle
t = turtle.Turtle()
cote = 6 # Nombre de cotés
long = 70 # Longeur du coté
angle = 360.0 / cote # Angle de rotation
for i in range(cote):
t.forward(long)
t.right(angle)
Résultat attendu:
déplacement absolu
La commande setposition(x,y) permet de déplacer la tortue directement aux coordonnées mentionnées.
{{{text}}} |
import turtle
t = turtle.Turtle()
t.dot() # dessine un point
# Déplace la tortue x=0, y=25
t.setposition( 0, 25 )
t.dot()
# Lève crayon pour ne plus
# tracer de ligne
t.penup()
t.setposition( 0, 50 )
t.dot()
# Baisser le crayon pour
# tracer des lignes
t.pendown()
t.setposition( 50, 50 )
t.dot()
Résultat attendu:
Augmenter la vitesse
Il est possible d'augmenter la vitesse de dessin à l'aide de la commande speed(vitesse) . En précisant une valeur de 20, les fonctions de tracés seront beaucoup plus rapide (utiliser 1 pour le plus lent).
import turtle
l = turtle.Turtle()
l.speed(20)
for i in range(180):
l.forward(100)
l.penup() # lever le crayon
l.setposition(0, 0)
l.pendown() # Baisser le crayon
l.right(2)
Résultat attendu:
Réalisé par Meurisse D. pour MCHobby.be à partir de différentes ressources.
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.