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] 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]] |