Python: Tracer des formes géométriques cercle, carré et triangle

Table des matières

Introduction

  1. Turtle : Le module dessin de Python
  2. Dessiner un cercle avec turtle

2.1. Les cercles tangents

2.2. Les cercles spiraux

2.3. Les cercles concentriques

  1. Dessiner des carrés et rectangles avec le module turtle

3.1. Utiliser des boucles pour dessiner un carré avec turtle

3.2. Dessiner des rectangles avec turtle

3.3. Utiliser des boucles pour dessiner un rectangle avec turtle

  1. Dessiner des triangles avec turtle
  2. Exercices

5.1. Exercice 1

5.2. Exercice 2

5.3. Exercice 3

  1. Solutions des exercices

6.1. Exercice 1

6.2. Exercice 2

6.3. Exercice 3

Conclusion

Introduction

Bonjour et bienvenue dans un nouveau tutoriel Python, aujourd’hui, nous allons apprendre à dessiner des formes telles que des cercles, des carrés ainsi que des triangles en Python. Le module turtle est celui qu’on utilisera pour réaliser cette tâche .

Nous allons présenter en détail la bibliothèque Turtle, ses caractéristiques, ainsi que les différentes fonctionnalités qu’elle offre .

Ce tutoriel ne nécessite aucun prérequis à part la connaissance des caractéristiques mathématiques des formes que nous allons présenter. Place à vos cours de géométrie !

1. Turtle : Le module dessin de Python

Turtle est un module Python qui a le rôle d’un tableau de dessin, en effet, le principe est simple. Cette librairie a un ensemble de fonctionnalités qui permettent de commander une tortue afin qu’elle dessine la forme qu’on souhaite. Par exemple, turtle.forward() et turtle.right() permettent à la tortue de se déplacer.

Plusieurs méthodes sont utilisées pour dessiner dans le module turtle. Parmi celles-ci, on identifie :

  • forward(x) : déplace le stylo vers l’avant par x unité.
  • backward(x) : déplace le stylo vers l’arrière par x unité.
  • right(x) : rotation du stylo dans le sens horaire d’un angle x.
  • left(x) : rotation du  stylo dans le sens antihoraire d’un angle x.
  • penup() : arrêter la tortue  du dessin .
  • pendown() : la tortue commence à dessiner .

2. Dessiner un cercle avec turtle 

Dans cette première section du tutoriel, nous allons découvrir comment dessiner un cercle en Python et comment modifier les différentes caractéristiques de ce dernier.

Exemple :

Afin de concrétiser la tâche, nous allons commencer par un exemple simple et basique. Maintenant, pour dessiner un cercle à l’aide de turtle , nous utiliserons une fonction prédéfinie dans « turtle » .


Syntaxe :

# Programme Python pour
# dessiner un cercle
import turtle
# Initialisation de turtle
turtle = turtle.Turtle()
rayon = 20
turtle.circle(rayon)

On commence d’abord par importer le module turtle, ensuite on initie une instance de ce dernier , ici on nommera l’instance turtle. Par la suite, on choisit le rayon du cercle qu’on veut dessiner puis on fait appel à la fonction cercle() qui dessine un cercle du rayon défini en considérant la position de la tortue comme centre .

Résultat de l’exécution :

2.1. Les cercles tangents 

Une tangente est une droite qui touche la circonférence d’un cercle de l’extérieur sous condition que l’extension de cette droite ne produit pas une intersection avec le cercle. Les cercles tangents sont un groupe de cercles qui ont une tangente commune .

Exemple 

Dans cet exemple, nous allons implémenter un programme qui dessine des cercles tangents grâce à une boucle.

Syntaxe 

# Programme Python pour dessiner
# les cercles tangents
# Import du module turtle
import turtle
#Initialisation de l’instance turtle
tur = turtle.Turtle()
# rayon du plus petit cercle
rayon = 10
# nombre des cercles
nb = 10
# boucle pour dessiner les cercles tangents
for i in range(1, nb + 1, 1):
tur.circle(rayon*i)

