une fractale empilée
Pyramides à la manière du triangle de Sierpinski. A chaque itération, on remplace chaque pyramide par cinq pyramides plus petites empilées.
A chaque étape du processus, les vides qui se créent sont des pyramides inversées.
Les atomes pointus se multiplient aussi vite que leur taille diminue. De cinq en cinq. De une à cinq, de vingt-cinq à cent vingt-cinq, de 625 à 3125, de 15625 à
78125
Modèles 3D générés en python.
##
# Naive Sierpinski Pyramid generation in Maya
# nliautaud 2009
##
from maya.cmds import *
from math import *
def sierpinskiPyramid(x, y, z, sz, it, lvl=0):
if lvl==it:
polyPyramid(w=sz)
move(x, y, z)
rotate(0, '45deg', 0)
else:
r = sz / 4.0
h = sz / 2.84
childs = [[0,h/2,0],[r,-h/2,r],[r,-h/2,-r],[-r,-h/2,r],[-r,-h/2,-r]]
for c in childs:
sierpinskiPyramid(x+c[0],y+c[1],z+c[2],sz/2.0,it,lvl+1)
def run(it=0, sz=50.0):
if objExists('pPyramid1'):
select(all=True)
delete()
sierpinskiPyramid(0, 0, 0, sz, it)
select(cl=True)
viewFit()
def win():
window(t='Sierpinski Pyramid')
columnLayout(rs=20)
intSliderGrp(l='Iteration',
field=1, min=0, max=4, v=0,
cc=lambda x:run(int(x)))
showWindow()
run()
win()