1 – Les fractals : Sierpinski

Les objets fractals sont des structures invariantes par changement d’échelle. Nous allons commencé par voir celles portant le nom de Waclaw Sierpinski (1882-1969).

Le triangle de Sierpinski 

On part d’un triangle équilatéral coloré. En joignant les milieux des côtés, on obtient un triangle équilatéral central que l’on met en blanc et des triangles équilatéraux colorés. On répète l’opération pour les triangles colorés. On réitère le procédé un nombre n arbitraire de fois.

sierpinski

Le tracé de cette figure s’appuie sur une fonction récursive (c’est à dire qui s’appelle elle-même). L’idée est de dire qu’un triangle de Sierpinski au rang n n’est autre que la réunion de trois triangles de Sierpinski au rang n1. Les coordonnées des sommets des triangles sont bien-sûr différentes, il faudra donc mettre en données les coordonnées des sommets du triangle « père », puis déterminer les coordonnées des sommets des triangles « fils ».

497-21
Plus précisément, l’algorithme va partager un triangle « père » ABC dont les sommets ont pour coordonnées A(xA,yA)B(xB,yB)C(xC,yC), en quatre triangles : trois triangles « fils » AEG, EBF, GFC et un triangle central EFG où E désigne le milieu de [AB], F le milieu de [BC] et G le milieu de [AC]. Puis il recommence l’opération pour tous les triangles « fils ».

Exercice 1 :

La fonction récursive est donc :

triangleex

Appliquez cet algorithme à la main en complétant la figure ci-dessus que vous aurez préalablement reproduite sur votre cahier.

recusivite

Enfin tester l’algorithme suivant  utilisant le module Pygame :

Le Tapis de Sierpinski :

animated_sierpinski_carpet-1unknown

Le tapis se fabrique en découpant le carré « père » en neuf carrés égaux selon une grille de trois par trois, et en supprimant la pièce centrale, puis en appliquant cette procédure aux huit carrés restants un nombre n de fois.

Exercice 2 :

Ecrivez la fonction carre du code suivant pour obtenir un tapis de Sierpinski :