# ############################################################### # Voiture dessinée en utilisant le module Turtle de Python # Juin 2026 # nsi.gecif.net # ############################################################### import turtle # ================================================== # FENÊTRE # ================================================== screen = turtle.Screen() screen.setup(900, 600) screen.title("Voiture détaillée - Turtle - nsi.gecif.net") screen.bgcolor("skyblue") t = turtle.Turtle() t.speed(0) t.hideturtle() # ================================================== # OUTILS # ================================================== def rect(x, y, w, h, c): t.penup() t.goto(x, y) t.setheading(0) t.color(c) t.begin_fill() t.pendown() for _ in range(2): t.forward(w) t.left(90) t.forward(h) t.left(90) t.end_fill() def cercle(x, y, r, c): t.penup() t.goto(x, y - r) t.color(c) t.begin_fill() t.pendown() t.circle(r) t.end_fill() def poly(points, c): t.penup() t.goto(points[0]) t.color(c) t.begin_fill() t.pendown() for p in points[1:]: t.goto(p) t.goto(points[0]) t.end_fill() # ================================================== # ROUE DETAILLEE (gente + pneu + reflet) # ================================================== def roue(x, y): # pneu cercle(x, y, 22, "black") # jante cercle(x, y, 14, "gray") # centre cercle(x, y, 5, "#C0C0C0") # rayons de jante t.color("white") for angle in range(0, 360, 45): t.penup() t.goto(x, y) t.setheading(angle) t.pendown() t.forward(12) # ================================================== # CARROSSERIE PRINCIPALE # ================================================== def voiture(x, y): # base rect(x, y, 200, 40, "red") # cabine (forme arrondie) poly([ (x + 30, y + 40), (x + 55, y + 85), (x + 140, y + 85), (x + 170, y + 40) ], "red") # toit renforcé poly([ (x + 60, y + 85), (x + 90, y + 105), (x + 120, y + 105), (x + 135, y + 85) ], "darkred") # vitres poly([ (x + 60, y + 45), (x + 75, y + 75), (x + 130, y + 75), (x + 145, y + 45) ], "lightblue") # séparation des vitres t.color("black") t.penup() t.goto(x + 100, y + 45) t.pendown() t.goto(x + 100, y + 75) # portière avant rect(x + 40, y + 5, 60, 35, "red") # portière arrière rect(x + 100, y + 5, 60, 35, "red") # poignées cercle(x + 85, y + 25, 2, "black") cercle(x + 145, y + 25, 2, "black") # rétroviseur gauche poly([ (x + 55, y + 70), (x + 45, y + 65), (x + 50, y + 60) ], "black") # rétroviseur droit poly([ (x + 145, y + 70), (x + 155, y + 65), (x + 150, y + 60) ], "black") # antenne t.color("black") t.penup() t.goto(x + 120, y + 105) t.pendown() t.goto(x + 130, y + 140) cercle(x + 130, y + 140, 2, "black") # phares avant cercle(x + 5, y + 25, 6, "yellow") cercle(x + 195, y + 25, 6, "yellow") # pare-chocs rect(x, y, 200, 8, "darkgray") # roues roue(x + 50, y) roue(x + 150, y) # ================================================== # ROUTE SIMPLE # ================================================== rect(-450, -100, 900, 200, "gray") for i in range(-420, 420, 80): rect(i, -10, 40, 6, "white") # ================================================== # DESSIN VOITURE # ================================================== voiture(-200, -80) turtle.done()