Un ballon de foot fractal
... et d’autres objets étranges
Piste rouge Le 20 juin 2010 Voir les commentaires (4)Lire l'article en


On a vu le Mandelbulb, le Mandelbox et voici maintenant une toute autre famille d’objets fractals. [1] Cette fois-ci, ce sont des polyèdres : les solides de Platon et des solides d’Archimède, mais aussi quelques formes plus exotiques. On va les munir d’une structure fractale en utilisant un algorithme très simple.
Un ballon de foot a un patron typique d’hexagones et de pentagones, qu’on obtient en tronquant un icosaèdre. Le voici sculpté en figures fractales. Il ne reste qu’à le gonfler :
Comment peut-on dessiner et sculpter ces objets ? Pour commencer l’explication il faut faire un détour par Amsterdam au début du vingtième siècle et aller regarder la construction proposée par le mathématicien Willem Wythoff.
Les polyèdres à la Wythoff
![]() |
On peut paver une sphère avec des triangles sphériques d’angles $\pi/2$, $\pi/3$ et $\pi/4$. Si on prend un de ces triangles et si on prend itérativement les points symétriques du point bleu dans la figure de gauche par rapport aux trois plans qui passent par les côtés du triangle et le centre de la sphère, on obtient les six sommets d’un octaèdre.
On dit que l’octaèdre a le symbole de Wythoff $ 4 | 2 3$ : dans un triangle sphérique d’angles $\pi/4$, $\pi/2$ et $\pi/3$, on fait des réflexions du sommet d’angle $\pi/4$. Si on fait la même chose avec le point bleu de la figure de droite, on obtient les huit sommets d’un cube : le cube a donc comme symbole de Wythoff $3|24$. Il y a aussi une construction similaire pour le tétraèdre |
![]() |
![]() |
On peut aussi paver une sphère avec des triangles sphériques d’angles $\pi/2$, $\pi/3$ et $\pi/5$. Avec ce pavage, on peut construire les sommets du dodécaèdre et de l’icosaèdre, comme dans les figures de gauche et de droite.
On dit que le dodécaèdre a le symbole de Wythoff $ 3 | 2 5$ tandis que le symbole pour l’icosaèdre est $5|23$. |
![]() |
![]() |
Si on choisit la position du point ailleurs sur les côtés du triangle, on peut obtenir les sommets des solides d’Archimède, comme le ballon de foot ( icosaèdre tronqué) de gauche et le petit rhombicosidodécaèdre à droite. |
![]() |
Cette construction de Wythoff va nous aider dans ce qui suit.
Un algorithme simple
Ce que nous allons faire c’est prendre les trois plans qui passent par l’origine et par les côtés du triangle de base de la construction de Wythoff. On peut simplement les caractériser par leurs vecteurs normaux $n_1$, $n_2$ et $n_3$. Pour trouver les valeurs numériques de ces vecteurs on peut commencer avec les coordonnées des sommets des polyèdres réguliers. Un des plans a comme vecteur normal la direction déterminée par une arête du polyèdre en question. On trouve facilement les autres avec l’aide mémoire des polyèdres réguliers.
On définit donc les trois plans et un point $C$ sur la sphère à l’intérieur ou sur le bord du triangle défini par les trois plans.
On prend un point $P$ dans l’espace, et on effectue des réflexions par rapport aux trois plans pour que la nouvelle position du point se trouve entre les trois plans, donc dans l’espace pyramidal décrit par l’origine et les trois plans. [2]
Pour cela on fait $a=P.n_i$, le produit scalaire des vecteurs $P$ et $n_i$.
Si $a<0$ on fait $P'=P-2an_i$. La nouvelle position $P'$ sera le point symétrique au plan de vecteur normal $n_i$. On fait ça pour $i=1, 2, 3$.
Puis on fait une translation $P''=C+s(P'-C)$. Prenons pour le moment $s=1.5$.
Si la distance de l’origine $R$ du point $P''$ reste inférieure à une valeur (à choisir) $M$, on recommence : on fait les réflexions conditionnelles et la translation, et on regarde de nouveau si $R$ reste inférieur à $M$. Si oui on recommence encore, ou on s’arrête si on a parcouru un certain nombre d’itérations. Si $R>M$, on s’arrête tout de suite et on prend un autre point $P$.
On dessine donc seulement les points pour lesquels $R$ reste toujours inférieur à $M$.
Comme exemple, prenons le triangle sphérique dans la construction de Wythoff qui engendre les sommets du cube et de l’octaèdre.
Les vecteurs normaux sont
$n_1=<1,0,0>, n_2=<-1/\sqrt{2}, 1/\sqrt{2},0> ,n_3=<0,1/\sqrt{2},1/\sqrt{2}>$. Voici ce qu’on obtient avec l’algorithme si on prend pour valeurs de $C$ consécutivement $<0,0,-1>$, $<0,1/\sqrt{2},-1/\sqrt{2}>, <1/\sqrt{3},1/\sqrt{3},-1/\sqrt{3}>$ (donc les sommets du triangle sphérique) :
![]() |
![]() |
![]() |
Essayons avec le triangle sphérique qui engendre le dodécaèdre et l’icosaèdre.
![]() |
![]() |
![]() |
![]() |
L’algorithme de quelques lignes [3] dessine donc les polyèdres complets, pas juste les sommets comme le fait la construction de Wythoff ! On pourrait définir les polyèdres comme l’ensemble de points qui ne s’échappent pas vers l’infini sous l’action de l’algorithme avec certaines valeurs pour les trois vecteurs normaux $n_i$ et le point fixe $C$.
C’est peut-être intéressant, mais nous sommes à la recherche d’images qui sont un peu plus surprenantes que les vieux polyèdres...
Changeons un paramètre !
Comme nous l’avons vu, l’algorithme est constitué de deux étapes : les réflexions et la translation du point d’une distance qui a comme valeur $s$ fois la distance du point fixe. Alors changeons $s$. Voici ce qu’on obtient pour l’octaèdre pour, de gauche à droite, $s=1.55$, $s=1.75$ et $s=2$.
![]() |
![]() |
![]() |
Pour $s=2$ on obtient un octaèdre de Sierpinski.
Essayons avec un dodécaèdre. Cette fois-ci les faces ne sont plus lisses quand $s$ devient plus grand que $1+\phi/2$, où $\phi=(1+\sqrt{5})/2$, le nombre d’or. Voici le résultat pour $s=2$, $s=2.5$ et $s=2.75$.
![]() |
![]() |
![]() |
Si on regarde l’objet de plus près, il est clair que sa structure est fractale. Voici l’objet avec $s=2.75$ agrandi 5 fois (à gauche) et 26 fois (à droite).
![]() |
![]() |
Quelques autres exemples, d’abord la version Sierpinski de l’icosaèdre :
![]() |
![]() |
... et deux autres, choisis aléatoirement parmi les polyèdres :
![]() |
![]() |
On a inventé un nom pour ce type d’objets fractals : fonctions itérées kaléidoscopiques. L’adjectif ’kaléidoscopique’ vient évidemment des réflexions qu’on applique dans la première étape de l’algorithme. Comme on a ’fonctions’ au pluriel, rien ne nous empêche d’ajouter encore une ou plusieurs fonctions à l’algorithme. Avec cela on va découvrir des objets étranges !
Objets étranges
Dans l’algorithme, avant d’effectuer les réflexions, on va faire subir au point une rotation autour d’un certain axe, et il est bien entendu possible aussi d’introduire une rotation additionelle entre les réflexions et la translation. Comme on parcourt l’algorithme itérativement, on aura donc la séquence rotation - réflexion - (rotation) - translation - rotation - etc. Voici deux exemples : un tétraèdre avec deux rotations, et un cube à une rotation :
![]() |
![]() |
Toutes les images qu’on a montrées jusqu’ici étaient basées sur les triangles sphériques dans les constructions de Wythoff. Les amateurs d’images fractales aiment cependant abandonner les règles claires et explorer ce qui se passe si on laisse jouer l’imagination. Dans l’image ci-dessous à gauche on a pris quatre plans de réflexion et une rotation. L’image de droite a trois plans choisis autrement et une rotation.
![]() |
![]() |
Voici encore un film par Krzysztof Marczak (Pologne) où les paramètres changent de façon continue :
Après avoir changé tous les principes des paramètres, on commence à changer l’algorithme même pour voir ce que cela peut donner. On a ainsi trouvé une méthode super efficace pour dessiner l’éponge de Menger.
Menger
Wikipédia donne une methode pour construire cet objet :
La construction d’une éponge de Menger peut être décrite de la manière suivante :
- débuter par un cube ;
- réduire le cube au tiers et en faire 20 copies ;
- placer ces copies de telle façon qu’elles forment un nouveau cube de la même taille que l’original, sans les parties centrales ;
- répéter le processus à partir de l’étape 2 pour chacun des 20 cubes ainsi créés.
Le solide obtenu à la limite, après un nombre infini d’itérations, est l’éponge de Menger.
À chaque itération, on multiplie le nombre de cubes par $20$, ce qui fait que le solide créé à l’itération n contient $20^n$ cubes.
C’est facile si on a un logiciel qui peut manipuler des cubes. Le problème pourtant est que cela donne des problèmes de mémoire : pour construire une éponge à 5 itérations, il faut manipuler déjà plus de 3 millions de cubes !
Une petite modification de notre algorithme va engendrer le même objet sans aucun problème de mémoire. [4]
Pour les plans de réflexion on va prendre les trois plans $x=0$, $y=0$ et $z=0$, comme point fixe, le point $<1,1,1>$ et $s=3$ .
On va changer quelque chose dans la translation. On fait encore $P''=C+s(P'-C)$, donc
\[P''_x=C_x+3(P'_x-C_x)\]
\[P''_y=C_x+3(P'_y-C_y)\]
\[P''_z=C_z+3(P'_z-C_z),\] mais cette dernière action seulement si $P''_z>1$, sinon on fait $P''_z=3P'_z$.
Voici comment l’algorithme produit l’objet : l’image au milieu est un agrandissement de facteur 10 et l’image de droite est agrandie 200 fois. Si donc on fait des zooms, l’algorithme va toujours montrer tous les détails.
![]() |
![]() |
![]() |
Ici aussi, on peut jouer avec les paramètres : on peut changer le facteur d’échelle $s$, changer le point fixe, ajouter des rotations, ce qui donne des variations sur l’éponge assez étonnantes :
![]() |
![]() |
![]() |
Voici ce que donne une petite rotation :
Encore plus surprenant : une autre valeur pour le point fixe et une autre rotation engendrent un tout autre objet qui ne ressemble plus du tout à l’éponge de Menger :
![]() |
![]() |
Les explorations continuent...
Notes
[1] L’idée vient, encore une fois, de Fractalforums, où Abdelaziz Naït Merzouk (Algérie) a combiné d’une façon très élégante quelques fils de discussions sur le forum.
[2] Pour assurer que le point se trouve vraiment dans cette région de l’espace, il faut répéter les réflexions plusieurs fois.
[3] Ces quelques lignes doivent évidemment cadrer dans un algorithme de raytracing qui sera un peu plus long...
[4] Il y a d’autres algorithmes efficaces. En voici un :
Pour un cube centré à l’origine avec arêtes de longueur $1$, un point $x,y,z$ fera partie de l’ensemble à $n$ itérations si \[|x|<0.5, |y|<0.5, |z|<0.5\] et si on ne rencontre pas « Stop » dans cette séquence :
$i$ de $1$ à $n$
$x'$=int(($(x+0.5)*3^i$)modulo 3), $y'$=int(($(y+0.5)*3^i$)modulo 3), $z'$=int(($(z+0.5)*3^i$)modulo 3)
si ($x'=1$ ET $y'=1$) OU ($x'=1$ ET $z'=1$) OU ($y'=1$ ET $z'=1$) STOP
sinon $i=i+1$
Partager cet article
Pour citer cet article :
Jos Leys — «Un ballon de foot fractal» — Images des Mathématiques, CNRS, 2010
Laisser un commentaire
Actualités des maths
-
5 mars 2023Maths en scène : Printemps des mathématiques (3-31 mars)
-
6 février 2023Journées nationales de l’APMEP, appel à ateliers (9/4)
-
20 janvier 2023Le vote électronique - les défis du secret et de la transparence (Nancy, 26/1)
-
17 novembre 2022Du café aux mathématiques : conférence de Hugo Duminil-Copin (Nancy et streaming, 24/11)
-
16 septembre 2022Modélisation et simulation numérique d’instruments de musique (Nancy & streaming, 22/9)
-
11 mai 2022Printemps des cimetières
Commentaire sur l'article
Un ballon de foot fractal
le 21 juin 2010 à 15:27, par Guy Marion
Un ballon de foot fractal
le 17 avril 2012 à 17:58, par Marie-Claude DAVID
Un ballon de foot fractal
le 17 avril 2012 à 19:56, par Jos Leys
Un ballon de foot fractal
le 19 avril 2012 à 12:14, par Marie-Claude DAVID