Python-Turtle-Exemple2 : Différence entre versions

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 121 : Ligne 121 :
  
 
== Remplissage ==
 
== Remplissage ==
Dans l'exemple suivant, {{fname|begin_fill()}} et {{fname|end_fill()}} sont utilisés pour remplir un polygone (un triangle) dessiné avec la tortue.
+
Dans l'exemple suivant, {{fname|fillcolor()}}, {{fname|begin_fill()}} et {{fname|end_fill()}} sont utilisés pour remplir un polygone (un triangle) dessiné avec la tortue.
  
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">

Version du 22 mars 2020 à 11:59


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

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.

Download-icon.pngDémarrer Python Turtle en ligne

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:

Python-Turtle-Exemple2-00.png

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.

Python-Turtle-Exemple2-11a.png

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:

Python-Turtle-Exemple2-11b.png

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.

Python-Turtle-Exemple2-20.png

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:

Python-Turtle-Exemple2-11c.png

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:

Python-Turtle-Exemple2-14.png

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:

Python-Turtle-Exemple2-12.png

déplacement absolu

La commande setposition(x,y) permet de déplacer la tortue directement aux coordonnées mentionnées.

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:

Python-Turtle-Exemple2-13.png

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:

Python-Turtle-Exemple2-15.png


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.