PYTHON
DESSINER AVEC TURTLE

Objectif

Il s'agit ici de réaliser des dessins avec la populaire la bibliothèque Turtle (tortue en français), de créer des figures basées sur la répétition de polygones en modifiant :

Quelques commandes :

FonctionDescription
up()Lève le stylo
down()Pose le stylo
goto(10,20)Va au point de coordonnées (10,20)
left(30)Tourne dans le sens trigonométrique de 30°
right(40)Tourne dans le sens horaire de 40°
forward(200)Avance de 200 pixels
color('#228855')Définit une couleur
pensize(3)Définit la largeur du trait en pixels
begin_fill()Remplit la forme dessinée
end_fill()Termine le remplissage
hideturtle()Cache le curseur (facultatif)
bgcolor('#000000')Met le fond en noir
speed(0)Maximise la rapidité du tracé

Comprendre

Dessiner en coordonnées absolues et cartésiennes

Des lignes

from turtle import *

color('#228855')
pensize(3)

up()
goto(0,0)
down()
goto(0,100)
goto(100,100)
goto(100,0)
goto(0,0)
up()

hideturtle()
done()

Une surface

from turtle import *

color('#228855')
begin_fill()

up()
goto(0,0)
down()
goto(0,100)
goto(100,100)
goto(100,0)
goto(0,0)
up()

end_fill()
hideturtle()
done()

Une répétition linéaire

from turtle import *

def carre(x,y):
  cote=40
  color('#228855')
  pensize(3)
  up()
  goto(x,y)
  down()
  goto(x,y+cote)
  goto(x+cote,y+cote)
  goto(x+cote,y)
  goto(x,y)
  up()

for i in range(5):
  for j in range(3):
    carre(i*50,j*50)

hideturtle()
done()

Dessiner en coordonnées relatives et polaires

Des lignes

from turtle import *

color('#ee4411')
pensize(3)

up()
goto(0,0)
down()
left(10)
forward(100)
right(20)
forward(100)
right(160)
forward(100)
right(20)
forward(100)
right(170)
up()

hideturtle()
done()

Une surface

from turtle import *

color('#ee4411')
begin_fill()

up()
goto(0,0)
down()
left(10)
forward(120)
right(20)
forward(120)
right(160)
forward(120)
right(20)
forward(120)
right(170)
up()

end_fill()
hideturtle()
done()

Une répétition circulaire

from turtle import *

def losange(a):
  color('#ee4411')
  pensize(3)
  up()
  goto(0,0)
  down()
  left(10+a)
  forward(80)
  right(20)
  forward(80)
  right(160)
  forward(80)
  right(20)
  forward(80)
  right(170+a)
  up()

for i in range(7):
  losange(i*30)

hideturtle()
done()

Pratiquer

Figures à base de losanges

1. Compléter la fonction losange() :

from turtle import *

def losange(l,h):
  ...
  
losange(200,100)

hideturtle()
done()

2. Créer des structures répétitives appelant la fonction losange() plusieurs fois pour obtenir des figures similaires à celles présentées ci-dessous. Dans ces exemples, h varie de 20 à 400 avec un pas de 40.

Figures à base de carrés

1. Compléter la fonction carre() :

from turtle import *

def carre(c,a):
  ...
  
carre(150,10)

#hideturtle()
done()

2. Créer des structures répétitives appelant la fonction carre() plusieurs fois pour obtenir des figures similaires à celles présentées ci-dessous. Dans ces exemples, a varie de 0 à 280 avec un pas à définir.

from turtle import *

def carre(c,a):
  ...
  
c=15
for a in range(0,280, ... ):
  carre(c,a)
  c = ...

hideturtle()
done()

Approfondir

A vous de jouer, montrez ce dont vous êtes capable en créant vos propres dessins! Par exemple, la figure ci-dessous se base sur des triangles. Vous trouverez une documentation complète en cliquant sur le lien : https://docs.python.org/fr/3/library/turtle.html