Discussion:Objets récursif
/* Menger.scad
- Parametric Menger Sponge
- By Nicholas C Lewis 2010
- http://www.thingiverse.com/thing:5321
- /
size = 99; //side length
level = 4; //menger level
intersection(){
rotate([0,0,0])translate([-size/2,-size/2,-size/2])singleSide();
rotate([0,90,0])translate([-size/2,-size/2,-size/2])singleSide();
rotate([0,0,90])translate([-size/2,-size/2,-size/2])singleSide();
}
module singleSide(){
difference(){
cube(size);
for(i=[1:level]){
for(j=[0:pow(3,i)-1]){
for(k=[0:pow(3,i)]){
translate([-size/2,j*size/pow(3,i),k*size/pow(3,i)]){
//echo(round((j+2)/3)==(j+2)/3);
//echo((j+2)/3);
if(round((j+2)/3)==(j+2)/3){
if(round((k+2)/3)==(k+2)/3){
cube([2*size,size/pow(3,i),size/pow(3,i)]);
}}}}}}}}
putain c'est fort :pow
-> L'implémentation est bien plus classe que la mienne, c'est clair. Je suis curieux de voir ce que ça donne niveau performance, je vais tester.
oublie pas de couper l’éponge pour voir les étoiles
Surtout que si tu fais une coupe du genre https://fr.wikipedia.org/wiki/%C3%89ponge_de_Menger#/media/File:Menger4_Coupe.jpg tu peu virer des récursions et faciliter le calcul? ça va commencer a devenir sioux mais c'est à approfondir. :)