Résultat de l’exécution 

2.2. Les cercles spiraux

La spirale est une forme similaire à un cercle normal, la différence est que le rayon de la spirale augmente après chaque incrémentation. 

Exemple :

Voici un programme qui dessine des cercles spiraux à l’aide d’une boucle for .

Syntaxe :

# Programme Python pour dessiner
# les cercles spiraux
# importer le module turtle
import turtle
tur = turtle.Turtle()
# prendre la taille du rayon initial
rayon = 10
# Boucle pour l’impression du cercle en spirale
for i in range(100):
tur.circle(rayon + i, 45)

On commence par importer le module turtle puis on initie une instance de turtle . Par la suite,  on définit notre rayon initial de taille 10. Finalement, on définit une boucle for pour l’impression des cercles en spirale , comme vous le constatez le rayon du cercle augmente après chaque itération.

Le deuxième argument de la méthode circle() aide à dessiner un arc, il contrôle ainsi la mesure de l’angle central. Ici, nous avons passé 45 comme argument pour l’angle central. Cette commande est répétée 100 fois pour obtenir des cercles concentriques.

Résultat de l’exécution :

   

2.3. Les cercles concentriques

Les cercles concentriques sont un ensemble de cercles qui ont le même centre et dont le rayon augmente proportionnellement à chaque itération.

Exemple :

Syntaxe :

import turtle
tur = turtle.Turtle()
# rayon du cercle
rayon = 10
# boucle pour dessiner les cercles cocentriques
for i in range(20):
tur.circle(rayon * i)
tur.up ()
trusty ((rayon* i)*(-1))
tur.down ()

Après avoir dessiné un cercle, nous avons pris le stylo de la tortue et réglé la coordonnée y du stylo de la tortue à  -1 fois rayon*i. Ensuite, nous avons remis le stylo sur la toile. On répète ce processus  50 fois pour obtenir des cercles concentriques.

Résultat de l’exécution :

3. Dessiner des carrés et rectangles avec le module turtle

Dans cette deuxième section du tutoriel, nous allons découvrir comment dessiner des carrés et des rectangles avec le module turtle.

Deux fonctions qui nous sont utiles pour dessiner le carré et le rectangle sont- forward() et left(). Avant de dessiner une de ces formes, nous devons en connaître les propriétés de base. Commençons par un carré. Tous les côtés d’un carré sont égaux et l’angle entre deux côtés adjacents est de 90°. Ainsi, les côtés opposés sont parallèles les uns aux autres.

Maintenant que nous connaissons les caractéristiques principales du carré nous pouvons procéder à son dessin :

Exemple :

Voici un exemple basique du dessin d’un carré grâce aux fonctions forward() et left() de turtle.

Syntaxe :

#Programme pour dessiner un carré avec turtle
import turtle
tur = turtle.Turtle()
tur.forward(100) #Forward turtle de 100 unités
tur.left(90) #rotation de turtle de 90 degrés
tur.forward(100)
tur.left(90)
tur.forward(100)
tur.left(90)
tur.forward(100)
tur.left(90)

Nous commençons par importer le module turtle. Ensuite, nous avons créé une instance de tableau de dessin turtle et l’avions attribué à un objet nommé tur .

Puis , nous avons déplacé la tortue vers l’avant de 100 unités vu que le coté d’un carré est de 100 . Ensuite, nous avons fait une rotation de 90 degré car l’angle entre les côtés adjacents est de 90 degrés . Ces deux instructions permettent de dessiner un coté du carré . Les mêmes étapes sont répétés 3 fois jusqu’à l’obtention d’un carré final .

Résultat de l’exécution :

3.1. Utiliser des boucles pour dessiner un carré avec turtle

Comme vous pouvez le constater dans le dernier exemple, nous avons utilisé les mêmes fonctions forward(100) et left(90) quatre fois. Il est donc préférable de faire une boucle à la place de réécrire la même instruction plusieurs fois.

Exemple :

