Homepage
Ökosiedlung
Zirkus
Grillen
PoV Ray
PoV Ray Objekte(1)
Links
|
Dieser Würfel aus 125 Würfelchen wird mit
der daneben stehenden dreifach geschachtelten Schleife erzeugt. |
|
#declare Anzahl
= 5
union {
#declare
CubeXCount =
0
#while
(CubeXCount <
Anzahl)
#declare
CubeYCount =
0
#while
(CubeYCount <
Anzahl)
#declare
CubeZCount =
0
#while
(CubeZCount <
Anzahl)
box
{ 0, 1*0.8
translate
<CubeXCount, CubeYCount,
CubeZCount> }
#declare
CubeZCount =
CubeZCount+1
#end
#declare
CubeYCount =
CubeYCount+1
#end
#declare
CubeXCount =
CubeXCount+1
#end
texture {Aluminum}
} |
Das folgende Gewebe basiert auf einem Makro, das Dreiecksflächen zu
einem Wellenband zusammensetzt. |
|
|
#macro WellenBand(Laenge,Breite,Amplitude,Wellen,Dreiecke)
#local rFaktor=radians(Wellen*360)/Laenge;
#local
Step=Laenge/Dreiecke;
mesh
{ triangle
{ <0, Amplitude*sin(0*rFaktor),
-Breite/2>,
<0+Step/2,
Amplitude*sin((0+Step/2)*rFaktor),
Breite/2>,
<0,
Amplitude*sin(0*rFaktor),
Breite/2> } #local
xPos =
0;
#while
(xPos+Step <=
Laenge)
triangle
{ <xPos,
Amplitude*sin(xPos*rFaktor), -Breite/2>,
<xPos+Step/2,
Amplitude*sin((xPos+Step/2)
*rFaktor), Breite/2>,
<xPos+Step,
Amplitude*sin((xPos+Step)*rFaktor),
-Breite/2> }
triangle
{ <xPos+Step/2,
Amplitude*sin((xPos+Step/2)*rFaktor),
Breite/2>,
<xPos+Step,
Amplitude*sin((xPos+Step)*rFaktor),
-Breite/2>,
<xPos+Step*3/2,
Amplitude*sin((xPos+Step*3/2)*rFaktor),
Breite/2>
}
#local
xPos =
xPos+Step; // und das nächste Rechteck aus
2 Dreiecken
#end
triangle
{ <xPos,
Amplitude*sin((xPos)*rFaktor), -Breite/2>,
<xPos+Step/2,
Amplitude*sin((xPos+Step/2)
*rFaktor), Breite/2>,
<xPos+Step/2,
Amplitude*sin((xPos+Step/2)
*rFaktor), -Breite/2> } }
#end
Quellcode zu dieser Szene.
|
|