Sierpinskyn tetraedri

Perustetraedri

Pakkauksen plottools funktoilla voidaan helposti luoda geometrisia olioita. Tetraedri saadaan komennolla

tetrahedron

Aloitetaan lataamalla grafiikkapakkaukset.

> with(plottools):with(plots):

> perustetra:=tetrahedron([0,0,0],1):

> display(perustetra,scaling=constrained);

[Maple Plot]

Perustetran pohjakolmion kärjet:

> kolmionkarjet:=[0,2*sqrt(2)/sqrt(3)],[-sqrt(2),-sqrt(2)/sqrt(3)],[sqrt(2),-sqrt(2)/sqrt(3)],[0,2*sqrt(2)/sqrt(3)];

[Maple Math]

> display(curve([[0,2*sqrt(2)/sqrt(3)],[-sqrt(2),-sqrt(2)/sqrt(3)],[sqrt(2),-sqrt(2)/sqrt(3)],[0,2*sqrt(2)/sqrt(3)]],color=red,thickness=5));

[Maple Plot]

Origo on pohjatahkon projektion mediaanien leikkauspistessä. Itse asiassa tetraedri sijaitsee siten, että avaruuskoordinaatiston origo on tetraedrin "keskipisteessä".

Tetraedrin kärjet ovat:

> karjet:={[0,0,sqrt(3)],[0,2*sqrt(2)/sqrt(3),-1/sqrt(3)],[-sqrt(2),-sqrt(2)/sqrt(3),-1/sqrt(3)],[sqrt(2),-sqrt(2)/sqrt(3),-1/sqrt(3)]};

[Maple Math]

>

Tetraedin kutistus ja siirto kärkiin (iteraatioaskel)

> siirrot:=map(x->1/2*x,karjet);

[Maple Math]

Skaalataan perustetra kertoimella 1/2 kunkin sivun suunnassa ja siirretään tämä tetraedrin puolikas vuorollaan

kuhunkin perustetran kärkeen. Siirtovektoreina on (1/2)*(O,K), missä K on kärki.

map on tehokas operaattori, jonka avulla sama asia voidaan tehdä yhtäaikaa monelle kohteelle.

> pikkutetrat:={seq(translate(scale(perustetra,1/2,1/2,1/2),op(t)),t=siirrot)}:

> display(pikkutetrat,thickness=2,scaling=constrained);

[Maple Plot]

Kun tartutaan hiirellä kuvaan ja pyöritetään sitä, nähdään havainnollisesti kärkiin siirretyt pikkutetrat ja keskelle jäävä aukko.

Jatketaan samaalla tavoin, iteroidaan

Toistetaan edellä tehty operaatio kuhunkin pikkutetraan.

> siirrot:=map(x->1/2*x,karjet):

> N:=3: # Iteraatioiden lukumäärä

> for k from 2 to N do
uudetsiirrot:=map(x->x/2^k, karjet):
siirrot:={seq(seq(t+tuusi,t=siirrot),tuusi=uudetsiirrot)}:
od:

> tetrat:={seq(translate(scale(perustetra,1/2^N,1/2^N,1/2^N),op(t)),t=siirrot)}:

> display(tetrat);

[Maple Plot]

Tätä voidaan taas pyöritellä, suurennella ym. (html-versiossa ei tietenkään voida).

Siinäpä se kansikuva on.

Mikään ei estä iteroimasta pitemmälle. Tarvitsee vain mennä edellä riville siirrot:= ... ja painaa ENTER:iä,

sen jälkeen vaihdetaan N:n tilalle vaikkapa 4 ja painellaan ENTER:iä.

Lähde: Heck: Introduction to Maple