On utilisera le même exemple que le dernier, la seule différence est le recours à une boucle dans cet exemple.

Syntaxe :

# Utilisation d’une boucle pour dessiner un carré avec turtle
# On importe le module turtle
import turtle
# Initialisation du dessinateur
tur = turtle.Turtle()
# Début de la boucle
for i in range(4): # la boucle va tourner 4 fois
tur.forward(100) # Avance le dessinateur de 100 pas en avant
tur.left(90) # Rotation du dessinateur de 90 degrés

On commence par importer le module turtle et initier le dessinateur. Ensuite, on déclare une boucle qui va tourner 4 fois pour dessiner notre carré.

Résultat de l’exécution :

Le résultat de l’exécution est similaire à celui du dernier exemple :

3.2. Dessiner des rectangles avec turtle 

Un rectangle est caractérisé par ses  côtés opposés égaux et l’angle entre deux cotés adjacents d’un rectangle est de 90 degrés. En connaissant ces propriétés, nous pouvons dessiner le rectangle grâce aux fonctions du module turtle .

Exemple :

Supposons que la longueur du rectangle est de 150 unités et sa largeur est de 80 unités. Exécutez le code ci-dessous pour obtenir le rectangle souhaité.

Syntaxe :

#Programme pour dessiner un rectangle avec le module turtle
import turtle
tur = turtle.Turtle()
tur.forward(150) # Déplace la tortue de 150 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés
tur.forward(80) # Déplace la tortue de 80 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés
tur.forward(150) # Déplace la tortue de 150 unités vers l'avant
tur.left (90) # rotation de la tortue de 90 degrés
tur.forward(80) # Déplace la tortue de 80 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés

Nous avons déplacé la tortue vers l’avant de 150 unités vu que la longueur d’un rectangle est de 150 unités. Ensuite, nous avons tourné la tortue de 90° car l’angle entre les côtés adjacents est de 90°. Par ailleurs, nous avons envoyé la tortue de 80 unités et l’avons tournée de 90°. Cela complète le deuxième côté du rectangle. Les mêmes énoncés sont répétés une fois de plus pour dessiner les deux côtés restants.

Résultat de l’exécution :

3.3. Utiliser des boucles pour dessiner un rectangle avec turtle

En se basant sur la méthode utilisée pour dessiner un carré grâce à une boucle, nous allons faire la même chose pour le rectangle. Dans ce cas, nous placerons forward(150), left(90), forward(80) et left(90) en boucle et l’exécuterons 2 fois.

Exemple :

Syntaxe :

#Programme pour dessiner un rectangle avec le module turtle
import turtle
tur = turtle.Turtle()
tur.forward(150) # Déplace la tortue de 150 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés
tur.forward(80) # Déplace la tortue de 80 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés
tur.forward(150) # Déplace la tortue de 150 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés
tur.forward(80) # Déplace la tortue de 80 unités vers l'avant
tur.left(90) # rotation de la tortue de 90 degrés

Résulat de l’exécution :

4. Dessiner des triangles avec turtle

Dans cette dernière section du tutoriel, nous allons découvrir comment dessiner des triangles grâce aux différentes fonctions du module turtle .

Nous allons commencer par définir les fonctions que nous allons utiliser dans cette section :

  • Turtle() : méthode pour créer un objet turtle
  • Onscreenclick() : Cette fonction turtle qui envoie la coordonnée courante à la fonction qui l’utilise pour former un triangle, 1 est pour le clic gauche et 3 est pour le clic droit.
  • Speed() : augmente ou diminue la vitesse du dessinateur.
  • penup () : Cette fonction est intégrée dans la bibliothèque tortue pour tracer la ligne.
  • pendown () : Cette fonction est intégrée dans la bibliothèque de turtle pour dessiner dans la ligne.
  • forward () : permet de faire avancer le dessinateur vers l’avant en fonction du pixel donnés en entrée.
  • left() : tourne la tortue vers la gauche en fonction de l’angle de rotation donné en entrée.

