PYTHON
DESSINER AVEC TURTLE

Introduction

La bibliothèque Turtle, très connue, permet de réaliser des dessins. Turtle signifie tortue en français. Vous trouverez une documentation complète en cliquant sur le lien : https://docs.python.org/fr/3/library/turtle.html

Les figures à créer se base sur la répétition de polygones en modifiant :

Expérimenter

Dessiner en coordonnées absolues et cartésiennes

MéthodeDescription
up()Lève le stylo
down()Pose le stylo
goto(10,20)Va au point de coordonnées (10,20)
hideturtle()Cache le curseur (facultatif)

Des lignes

import turtle as tu

tu.color('#228855')
tu.pensize(3)

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

tu.hideturtle()
tu.done()

Une surface

import turtle as tu

tu.color('#228855')
tu.begin_fill()

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

tu.hideturtle()
tu.end_fill()
tu.done()

Une répétition linéaire

import turtle as tu

def carre(x,y):
  cote=40
  tu.color('#228855')
  tu.begin_fill()
  tu.up()
  tu.goto(x,y)
  tu.down()
  tu.goto(x,y+cote)
  tu.goto(x+cote,y+cote)
  tu.goto(x+cote,y)
  tu.goto(x,y)
  tu.up()
  tu.end_fill()

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

tu.hideturtle()
tu.done()

Dessiner en coordonnées relatives et polaires

MéthodeDescription
left(30)Tourne à gauche de 30°
right(40)Tourne à droite de 40°
forward(200)Avance de 200 pixels

Des lignes

import turtle as tu

tu.color('#ee4411')
tu.pensize(3)

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

tu.hideturtle()
tu.done()

Une surface

import turtle as tu

tu.color('#ee4411')
tu.begin_fill()
tu.up()
tu.goto(0,0)
tu.down()
tu.left(10)
tu.forward(120)
tu.right(20)
tu.forward(120)
tu.right(160)
tu.forward(120)
tu.right(20)
tu.forward(120)
tu.right(170)
tu.up()
tu.end_fill()

tu.hideturtle()
tu.done()

Une répétition circulaire

import turtle as tu

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

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

tu.hideturtle()
tu.done()

Programmer

Figures à base de losanges

1. Compléter la fonction losange() :

import turtle as tu

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

tu.hideturtle()
tu.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.

Figures à base de carrés

1. Compléter la fonction carre() :

import turtle as tu

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

#tu.hideturtle()
tu.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.

import turtle as tu

def carre(c,a):
  ...
  
from math import sin, cos, pi
c=250
a=45
b=0
d=sin(a*pi/180)+cos(a*pi/180)
for i in range(20):
  carre(c,b)
  b=b+a
  c=c/d

tu.hideturtle()
tu.done()

Figures libres

A vous de jouer, montrez ce dont vous êtes capable! Par exemple, la figure ci-dessous se base sur des triangles.