Il s'agit ici de réaliser des dessins avec 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 :
Méthode | Paramètres | Description |
---|---|---|
Turtle |
aucun | Crée et renvoie un objet Turtle |
forward() |
distance |
Déplace la tortue vers l’avant de distance |
backward() |
distance |
Déplace la tortue vers l’arrière de distance |
right() |
angle |
Tourne la tortue dans le sens des aiguilles d’une montre |
left() |
angle |
Tourne la tortue dans le sens contraire des aiguilles d’une montre |
penup() |
aucun | Lève le crayon de la tortue |
pendown() |
aucun | Abaisse le crayon de la tortue |
up() |
aucun | Lève le crayon de la tortue |
down() |
aucun | Abaisse le crayon de la tortue |
color() |
nom de couleur | Change la couleur de la tortue |
fillcolor() |
nom de couleur | Change la couleur de remplissage d’un polygone |
heading() |
aucun | Renvoie la direction courante |
position() |
aucun | Renvioe la position de la tortue |
goto() |
x, y |
Déplace la tortue vers la position x, y |
begin_fill() |
aucun | Enregistre le premier point d’un polygone a remplir |
end_fill() |
aucun | Ferme le polygone et le remplit de la couleur courante |
pensize() |
taille | Définit la largeur du trait en pixels |
bgcolor() |
aucun | définit la couleur d'arrière plan |
speed(0) |
valeur | Maximise la rapidité du tracé |
dot() |
aucun | Dessine un point à la position courante |
stamp() |
aucun | Dessine la forme de la tortue sur l’écran (stamp = tampon) |
shape() |
shapename |
Change la forme de la tortue (arrow , classic , turtle , circle ) |
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()
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()
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()
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()
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()
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()
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.
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()
Il est possible de construire assez simplement des fractales avec la tortue :
Ces méthodes utilisent généralement des fonctions récursives qui ne seront abordées qu’en terminale.
from turtle import *
speed(0)
def koch(l,n):
'''Fractacle de Koch'''
if n<=0:
forward(l)
else:
koch(l/3,n-1)
left(60)
koch(l/3,n-1)
right(120)
koch(l/3,n-1)
left(60)
koch(l/3,n-1)
def flocon(l,n):
'''Flocon de Koch'''
koch(l,n)
right(120)
koch(l,n)
right(120)
koch(l,n)
flocon(200, 3)
Voir ici
A vous de jouer, montrez ce dont vous êtes capable en créant vos propres dessins! Vous trouverez une documentation complète en cliquant sur le lien : https://docs.python.org/fr/3/library/turtle.html
imaginez un projet graphique utilisant la bibliothèque turtle ainsi qu"au moins une structure de données parmi les listes, les dictionnaires ou csv
Il pourrait être intéressant d'avoir une interaction avec l'utilisateur😉, de créer des formes aléatoire, en insérant des images ...
Voici un bon lien pour approfondir
Il est possible d'utiliser plusieurs tortue , il suffit de créer des objets ( mais ça c'est en term😊)
un indice:
lievre=Turtle()
lievre.forward(1000)
Si vous n'avez pas d'idée, voici un projet clé en main:
Ces projets sont des tutoriels à suivre et qui peuvent vous inspirer.
Pas à pas : suivre l’ISS et dessiner sa position.
Vous n’avez qu’à suivre les instructions ici