Exemple :

Voici un exemple simple du dessin d’un triangle équilatéral .

Syntaxe :

# On importe le module turtle
import turtle
# Initiation du dessinateur
tur = turtle.Turtle ()
tur.forward (100) # draw base
tur.left (120)
tur.forward (100)
tur.left (120)
tur.forward (100)
tur.done ()

Résultat de l’exécution :

Exemple :

Dans ce deuxième exemple, on veut dessiner un triangle avec un angle droit.

Syntaxe :

import turtle
tur = turtle.Turtle()
tur.forward(100) # base du dessin
tur.left(90)
tur.forward(100)
tur.left(135)
tur.forward(142)
turtle.done()

Résultat de l’exécution :

Exemple :

Dessin d’une forme d’étoile à l’aide de deux triangles isocèles identiques.

Syntaxe :

import turtle
tur = turtle.Turtle ()
# premier triangle de l'étoile
tur.forward(100) # draw base
tur.left(120)
tur.forward(100)
tur.left(120)
tur.forward(100)
tur.penup ()
tur.right (150)
tur.forward (50)
# deuxième triangle de l'étoile
tur.pendown()
tur.right(90)
tur.forward(100)
tur.right(120)
tur.forward(100)
tur.right(120)
tur.forward(100)
turtle.done()

Résultat de l’exécution :

Exemple :

Dans ce dernier exemple, on va implémenter une fonction triangle () qui va permettre de dessiner un triangle avec les cordonnées dès que l’utilisateur clique sur le dessinateur .

Syntaxe :

import turtle
# méthode screen() pour l’écran
aff=turtle.Screen()
# Création de l’objet tur
tur=turtle.Turtle()
def triangle(x,y):
# dessiner la ligne à l’intérieur
tur.penup()
# déplacer le curseur à la position des cordonnées x et y
tur.goto(x,y)
tur.pendown()
for i in range(3):
# déplacer le curseur de 100 unités à l’avant
tur.forward(100)
# rotation du curseur de 120 degrés à gauche
tur.left(120)
# Une autres fois , déplacer le curseur de 100 unités
tur.forward(100)
# fonction spéciale intégrée pour envoyer la position courante du
curseur sur le triangle
turtle.onscreenclick(triangle,1)
turtle.listen()
turtle.done()

Résultat de l’exécution :

5. Exercices

5.1. Exercice 1

Écrivez un programme simple qui permet de dessiner un cercle normal de rayon 30.

5.2. Exercice 2 

Dessinez des cercles spiraux dont le rayon initial est 20 et l’angle central est défini à 45 .

5.3. Exercice 3

Écrivez un programme qui dessine un carré de côté 100 .

6. Solutions des exercices 

6.1. Exercice 1

# Programme Python pour
# dessiner un cercle
import turtle
# Initialisation de turtle
turtle = turtle.Turtle()
rayon = 30
turtle.circle(rayon)

6.2. Exercice 2

# Programme Python pour dessiner
# les cercles spiraux
# importer le module turtle
import turtle
tur = turtle.Turtle()
# prendre la taille du rayon initial
rayon = 20
# Boucle pour l’impression du cercle en spirale
for i in range(100):
tur.circle(rayon + i, 45)

6.3. Exercice 3

Sans boucle :

#Program pour dessiner un carré avec turtle
import turtle
turtle = turtle.Turtle()
turtle.forward(100) #Forward turtle de 100 unités
turtlet.left(90) #rotation de turtle de 90 degrés
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)

Conclusion 

Nous sommes arrivés à la fin de ce tutoriel, maintenant vous savez comment dessiner des formes basiques grâce au module Turtle de Python. Vous pouvez à présent passer à des formes plus complexes comme les polygones par exemple.  Nous vous conseillons aussi de découvrir toutes les fonctionnalités des dessins turtle comme la couleur du dessin, le type des traits …  Nous vous souhaitons bon courage et à un prochain tutoriel !

Article publié le 17 Décembre 2020par Mouna HAMIM