# ############################################################### # Paysage dessiné en utilisant le module Turtle de Python # Juin 2026 # nsi.gecif.net # ############################################################### import turtle import math # Configuration initiale de la fenĂȘtre screen = turtle.Screen() screen.setup(1000, 700) screen.title("Paysage Complet avec Turtle - nsi.gecif.net") screen.bgcolor("#87CEEB") # Couleur du ciel par dĂ©faut t = turtle.Turtle() t.hideturtle() turtle.tracer(0) # DĂ©sactive l'animation pour un affichage instantanĂ© # ========================================== # FONCTIONS UTILITAIRES DE DESSIN # ========================================== def aller_a(x, y): t.penup() t.goto(x, y) t.pendown() def dessiner_rectangle(x, y, largeur, hauteur, couleur): aller_a(x, y) t.color(couleur, couleur) t.begin_fill() for _ in range(2): t.forward(largeur) t.left(90) t.forward(hauteur) t.left(90) t.end_fill() def dessiner_cercle(x, y, rayon, couleur): aller_a(x, y - rayon) # Ajustement pour centrer approximativement t.color(couleur, couleur) t.begin_fill() t.circle(rayon) t.end_fill() def dessiner_triangle(x1, y1, x2, y2, x3, y3, couleur): aller_a(x1, y1) t.color(couleur, couleur) t.begin_fill() t.goto(x2, y2) t.goto(x3, y3) t.goto(x1, y1) t.end_fill() # ========================================== # 1. ARRIÈRE-PLAN (Montagnes et Sol) # ========================================== # Montagnes lointaines dessiner_triangle(-500, -50, -200, 250, 100, -50, "#4A6984") dessiner_triangle(-100, -50, 200, 280, 500, -50, "#3B556E") # Sol (Plaine verte) dessiner_rectangle(-500, -350, 1000, 300, "#27AE60") # Soleil dessiner_cercle(350, 220, 45, "#FFD700") # Nuages for nx, ny in [(-300, 200), (-260, 210), (-220, 200), (100, 180), (140, 190)]: dessiner_cercle(nx, ny, 25, "white") # ========================================== # 2. INFRASTRUCTURES (Route, Maison, Feu) # ========================================== # Route dessiner_rectangle(-500, -200, 1000, 90, "#34495E") # Lignes pointillĂ©es de la route for rx in range(-480, 500, 80): dessiner_rectangle(rx, -160, 40, 5, "white") # Maison dessiner_rectangle(-400, -110, 140, 100, "#FAEBD7") # Murs dessiner_triangle(-420, -10, -330, 60, -240, -10, "#CD5C5C") # Toit dessiner_rectangle(-360, -110, 30, 55, "#8B4513") # Porte dessiner_rectangle(-390, -50, 25, 25, "#AED6F1") # FenĂȘtre 1 dessiner_rectangle(-295, -50, 25, 25, "#AED6F1") # FenĂȘtre 2 # Feu Tricolore dessiner_rectangle(200, -110, 8, 120, "#7F8C8D") # Poteau dessiner_rectangle(190, 10, 28, 55, "#2C3E50") # BoĂźtier dessiner_cercle(204, 50, 6, "#E74C3C") # Feu Rouge (allumĂ©) dessiner_cercle(204, 37, 6, "#566573") dessiner_cercle(204, 24, 6, "#566573") # ========================================== # 3. VÉHICULES (Autobus, VĂ©lo, Voiture) # ========================================== # Autobus jaune dessiner_rectangle(-150, -185, 180, 65, "#F1C40F") # Corps for bx in range(-140, 10, 35): dessiner_rectangle(bx, -150, 22, 22, "#AED6F1") # Vitres dessiner_cercle(-110, -185, 14, "black") # Roues dessiner_cercle(0, -185, 14, "black") # Voiture rouge dessiner_rectangle(260, -190, 90, 30, "#DC143C") # Bas dessiner_rectangle(280, -160, 50, 22, "#DC143C") # Toit dessiner_rectangle(285, -158, 18, 16, "#AED6F1") # Vitre gauche dessiner_rectangle(308, -158, 18, 16, "#AED6F1") # Vitre droite dessiner_cercle(285, -190, 10, "black") # Roues dessiner_cercle(325, -190, 10, "black") # VĂ©lo (TracĂ© filaire simple) aller_a(-220, -185) # Roue arriĂšre t.color("black") t.circle(10) aller_a(-190, -185) # Roue avant t.circle(10) aller_a(-220, -175) # Cadre t.goto(-205, -175) t.goto(-192, -162) # Guidon t.goto(-205, -175) t.goto(-210, -165) # Selle # ========================================== # 4. NATURE ET ANIMAUX (Arbres, Fleurs, Canard) # ========================================== # Arbres for tx in [-450, -200, 420]: dessiner_rectangle(tx, -110, 15, 50, "#5C4033") # Tronc dessiner_cercle(tx + 7, -50, 30, "#1E5631") # Feuillage # Fleurs (Correction apportĂ©e ici : 3 variables pour dĂ©coder le tuple) fleurs_liste = [(-430, -130, "yellow"), (-230, -120, "purple"), (-180, -140, "pink"), (380, -135, "orange")] for fx, fy, fcol in fleurs_liste: dessiner_cercle(fx, fy, 6, fcol) # Mare et petit canard dessiner_rectangle(-460, -320, 120, 50, "#4682B4") # Petit Ă©tang dessiner_cercle(-410, -305, 10, "#F1C40F") # Corps canard dessiner_cercle(-400, -297, 6, "#F1C40F") # TĂȘte canard # ========================================== # 5. PERSONNAGES (Silhouettes prĂšs de la maison) # ========================================== def dessiner_bonhomme(x, y, col_corps): # Jambes aller_a(x - 4, y - 30) t.goto(x - 4, y - 15) t.goto(x + 4, y - 15) t.goto(x + 4, y - 30) # Corps dessiner_rectangle(x - 7, y - 15, 14, 20, col_corps) # TĂȘte dessiner_cercle(x, y + 12, 7, "#FFCD94") # Bras aller_a(x - 12, y - 2) t.goto(x + 12, y - 2) t.width(2) dessiner_bonhomme(-210, -110, "#333399") dessiner_bonhomme(-180, -110, "#990033") # ========================================== # FIN DU TRAITEMENT # ========================================== turtle.update() # Force l'affichage global screen.mainloop()