# ############################################################################################# # Programme en Python qui trace le tapis de Sierpinski en utilisant le module Turtle de Python # 11 mars 2025 # nsi.gecif.net # ############################################################################################# """ Voici un exemple de programme en Python qui utilise le module turtle pour tracer le tapis de Sierpinski. Le tapis de Sierpinski est une fractale qui peut être générée en divisant récursivement un carré en plus petits carrés et en enlevant le carré central. Explication du code : - draw_square : Cette fonction dessine un carré à une position donnée (x, y) avec une taille spécifiée. - sierpinski_carpet : Cette fonction récursive dessine le tapis de Sierpinski. Elle divise le carré en 9 plus petits carrés et ne dessine pas le carré central. - main : Cette fonction initialise l'écran et la tortue, puis appelle la fonction sierpinski_carpet pour dessiner le tapis de Sierpinski. """ import turtle def draw_square(t, x, y, size): """Dessine un carré à la position (x, y) avec une taille donnée.""" t.penup() t.goto(x, y) t.pendown() for _ in range(4): t.forward(size) t.right(90) def sierpinski_carpet(t, x, y, size, level): """Dessine le tapis de Sierpinski récursivement.""" if level == 0: draw_square(t, x, y, size) else: new_size = size / 3 for i in range(3): for j in range(3): if i != 1 or j != 1: # Ne dessine pas le carré central sierpinski_carpet(t, x + j * new_size, y - i * new_size, new_size, level - 1) def main(): screen = turtle.Screen() screen.setup(600, 600,100,50) screen.title("Tapis de Sierpinski") t = turtle.Turtle() t.speed(0) t.hideturtle() # Paramètres initiaux x, y = -200, 200 size = 400 level = 4 # Niveau de récursion sierpinski_carpet(t, x, y, size, level) screen.mainloop() if __name__ == "__main__": main()