📝 Exercice : Dessiner une maison
Utilisez le module turtle de Python pour dessiner la maison suivante :
Consigne : Créez un programme Python qui reproduit exactement cette maison avec les dimensions données.
📏 Dimensions à respecter :
• Côtés du toit : 210 pixels (×3 - triangle équilatéral)
• Murs verticaux : 100 pixels (×2)
• Base divisée en 3 parties : 70 + 70 + 70 = 210 pixels
• Porte : 70×70 pixels
• Angles du triangle : 60° (×3)
• Côtés du toit : 210 pixels (×3 - triangle équilatéral)
• Murs verticaux : 100 pixels (×2)
• Base divisée en 3 parties : 70 + 70 + 70 = 210 pixels
• Porte : 70×70 pixels
• Angles du triangle : 60° (×3)
Objectif : Reproduire cette maison avec le toit en triangle équilatéral et la porte rectangulaire au centre.
✅ Solution expliquée
⚠️ Code corrigé : La version précédente avait des erreurs dans les rotations et le positionnement. Voici la version corrigée qui dessine correctement la maison sans la porte.
Cette maison se compose de plusieurs parties géométriques :
- Le toit : Un triangle équilatéral avec 3 côtés de 210 pixels et 3 angles de 60°
- Les murs : Deux segments verticaux de 100 pixels
- La base : Divisée en 3 parties de 70 pixels (l'espace central correspond à la largeur de la porte)
🎯 Stratégie de dessin :
- Triangle du toit : Commencer orienté vers la droite, tourner à 60° vers le haut, puis dessiner les 3 côtés avec des rotations de 120°
- Mur gauche : Après la base du triangle, tourner à gauche de 90° pour descendre de 100 pixels
- Base : Tracer 3 segments de 70 pixels en tournant Ă chaque fois
- Mur droit : Remonter de 100 pixels
- Porte : À ajouter séparément (non incluse dans ce code simplifié)
🔑 Points mathématiques :
- Triangle équilatéral : tous les côtés sont égaux (210) et tous les angles internes sont de 60°
- Pour tourner au sommet : on tourne de 120° (180° - 60° = 120°)
- La base mesure 210 pixels, divisée en 3 parties égales de 70
- La porte (70 pixels) est centrée : elle occupe la partie centrale de la base
đź’» Code Python
from turtle import *
# Configuration
speed(3)
pensize(3)
color("black")
# Dessiner le toit (triangle équilatéral)
left(60) # Orienter vers le haut-droite
forward(210) # Côté gauche du toit
right(120) # Tourner au sommet
forward(210) # Côté droit du toit
right(120) # Tourner au coin droit
forward(210) # Base du triangle
# Dessiner le mur gauche
left(90) # Orienter vers le bas
forward(100) # Mur gauche
# Dessiner la base (en 3 parties)
left(90) # Orienter vers la droite
forward(70) # Partie gauche (70 pixels)
left(90) # Orienter vers le haut
forward(70) # Montée pour la porte
right(90) # Orienter vers la droite
forward(70) # Partie centrale (porte)
right(90) # Orienter vers le bas
forward(70) # Descente après la porte
left(90) # Orienter vers la droite
forward(70) # Partie droite (70 pixels)
# Dessiner le mur droit
left(90) # Orienter vers le haut
forward(100) # Mur droit
hideturtle()
done()
🎯 Résultat : Ce code dessine une maison avec un toit triangulaire équilatéral, des murs verticaux de 100 pixels, et la base divisée en 3 parties de 70 pixels (l'espace central correspond à la porte).
📝 Explication détaillée des rotations :
left(60): Orienter la tortue à 60° pour commencer le triangleright(120): Tourner au sommet du triangle (angle externe = 180° - 60° = 120°)right(120): Tourner au deuxième sommetleft(90): Se réorienter vers le bas pour dessiner le mur gauche- Les séquences
left(90)etright(90)permettent de tourner Ă angle droit pour tracer les murs et la base
Note importante : Ce code dessine le contour de la maison mais pas la porte. Pour ajouter la porte, il faudrait utiliser
penup() et pendown() pour se positionner au bon endroit, puis tracer un rectangle de 70Ă—70 pixels.