SNT Python 2

Identification

Infoforall

8 - Dessiner avec Python


Turtle est un module pédagogique permettant de dessiner facilement des formes sous Python.

Une rose rouge
Une rose rouge

Vous allez l'utiliser aujourd'hui pour visualiser la notion de séquentialité.

IDE Python proposé : Thonny

Documents de cours : pdf ou odt.

1 - Premier exemple

Ce petit programme va permettre de tracer deux traits de couleurs et de tailles différentes.

1 2 3 4 5 6 7
from turtle import * # veut dire d'importer le module turtle entièrement crayon = Turtle() # veut dire de créer un crayon (notez le T majuscule) crayon.forward(50) # veut dire d’avancer de 50 pixels. crayon.left(90) # veut dire de tourner à droite de 90°. crayon.pencolor("red") # veut dire de dessiner en rouge (à partir de maintenant) crayon.forward(75) # veut dire d’avancer de 75 pixels.

Il suffit de le placer dans la zone Programme de Thonny ;

Thonny 1

Et voici le résultat après avoir appuyer sur la flèche verte. L'animation en moins.

Exemple 1
Ce programme dans Thonny

L'intérêt de Turtle ? Le fait qu'il ne trace pas en instantané. On voit apparaître le dessin au fur et à mesure de l'exécution séquentielle du programme.

Comprennez bien que chacune de ces lignes est importante.

2 - Formes basiques : rectangle, carré et triangle

Voyons maintenant un programme plus complexe permettant de tracer un rectangle.

01° Créer et lancer le programme ci-dessous. Pourquoi le premier trait n’est-il pas rouge? ?

1 2 3 4 5 6 7 8 9 10 11 12 13
from turtle import * crayon = Turtle() largeur = 50 hauteur = 100 crayon.forward(largeur) crayon.left(90) crayon.forward(hauteur) crayon.pencolor("red") crayon.left(90) crayon.forward(largeur) crayon.left(90) crayon.forward(hauteur)
Exemple 2
Visuel obtenu avec Turtle

02 - à faire valider° Modifier le programme pour tracer un carré.

Ensuite, modifier pour que chaque côté ai une couleur différente.

03 - à faire valider° Créer un programme qui dessine un triangle équilatéral :

  • On avance sur une distance correspondant au côté voulu
  • On tourne de 360°/3, soit 120°

04° Vous allez utiliser un court programme qui dessine un triangle isocèle : pour cela, il utilise une nouvelle fonction.

  • crayon.goto(0, 150)

    veut dire de placer le crayon aux coordonnées x=0 et y=150. Le (0,0) est le centre de l'écran. Les coordonnées (x,y) sont similaires au repère classique : x positif vers la droite et y positif vers le haut.

    Système d'axes xy de Turtle
    Système d'axes xy de Turtle

Les coordonnées des trois points du triangle isocèle sont :

  • x = 0, y = 0
  • x = 200, y = 0
  • x = 100, y = 50
1 2 3 4 5 6 7
import turtle as trt crayon = trt.Turtle() crayon.goto(0, 0) crayon.goto(200, 0) crayon.goto(100, 50) crayon.goto(0, 0)
Triangle isocèle
Triangle isocèle

3 - Fond coloré : couleur de remplissage

Jusqu'à présent, nous n'avons réussi qu'à changer la couleur du crayon et donc du contour des formes tracées.

Mais on peut également demander à Python de colorier la surface de la forme définie. C'est un peu plus compliqué et cela comporte 4 étapes :

  1. On doit d'abord définir la couleur voulue pour le remplissage (to fill en anglais veut dire remplir)
  2. On doit dire quel est le point de départ de la forme à remplir (to begin veut dire commencer)
  3. On dessine ensuite la forme
  4. On finit en précisant à Python quel est le point final de la forme (to end signifie finir)

05° Utilisez ce programme pour voir le résultat obtenu.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
from turtle import * crayon = Turtle() c = 100 # c pour côté du triangle r = 150 # r pour rayon du cercle crayon.forward(c) crayon.left(120) crayon.forward(c) crayon.left(120) crayon.forward(c) crayon.left(120) crayon.fillcolor("yellow") # (1) veut dire que la couleur de fond est jaune crayon.begin_fill() # (2) veut dire qu’à partir de là, on va definir une forme à remplir crayon.circle(r) # (3) veut dire de tracer un cerle de rayon 200 pixels (et d’angle 360°) crayon.end_fill() # (4) veut dire que c’est la fin et qu'on peut remplir
Soleil
Le Soleil ?

4 - Instructions complémentaires

Voici quelques instructions supplémentaires qui vous permettront de réaliser des dessins plus complexes :

  1. crayon.goto(0, 150)

    veut dire de placer le crayon aux coordonnées x=0 et y=150. Le (0,0) est le centre de l'écran. Les coordonnées (x,y) sont similaires au repère classique : x positif vers la droite et y positif vers le haut.

  2. crayon.setheading(45)
  3. veut dire d’orienter le crayon sur un angle de 45° absolu (0° la droite)

  4. crayon.penup()
  5. veut dire de lever le crayon (on arrête donc de dessiner en le déplacant).

  6. crayon.pendown()
  7. veut dire d’abaisser la pointe du stylo : on recommence à dessiner.

  8. crayon.circle(50,180)
  9. veut dire de tracer un arc de cerle de 50 pixels et d’angle 180° (1/2 cercle)

  10. crayon.circle(100)
  11. veut dire de tracer un cerle de rayon 100 pixels (et d’angle 360°)

  12. crayon.pensize(6)
  13. veut dire de tracer les traits avec une épaisseur de 6 pixels.

  14. crayon.write("Bonjour")
  15. veut dire d'écrire "Bonjour" à l'écran.

06 - question finale notée° Dessiner le plus beau dessin (une maison ?, les planètes ?) que vous voulez en utilisant les outils à disposition, dont ceux du complément.

Le dessin doit comporter :

  • Au moins un cercle
  • Au moins un carré ou un rectangle
  • Au moins un triangle
  • Différentes couleurs de traits
  • Différentes couleurs de fond
  • Au moins un goto() utile

5 - FAQ

Pas de question pour le moment

Activité publiée le 25 02 2021
Dernière modification : 13 01 2023
Auteur : ows. h.