Aller au contenu

07 Exos Turtle Correction

Exercice 1⚓︎

  1. Ecrire une fonction triangle_equilateral(cote) qui trace un triangle équilatéral de côté cote pixels.

    🐍 Script Python
    def triangle_equilateral(cote):
        for i in range(3):
            forward(cote)
            left(120)
    
    Un appel de cette fonction, par exemple triangle_equilateral(100) donnera :

  2. Ecrire une fonction rosace(n) qui trace une rosace constituée de \(n\) triangles équilatéraux (en utilisant la fonction précédente).

Exemples de "rosaces" pour n = 5 ou n = 10 (vous n'êtes pas obligés de mettre des couleurs) :

🐍 Script Python
def rosace(n):
    for i in range(n):
        triangle_equilateral(200)
        left(360/n)

Un appel de cette fonction, par exemple rosace(8) donnera :

On pouvait aussi décider de passer la dimension des triangles en paramètre de la fonction rosace(), ou changer de couleur entre les triangles, etc...

Exercice 2⚓︎

Écrire une fonction polygone(longueur_cote, nb_cotes) permettant de tracer un polygone à nb_cotes cotés de longueur longueur_cote.

🐍 Script Python
from turtle import *

def polygone(longueur_cote, nb_cotes):
    """Fonction qui dessine un polygone à nb_cotes côtés, de taille longueur_cotes"""
    for c in range(nb_cotes):
        forward(longueur_cote)
        left(360 // nb_cotes)

# appel de la fonction :
polygone(100, 5)
done()

Exercice 3⚓︎

  1. Écrire une fonction carre(cote, couleur) permettant de tracer un carré rouge de coté 100 à l’appel de carre(100,'red').

    🐍 Script Python
    from turtle import *
    
    def carre(taille, couleur):
        """Fonction qui dessine un carré de taille et de couleur déterminées"""
        color(couleur)
        for c in range(4):
            forward(taille)
            right(90)
    
    Un appel de cette fonction, par exemple carre(100, 'red') donnera :

  2. Écrire un script utilisant la fonction carre et donnant le résultat :

    🐍 Script Python
    up() # relever le crayon
    goto(-300, 50) # reculer en haut à gauche
    
    # dessiner dix carrés rouges, alignés :
    for i in range(10):
        down() # abaisser le crayon
        carre(50, 'red') # tracer un carré
        up() # relever le crayon
        forward(60) # avancer + loin
    done() # attendre
    

Exercice 4⚓︎

Écrire un script avec Python permettant d’obtenir la figure suivante :

🐍 Script Python
# On définit une fonction qui dessine des carrés pleins :
# (ou alors, on écrira begin_fill()) et end_fill() avant / après chaque tracé de carré
def carre_plein(taille, couleur):
    """Fonction qui dessine un carré plein de taille et de couleur déterminées"""
    color(couleur)
    begin_fill()
    for c in range(4):
        forward(taille) # en pixels
        right(90) # tourner le curseur à droite de 90 degrés
    end_fill()

# Puis pour les carrés dessinés en cercle :
def cercle_de_carres(n):
    """Dessine un cercle de n carrés pleins, n passé en argument"""
    for i in range(n):
        down() # abaisser le crayon
        carre_plein(25, 'red') # tracer un carré
        up() # relever le crayon
        forward(30) # avancer + loin
        left(360/n) # l'angle dépend du nombre total de carrés

up() # relever le crayon
goto(-50, -150) # commencer en bas

cercle_de_carres(36) # appel de la fonction précédente pour dessiner 36 carrés
done()

Exercice 5⚓︎

Écrire un script avec Python permettant d’obtenir la figure suivante :

Nota Bene : si on dessine les carrés en tournant à droite, et les triangles en tournant à gauche, on remarque cela nous simplifiera les choses pour dessiner la figure souhaitée.

🐍 Script Python
from turtle import *

# On définit une fonction qui dessine des carrés pleins :
def carre_plein(taille, couleur):
    """Fonction qui dessine un carré plein de taille et de couleur déterminées"""
    color(couleur)
    begin_fill()
    for c in range(4):
        forward(taille) # en pixels
        right(90) # tourner le curseur à droite de 90 degrés
    end_fill()

# et une fonction qui dessine des triangles pleins :
def triangle_plein(taille, couleur):
    """Fonction qui dessine un triangle plein de taille et de couleur déterminées"""
    color(couleur)
    begin_fill()
    for t in range(3):
        forward(taille) # en pixels
        left(120) # tourner le curseur à left de 120 degrés
    end_fill()

# Puis pour les carrés et triangles dessinés en cercle :
def cercle_de_carres_et_triangles(n):
    """Trace un cercle de n carrés rouges et n triangles bleus"""
    for i in range(n):
        down() # abaisser le crayon
        carre_plein(25, 'red') # tracer un carré
        up() # relever le crayon
        forward(30) # avancer + loin
        left(180/n) # il y a 2n éléments, donc on tourne de 360/(2n)
        down() # abaisser le crayon
        triangle_plein(25, 'blue')
        up()
        forward(30) # avancer + loin
        left(180/n) # il y a 2n éléments, donc on tourne de 360/(2n)

up() # relever le crayon
goto(0, -150) # commencer en bas
cercle_de_carres_et_triangles(18)
done()

Exercice supplémentaire⚓︎

Je ne publie pas de correction. Si vous avez des questions, n'hésitez pas à les poser...