Récursion géométrique
Une règle appliquée à chaque morceau, puis aux morceaux des morceaux.
C'est quoi, la règle ?
Tu connais les poupées russes ? La récursion géométrique, c'est un peu ça : une règle qu'on applique à une forme, puis à chacun des morceaux obtenus, puis aux morceaux des morceaux… Exemple avec le tapis de Sierpiński : on coupe un carré en neuf, on retire celui du milieu, et on recommence sur les huit qui restent. À chaque cran, le nombre de carrés est multiplié par huit :
carrés = 8^n
Ici, n est la profondeur : 1 carré à 0, 8 à 1, 64 à 2, puis 512, 4 096. Les arbres, eux, ont un autre rythme. L'arbre de Pythagore pose un triangle rectangle sur un carré, et ses deux côtés portent chacun un nouveau carré. L'arbre en H trace un segment, puis à chaque bout un segment perpendiculaire, réduit d'un facteur 1/√2. Dans les deux cas, chaque pièce en fait naître deux :
pièces = 2^(n+1) − 1
Ça monte vite ! D'où la limite du jouet : le tapis s'arrête à 5 crans, les arbres à 6.
À toi de jouer
Choisis une forme et tourne le curseur de profondeur : le compte des pièces s'affiche à chaque cran, et tu peux vérifier les deux formules juste au-dessus. « Cran suivant » avance d'un niveau, « Lecture » les enchaîne.
Regarde bien ce qui ne change pas : la règle. Seule la profondeur varie, et la figure ne contient jamais rien d'autre que la même idée, répétée de plus en plus petit.
Pièces
Petite précision : le dessin ci-dessus est un schéma, pas l'œuvre. Il montre la règle, point. Les couleurs, la taille des points, le grain du tirage, il les rejoue pas.
Qu'est-ce qui change d'un algo à l'autre ?
Les huit appliquent une règle à ses propres résultats. Ce qui change, c'est la forme de départ, et ce qui décide quand on s'arrête : une profondeur fixée, ou un hasard borné.
- Tapis de Sierpiński
- Le tapis du jouet : un carré coupé en 3 × 3, la case centrale retirée, et on recommence sur les huit autres jusqu'à la profondeur choisie (4 par défaut). Aucun tirage au hasard, la variété d'une œuvre vient de ses réglages, couleurs comprises.
- Arbre en H
- L'arbre en H du jouet. Un segment centré, puis à chaque bout un segment perpendiculaire, réduit d'un facteur réglable (1/√2 par défaut, 7 niveaux). Là non plus, aucun tirage au hasard.
- Cercles fractals
- Le cousin rond du tapis : même découpage en 3 × 3, mais on inscrit un cercle dans chaque case au lieu de la remplir. À force de recommencer, les anneaux s'emboîtent les uns dans les autres.
- Baderne d'Apollonius
- La baderne d'Apollonius. Un grand cercle en contient deux autres, et dans chaque triangle courbe qui reste, on glisse un nouveau cercle tangent aux trois voisins (merci le théorème de Descartes). On s'arrête quand un cercle devient plus petit qu'un pixel.
- Arbre de Pythagore
- L'arbre de Pythagore du jouet. Un angle règle l'inclinaison du triangle : à 45° l'arbre est symétrique, ailleurs il penche d'un côté. Les carrés suivent l'inclinaison de leur branche.
- Broyeur récursif
- Ici, le hasard entre dans la danse. Un rectangle est coupé à un endroit tiré dans des bornes (par défaut entre 30 % et 70 % du côté), et chaque morceau a une chance de s'arrêter là, de remplir son rectangle, de dessiner une cible ou de poser un disque. C'est la seule de la famille dont la découpe change d'un seed à l'autre.
- Perles kleiniennes
- Les perles kleiniennes. Deux transformations de Möbius et leurs inverses engendrent un groupe, et on dessine les cercles que ce groupe transporte. On trace des cercles, pas des pixels : quelques milliers suffisent, et c'est ça qui rend le zoom infini abordable.
- Droste
- L'effet Droste : une image qui contient une copie réduite d'elle-même, à l'infini (la boîte de cacao, tu vois ?). Chaque pixel est relu en coordonnées log-polaires, et un motif qui se répète à chaque tour devient automatiquement auto-similaire. Le zoom boucle sur lui-même.
Et le hasard, il décide quoi ?
Pour chaque œuvre, le programme tire ces réglages au sort, entre des bornes fixées à l'avance. Une fois tirés, ils bougent plus : ils font partie de l'identité de l'œuvre.
- Profondeur maximale Tapis de Sierpiński de 3 à 6
- Rapport de réduction Arbre en H de 0,62 à 0,75
- Inclinaison des branches (°) Arbre de Pythagore de 25 à 65
Les algorithmes de cette famille
- Tapis de Sierpiński
- Arbre en H
- Cercles fractals
- Baderne d'Apollonius
- Arbre de Pythagore
- Broyeur récursif
- Perles kleiniennes
- Droste