1. Dessiner

Dans ce chapitre, nous allons explorer la programmation par le dessin. Dans ce contexte, un programme est une séquence d’instructions permettant de générer un image.
Nous allons voir que:

  • l’expression from turtle import * met à disposition les fonctions de dessin,

  • les instructions forward(), backward() permettent de tracer une ligne,

  • les instructions left(), right() permettent de changer de direction.

Question

Un programme informatique est




Tout programme n’est qu’une séquence (une suite ordrée) d’instructions.
Un algorithme par contre est la description générale des étapes de résolution d’un problème. Il peut être traduit en un programme informatique.

Le module turtle

Dans le langage de programmation Python, le module turtle (tortue en anglais) présente une façon sympathique pour faire des dessins.

On s’imagine une tortue qui se déplace sur un canevas et laisse une trace sur son passage.

Ci-dessous, vous trouvez notre premier programme de trois lignes:

  • dans la première ligne, nous importons toutes (*) les fonctions du module turtle,

  • avec shape('turtle'), nous affichons une tortue (au lieu de la flèche),

  • avec forward(150), nous faisons avancer la tortue de 150 pixels.

Exercice

Ajoutez d’autres instructions telles que backward(), left() et right() pour faire un dessin.

Question

En Python, turtle est




Le module turtle fait partie de la distribution standard de Python. Nous le trouvons donc inclus de base avec Python sur toutes les plateformes.

La tortue peut se déplacer et dessiner une trace avec les 4 fonctions suivantes:

  • forward(d) pour avancer d’une distance d (en pixels)

  • backward(d) pour reculer

  • left(a) pour tourner à gauche d’un angle a (en degrés)

  • right(a) pour tourner à droite

Le canevas

Au départ, la tortue se trouve au centre d’une zone rectangulaire appelée canevas.
Ce rectangle a les propriétés suivantes :

  • l’origine (0, 0) se trouve au centre,

  • l’axe horizontal x, s’étend de -300 à +300 (à droite),

  • l’axe vertical y, s’étend de -200 à +200 (en haut).

Exercice

Ajoutez une instruction dans le code ci-dessous pour mener la tortue tout en bas du canevas. Ensuite, ajoutez une diagonale.

Question

La largeur de la zone de dessin de la tortue est de




Une séquence

Un programme est une séquence d’instructions. Le bloc de 8 instructions ci-dessous indique comment dessiner un carré. La tortue doit avancer, tourner, avancer, tourner, etc.

Exercice

Modifiez ce code pour en faire un rectangle, au lieu d’un carré.

Question

Une séquence d’instructions d’un bloc est exécutée




Épaisseur de ligne

La fonction width(d) (épaisseur en anglais) permet de définir l’épaisseur de la ligne.

Exercice

Voici un triangle où chaque côté a une épaisseur différente.
Explorez différentes épaisseurs de ligne.

Couleurs

La fonction color(c) permet de définir la couleur de ligne c. Entre les parenthèses de la fonction, vous devez écrire le nom d’une couleur en anglais, entouré d’apostrophes — par exemple color('red') pour dessiner une ligne rouge.

La fonction dot(d, c) dessine un cercle de diamètre d et de couleur c. En mettant un diamètre très grand, on peut l’utiliser pour mettre une couleur de fond.

Voici un triangle avec 3 segments de couleurs différentes sur un fond jaune.

Maison avec toit

Nous dessinons une maison et marquons le toit par une ligne plus épaisse.

Exercice

Doublez l’épaisseur du toit. Ensuite, doublez la hauteur de la maison.

Raquette de ping-pong

L’épaisseur de ligne est très utile dans le dessin.

Exercice

Transformez la raquette de ping-pong en haltères de musculation.

Lunettes de soleil

Voici encore un exemple où, avec un simple changement d’épaisseur, vous obtenez un effet très intéressant.

Commentaire

Le symbole # indique un commentaire. Sur Mac, vous pouvez l’insérer avec opt+3 ou alt+3. Un commentaire permet d’ajouter une explication pour le lecteur humain. Il n’a aucune influence sur le programme. Python l’ignore tout simplement.

Exercice

Ajoutez un commentaire pour chaque ligne du programme suivant.

L’exercice précédent servait à expliciter pour un débutant en programmation la signification des commandes écrites en anglais.
Normalement, on ne fait pas ça, car un programmeur est censé connaitre la signification des commandes.

Les commentaires servent à expliquer la signification d’une partie du programme.

Équivalence

La tortue possède 4 fonctions de déplacement, mais à strictement parler, on pourrait s’en sortir avec seulement deux fonctions, forward() et left(), car:

  • backward(d) est équivalent à forward(-d)

  • right(a) est équivalent à left(-a)

Dans le programme ci-dessous, les 4 lignes du deuxième bloc sont équivalentes aux 4 instructions du premier bloc et donnent un résultat identique.

Question

L’expression left(90) est équivalent à




Exercice récapitulatif

Exercice

Dessinez une chaise en faisant varier l’épaisseur du trait (les pieds sont plus fins que le reste).
Le plus simple est de la dessiner de profil, mais si vous avez l’âme courageuse, vous pouvez tenter de la faire sous un autre angle !

Et à part le dessin ?

Python ne sert évidemment pas qu’à faire du dessin, c’est juste une façon d’apprendre à l’utiliser.
L’instruction la plus couramment utilisée est probablement print() (“imprime” en français) qui permet d’afficher du texte.

Exercice

Voici un exemple affichant “Hello world !”.
Modifiez le texte à afficher. Ensuite, ajoutez d’autres commandes print pour écrire du texte sur plusieurs lignes.