nicolas liautaud

3d fractal illustration math

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()