« Programmation Python/Turtle » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 :
{{Autres projets
{{Python 3 par l'exemple}}
|wikt=turtle
{{w|Turtle}} est un module graphique.
|w=Turtle}}
{{feuille volante|[[Programmation Python]] ou [[Apprendre à programmer avec Python]]}}
 
'''Turtle''' est un module graphique du [[programmation|langage de programmation]] [[Apprendre_à_programmer_avec_Python|Python]]. Il est inspiré de la [[programmation Logo]] et permet de déplacer une tortue sur l’écran.
=== Tracer une spirale quelconque ===
 
== Fonctions disponibles ==
<source lang="python">
from turtle import *
angle = 5
distance = 10
compteur = 0
 
=== Fonctions principales ===
while compteur <= 30:
Pour utiliser une fonction il faut inscrire son nom et lui donner une valeur dans les parenthèses.
forward(distance)
 
left(angle)
Les principales fonctions mises à votre disposition dans le module ''turtle'' sont les suivantes :
compteur += 1
 
angle += 2
* <code>reset()</code>
'''-> Efface l’écran, recentre la tortue et remet les variables à zéro'''
 
 
* <code>forward(distance)</code>
'''-> Avance d’une distance donnée'''
 
- Type de donnée : pixel
 
 
* <code>backward(distance)</code>
'''-> Recule d’une distance donnée '''
 
- Type de donnée : pixel
 
 
* <code>left(angle)</code>
'''-> Pivote vers la gauche'''
 
- Type de donnée : angle
 
 
* <code>right(angle)</code>
'''-> Pivote vers la droite'''
 
- Type de donnée : angle
 
 
* <code>up()</code>
'''-> Relève le crayon (pour pouvoir avancer sans dessiner)'''
 
 
* <code>down()</code>
'''-> Abaisse le crayon (pour recommencer à dessiner)'''
 
 
* <code>goto(x, y)</code>
'''-> Va à l’endroit de coordonnées (x, y)'''
 
- Type de donnée : pixel
 
/!\ Ne pas oublier d'utiliser la fonction up() avant d'utiliser goto() car sinon il tracera le parcours effectué
 
=== Autres fonctions ===
 
* <code>color(couleur)</code>
'''-> Détermine la couleur du tracé (noir par défaut)'''
 
- Type de donnée : chaîne de caractère
 
- Couleurs proposées :
 
----> "blue" => Bleu
 
----> "red" => Rouge
 
----> "green" => Vert
 
----> "yellow" => Jaune
 
----> "brown" => Marron
 
----> "black" => Noir
 
----> "white" => Blanc
 
----> "pink" => Rose
 
----> "orange" => Orange
 
----> "purple" => Violet
 
----> "grey" => Gris
 
 
* <code>width(épaisseur)</code>
'''-> Choisit l’épaisseur du tracé'''
 
- Type de donnée : pixel
 
 
* <code>speed(vitesse)</code>
'''-> Choisit la vitesse à laquelle se déplace le curseur'''
 
- Type de donnée : chaîne de caractère
 
- Vitesses proposées :
 
----> "slowest" => Le plus lent
 
----> "slow" => Lent
 
----> "normal" => Normal
 
----> "fast" => Rapide
 
----> "fastest" => Le plus rapide
 
 
* <code>circle(rayon, angle)</code>
'''-> Trace un cercle de rayon donné. L’argument facultatif ''angle'' indique l’angle de l’arc de cercle (par défaut 360, soit un cercle complet)'''
 
- Type de donnée :
 
° rayon : pixel
 
° angle : angle
 
 
* <code>title(titre)</code>
'''-> Donne un titre à la fenêtre (par défaut le titre est Turtle Graphics)'''
 
- Type de donnée : chaîne de caractère
 
 
* <code>write(texte)</code>
'''-> Écrit du texte'''
 
- Type de donnée : chaîne de caractère
 
 
* <code>fill(1)</code>
'''-> Remplit un contour fermé à l’aide de la couleur sélectionnée'''
 
== Détails des fonctions ==
 
=== color() ===
La couleur peut être :
* une couleur prédéfinie précisé entre apostrophes droites (exemples : 'red', 'yellow', 'green', 'blue', 'brown', 'violet', 'purple', etc.)
* une [[w:Rouge vert bleu|couleur RVB]] avec trois variables r, v, et b comprises entre 0 et 1 (exemple : 1,0,0 pour le rouge)
 
=== Fill ===
 
Le remplissage peut se faire de deux manières. Par exemple pour remplir un carré :
 
{|
|
<pre>
begin_fill()
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
end_fill()
</pre>
|
<pre>
fill(1)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
fill(0)
</pre>
|}
 
== Exemples ==
* [[Python 3 par l'exemple/Turtle]]
 
== Compléments ==
* Le module '''turtle''' s'appuie sur le module '''tkinter''' ('''Tkinter''' pour les versions de python antérieures à 3), ça permet d'en utiliser les fonctionnalités. Par exemple pour enregistrer sa production au format postscript :
 
<source lang=python>
import turtle
 
#......
#.......
 
turtle.getcanvas().postscript(file="monoeuvre.eps")
</source>
 
Mais aussi de manière plus simple:
 
* Le module '''turtle''' permet de manipuler plusieurs tortues.
<source lang="python">
 
from turtle import *
<source lang=python>
speed("fastest") #Pour l'aider a aller plus vite
fred = turtle.Turtle()
rayon = 1 #Le premier rayon par défaut
martha = turtle.Turtle()
rayonSpiral = 100
 
while(rayon < rayonSpiral):
fred.forward(100)
circle(rayon, 180)
martha.left(45)
rayon += 2 #écartement entre 2 demi-cercle de la spirale
</source>
 
=== Tracer une lanterne ===
<source lang="python">
from turtle import *
import math
 
Si les méthodes associées aux tortues sont utilisées sans référence à une tortue particulière, elles s'appliquent à une tortue "anonyme" qui est automatiquement créée si nécessaire.
def lanterne(l = 100):
left(90)
forward(l)
right(90)
forward(l)
right(90)
forward(l)
right(90)
forward(l)
right(135)
forward(l * math.sqrt(2))
left(90)
fillcolor("red")
fill(True)
forward(l * math.sqrt(2) / 2)
left(90)
forward(l * math.sqrt(2) / 2)
fill(False)
left(90)
forward(l * math.sqrt(2))
right(45)
 
Si aucune fenêtre d'affichage n'existe et qu'on agit sur une tortue, une fenêtre est automatiquement créée et affichée.
lanterne(l = 100)
 
Ces automatismes peuvent paraître pratiques mais peuvent aussi être source de confusion. Il vaut mieux les expliciter (subjectif).
ht()
 
exitonclick()
<source lang=python>
scene = turtle.Screen()
 
scene.setup(width=0.5, height=1.0, startx=-1, starty=0)
# width vraie dimension si entier, proportion de l'écran si décimal
# startx entier, position par rapport à la gauche de l'écran si positif, par rapport à la droite si négatif
</source>
 
[[Catégorie:Python]]