0% ont trouvé ce document utile (0 vote)
382 vues4 pages

Scripts de dessin avec Python Turtle

Transféré par

Yasser El hattabi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
382 vues4 pages

Scripts de dessin avec Python Turtle

Transféré par

Yasser El hattabi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

informatique commune

Corrigé
Graphisme « tortue »

Exercice 1. Script pour dessiner un carré de côté 200 :

reset()
forward(200)
left(90)
forward(200)
left(90)
forward(200)
left(90)
forward(200)

Exercice 2. On définit la fonction suivante :

def carre(l):
forward(l)
left(90)
forward(l)
left(90)
forward(l)
left(90)
forward(l)
left(90)

Notez que le dernier left permet de repositionner l’orientation de la tortue telle qu’elle était avant le tracé du carré. Cette
fonction permet de réaliser le dessin demandé à l’aide du script suivant :

reset()
carre(50)
left(90)
carre(100)
left(90)
carre(150)
left(90)
carre(200)

Exercice 3. Le dessin demandé se réalise à l’aide du script :

reset()
for i in range(20, 220, 20):
carre(i)

Exercice 4. Le script qui suit réalise le dessin présenté figure 1.

reset()
speed(0)
for i in range(1, 501):
forward(i)
left(91)

http://info-llg.fr/ page 1
Figure 1 – Le résultat du script de l’exercice 4.

Exercice 5. On définit la fonction suivante, puis on réalise le script :


def polygone(n, l):
a = 360 / n
for _ in range(n): reset()
forward(l) for n in range(3, 8):
left(a) polygone(n, 100)

Exercice 6. Le dessin demandé se réalise à l’aide du script :

reset()
circle(150)
circle(150, extent=720, steps=5)

Exercice 7. On réalise un dégradé de couleur entre le bleu et le rouge en utilisant les composantes RGB :

reset()
bgcolor('black')
speed(0)
for i in range(72):
pencolor(i/71, 0, 1−i/71)
circle(100, extent=180)
left(90)
penup()
forward(200)
left(85)
pendown()

Exercice 8. On définit successivement les fonctions :


def sierp2(l): def sierp3(l):
sierp1(l/2) sierp2(l/2)
left(60) left(60)
forward(l/2) forward(l/2)
right(60) right(60)
sierp1(l/2) sierp2(l/2)
right(60) right(60)
def sierp1(l): forward(l/2) forward(l/2)
begin_fill() left(60) left(60)
polygone(3, l) sierp1(l/2) sierp2(l/2)
end_fill() backward(l/2) backward(l/2)

page 2
Exercice 9. La définition récursive demandée est la suivante :

def sierpinski(n, l):


if n == 1:
begin_fill()
polygone(3, l)
end_fill()
else:
sierpinski(n−1, l/2)
left(60)
forward(l/2)
right(60)
sierpinski(n−1, l/2)
right(60)
forward(l/2)
left(60)
sierpinski(n−1, l/2)
backward(l/2)

Le script suivant réalise alors le tracé de la 5e génération du triangle de Sierpiński :

reset()
speed(0)
sierpinski(5, 512)

Exercice 10. De même, on définit la fonction :

def bin_tree(n, l):


pensize(n)
if n == 1:
pencolor('green')
forward(l/3)
backward(l/3)
else:
pencolor('brown')
forward(l/3)
left(30)
bin_tree(n−1, 2*l/3)
right(60)
bin_tree(n−1, 2*l/3)
left(30)
penup()
backward(l/3)
pendown()

(Les branches les plus fines sont dessinées en vert, les autres en brun.)
Le script demandé s’écrit alors :

reset()
speed(0)
left(90)
bin_tree(8, 400)

Exercice 11. On commence par placer les deux tortues dans leurs positions initiales en choisissant la couleur de leurs
traces respectives :

Alice.reset()
Bob.reset()

Alice.pencolor('red')
Bob.pencolor('blue')

On les déplace à leurs positions de départ respectives :

http://info-llg.fr/ page 3
Alice.penup()
Alice.setposition(0, 400)
Alice.pendown()
Bob.penup()
Bob.setposition(−400, −100)
Bob.pendown()

La course rectiligne (appelée encore « courbe du chien ») s’obtient alors à l’aide du script :

while Alice.distance(Bob) > 2:


Bob.forward(10)
Alice.setheading(Alice.towards(Bob))
Alice.forward(12)

La vitesse légèrement plus grande d’Alice permet à cette dernière de rattraper Bob.
La course circulaire se réalise par le script :

Bob.penup()
Bob.setposition(0, −400)
Bob.pendown()

while Alice.distance(Bob) > 2:


Bob.circle(400, extent=5)
Alice.setheading(Alice.towards(Bob))
Alice.forward(25)

L’expérience montre que si la vitesse d’Alice est inférieure à celle de Bob (dans le cas des valeurs numériques choisies cela
revient à avancer de moins de 35 pas environ), la trajectoire d’Alice tend à être un cercle de diamètre inférieur à celle de
Bob.
Enfin, la course à trois (que l’on connait aussi sous le nom de « problème des souris ») peut se réaliser ainsi :

Carole = Turtle()

Alice.reset()
Bob.reset()
Carole.reset()

Alice.pencolor('red')
Bob.pencolor('blue')
Carole.pencolor('green')

Alice.penup()
Alice.left(60)
Alice.forward(400)
Alice.pendown()
Bob.penup()
Bob.backward(400)
Bob.pendown()
Carole.penup()
Carole.right(60)
Carole.forward(400)
Carole.pendown()

while Alice.distance(Bob) > 5:


Alice.setheading(Alice.towards(Bob))
Bob.setheading(Bob.towards(Carole))
Carole.setheading(Carole.towards(Alice))
Alice.forward(5)
Bob.forward(5)
Carole.forward(5)

page 4

Vous aimerez peut-être aussi