# ##################################################################################################### # Programme en Python qui trace le flocon de Koch d'ordre n en utilisant le module Turtle de Python. # 3 mars 2025 # nsi.gecif.net # ##################################################################################################### """ Le flocon de Koch est une courbe fractale qui peut être dessinée de manière récursive. Voici un programme Python qui utilise le module turtle pour tracer le flocon de Koch d'ordre n. Explication du code : Importation du module turtle : Le module turtle est utilisé pour dessiner des graphiques en utilisant une "tortue" qui se déplace sur l'écran. Fonction draw_koch_curve : Cette fonction dessine récursivement la courbe de Koch. t : L'objet tortue. order : L'ordre de la courbe de Koch (nombre de niveaux de récursion). size : La taille du segment initial. Condition de base : Si order est 0, la fonction dessine un segment de droite simple. Dessin récursif : La fonction appelle elle-même quatre fois pour dessiner les quatre segments de la courbe de Koch. La tortue tourne à gauche et à droite pour créer les angles appropriés. Fonction draw_koch_snowflake : Cette fonction dessine le flocon de Koch en répétant la courbe de Koch trois fois, en tournant de 120 degrés entre chaque répétition. Fonction main : Initialise la fenêtre et la tortue, puis appelle draw_koch_snowflake pour dessiner le flocon de Koch. Positionnement initial : La tortue est positionnée au point de départ pour dessiner le flocon. Fermeture de la fenêtre : La fenêtre se ferme lorsque l'utilisateur clique dessus. Vous pouvez ajuster les paramètres comme order et size pour obtenir différentes tailles et niveaux de détail du flocon de Koch. """ import turtle # ############################################################# # D E C L A T I O N D E S F O N C T I O N S # ############################################################# def draw_koch_curve(t, order, size): if order == 0: t.forward(size) else: size /= 3.0 draw_koch_curve(t, order - 1, size) t.left(60) draw_koch_curve(t, order - 1, size) t.right(120) draw_koch_curve(t, order - 1, size) t.left(60) draw_koch_curve(t, order - 1, size) # ############################################################# def draw_koch_snowflake(t, order, size): for _ in range(3): draw_koch_curve(t, order, size) t.right(120) # ############################################################# # P R O G R A M M E P R I N C I P A L # ############################################################# # Paramètres du flocon de Koch order = 3 # Ordre du flocon de Koch size = 500 # Taille initiale de chaque segment # Initialisation de la fenêtre et de la tortue screen = turtle.Screen() screen.bgcolor("white") screen.title("Flocon de Koch d'odre %d" % order) t = turtle.Turtle() t.color("black") t.speed(0) # vitese de la tortue t.hideturtle() # Cache le curseur de la tortue # Positionne la tortue au point de départ t.penup() t.goto(-size / 2, size / 3) t.pendown() # Dessine le flocon de Koch draw_koch_snowflake(t, order, size) # Ferme la fenêtre au clic screen.exitonclick()