1. Dessiner - forward()

Dans ce chapitre, nous explorons ce que c’est un programme et nous prenons l’exemple du dessin. Ici, un programme est une séquence d’instructions pour dessiner une image.

Allons de l’avant (forward) avec la programmation. 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




Un algorithme est la description générale des étapes de résolution d’un problème. Il peut être traduit en un programme informatique.

1.1. Le module turtle

Dans le langage de programmation Python, le module turtle (signifiant tortue en anglais) présente une façon sympathique pour faire des dessins. C’est pour cela que nous commençons notre aventure de programmation avec cet animal qui avance tout doucement à son propre rythme.

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

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 1

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 avec Python sur toutes les plateformes.

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

  • 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

1.2. 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 2

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




1.3. 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 3

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




1.4. Épaisseur de ligne

La fonction width(d) (épaisseur en anglais) permet de définir l’épaisseur de la ligne. Voici un triangle où chaque côté a une épaisseur différente.

Exercice 4

Explorez différentes épaisseurs de ligne.

1.5. Maison avec toit

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

Exercice 5

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

1.6. Raquette de ping-pong

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

Exercice 6

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

1.7. Lunettes de soleil

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

Exercice 7

Ajoutez la première branche qui manque.

1.8. Commentaire

Le symbole # indique un commentaire. Sur le 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 ignore tout simplement tout commentaire.

Exercice 8

Expliquez dans chaque ligne ce que fait l’instruction.

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 à expliciter la vraie signification d’une partie du programme.

Exercice 9

Expliquez cette fois ce que dessine chaque partie du programme (verre, pont, verre, charnière, branche).

1.9. É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.

Exercice 10

Expliquez avec un commentaire ce que font les 2 dernières lignes.

Question

L’expression left(90) est équivalent à




1.10. Éditeur

Jusqu’à maintenant, nous avons exécuté nos petits programmes ici dans cette page web. Malheureusement, ces programmes disparaissent quand nous rechargeons la page. Pour pouvoir les sauvegarder et programmer indépendamment de ce site web, nous avons besoin d’un éditeur de Python externe.

Nous vous proposons d’utiliser Thonny, qui est un logiciel libre, facile à installer, et un excellent éditeur pour débuter avec Python. Essayez de faire ceci :

  1. Ouvrez l’éditeur Thonny

  2. Écrivez le code pour dessiner une maison

  3. Sauvegardez le programme sous maison.py

  4. Exécutez le programme

../_images/thonny.png

Quand vous utilisez le module turtle avec Thonny, ajoutez toujours la fonction done() comme dernière ligne de code, pour que vous puissiez quitter le programme.

1.11. Exercices

  • Téléchargez un exercice.

  • Ouvrez-le dans un éditeur externe (tel que Thonny).

  • Mettez votre prénom, nom et classe.

  • Remplacez ... par votre code.

  • Déposez votre exercice sur Moodle (ou plateforme équivalente).

Rectangle

Dessinez un rectangle.

Triangle

Dessinez un triangle.

Hexagone

Dessinez un hexagone.

Chaise

Dessinez une chaise.

Table

Dessinez une table.

Lit

Dessinez un lit.

TP

Téléchargez le fichier ci-dessous et utilisez-le comme base de départ pour votre travail pratique.