Différences
Ci-dessous, les différences entre deux révisions de la page.
| 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]] | ||
