Considérons une éponge de menger d’ordre n dont le côté mesure L.
Le schéma montre bien que cette éponge est constitué en fait de 20 éponges de Menger d’ordre n- 1 ayant chacune un
côté de . La structure récursive de l’éponge est ainsi mise en évidence.
Le programme :
# Commande principale: eponge 3
pour cube :l
si :compteur=10000 [vue3d]
# Couleur des faces latérales
soit "couleurs [jaune magenta cyan bleu]
# faces latérales
repete 4 [fcc exec item compteur :couleurs carre :l td 90 av :l tg 90 rd 90]
# Dessous
fcc rouge pique 90 carre :l cabre 90
av :l pique 90 fcc vert carre :l cabre 90 re :l
fin
pour carre :c
donne "compteur :compteur+1
polydef
repete 4 [av :c td 90]
polyfin
fin
# Eponde de Menger
# p: profondeur de récursivité
# l: Longueur du grand cube.
pour menger :l :p
si :p=0 [cube :l] [
soit "p :p-1
soit "l :l/3
#face avant
repete 3 [menger :l :p av :l] re 3*:l
td 90 av :l tg 90
menger :l :p av 2*:l menger :l :p re 2*:l
td 90 av :l tg 90
repete 3 [menger :l :p av :l] re 3*:l
#Côté droit
pique 90 av :l cabre 90
menger :l :p av 2*:l menger :l :p re 2*:l
pique 90 av :l cabre 90
repete 3 [menger :l :p av :l] re 3*:l
tg 90 av :l td 90
menger :l :p av 2*:l menger :l :p re 2*:l
tg 90 av :l td 90
repete 3 [menger :l :p av :l] re 3*:l
pique 90 re :l cabre 90
menger :l :p av 2*:l menger :l :p re 2*:l
pique 90 re :l cabre 90
]
fin
pour eponge :p
ve ct donne "compteur 0 perspective fcfg 0 menger 800 :p
tape [Nombre de polygone: ] ec :compteur
vue3d
fin
Ce programme comprend quatre procédures :
- carre :c
Cette procédure trace un carré de côté :c. De plus, ce polygone est enregistré par le modeleur 3D. La
variable compteur est chargée de dénombrer le nombre de polygones dessinés.
- cube :l
Cette procédure trace un cube de côté :l. Elle utilise bien sûr la procédure carre
- menger :l :p
Cette procédure est la clé du programme, elle dessine un motif de Menger d’ordre p et dont le côté
mesure l. Ce motif est créé de manière récursive de manière tout à fait naturelle en exploitant le
schéma précédent.
- eponge :p
Cette procédure trace une eponge de Menger d’ordre p et de côté 800 puis l’affiche dans le modeleur
3D.