Différences

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
travaux:eponge_menger [2010/10/23 16:36]
nico
travaux:eponge_menger [2012/10/23 15:36] (Version actuelle)
nliautaud
Ligne 60: Ligne 60:
 win() win()
 </​file>​ </​file>​
 +
 +Autre syntaxe possible, utilisant les compréhensions de listes :
 +<code python>
 +def mengerSponge(x,​ y, z, sz, it, lvl=0):
 +    if lvl==it:
 +        polyCube(w=sz,​ h=sz, d=sz)
 +        move(x, y, z)
 +    else:
 +        s = sz / 3.0;
 +        rng = (-1, 0, 1)
 +        for x,y,z in list((x+i*s,​y+j*s,​z+k*s)
 +            for i in rng for j in rng for k in rng
 +            if(abs(i)+abs(j)+abs(k) != 0 and abs(i)+abs(j)+abs(k) != 1)
 +        ) : mengerSponge(x,​y,​z,​s,​it,​lvl+1)
 +</​code>​
  
 -> La pyramide de Sierpinski a été rendue selon la même méthode : [[pyramide_sierpinski]] -> La pyramide de Sierpinski a été rendue selon la même méthode : [[pyramide_sierpinski]]