Home
- POV-Ray Tutorial
- POV-Ray Beispiele
Inhaltsübersicht
- Geometrie
- Bauern-Figur
- Drahtgitter-Würfel
- Oktagon
- Eiform
- Star - Stern
- Optische Linse
- Schachbrett
- Rundkolben-Form
- Erlenmeyerkolben-Form
- Zwei-Zylinder-Blob
- Regulärer Tetraeder
- Penrose-Dreieck
- Yin & Yang
- Fischblase
- 3fach Fischblase
- Dreipass
- Architektur
- Technik
|
|
Star - Stern
Die Konstruktion eines Sterns.
Objekte: "box".
Methoden: "union{...}", "intersection", "inverse", "#while".
Klicken Sie hier für ein Beispiel!
|
Die Konstruktion Schritt für Schritt:
|
Wir verwenden als Ausgangsform einen Quader ("box").
Um eine klar definierte Länge der Strahlen der Sternfigur zu erhalten
wird dieser Quader um den Faktor Wurzel aus 2 vergrößert.
(Dann sind die Diagonalen seiner Flächen 2 Einheiten lang!
|
box { <-1,-1,-1>,< 1,1,1>
scale <1,1,1>*sqrt(2)
}
|
Der Quader wird um die z-Achse um 45 Grad gedreht.
|
box { <-1,-1,-1>,< 1,1,1>
scale <1,1,1>*sqrt(2)
rotate<0,0,45>
}
|
Dann wird der Quader in y-Richtung gestaucht und
anschliesend um die x-Achse um 45 Grad gedreht.
Diese Form wird danach als neues Objekt "Ray_Profile" deklariert.
|
#declare Ray_Profile =
box { <-1,-1,-1>,< 1,1,1>
scale <1,1,1>*sqrt(2)
rotate<0,0,45>
scale <1,0.36,1>
rotate<45,0,0>
} |
Das neue Objekt wird an der xy-Ebene
in z-Richtung mittels "scale<1,1,-1>" gespiegelt
und dann wird die Schittmenge ("intersection") der beiden
so entstandenen Körper gebildet.
|
intersection{
object{ Ray_Profile }
object{ Ray_Profile scale<1,1,-1>}
} |
Um auch Sterne mit einer ungeraden Anzahl von Strahlen
bilden zu können muß eine Hälfte dieser Form durch Subtraktion eines Quaders
(=intersection mit dem Inversen) beseitigt werden. Die entstehende Figur
bildet einen Strahl des Sterns und wird daher als neues Objekt "'Ray" deklariert.
|
#declare Ray =
intersection{
object{ Ray_Profile }
object{ Ray_Profile scale<1,1,-1>}
box{<-2,-1,-1>,<0,1,1> inverse}
} |
Die Stahlen des Sterns werden nun mit einer
While-Schleife um die y-Achse gedreht angeordnet.
Beim rechten Bild wurde der Strahl mittels " scale<1,0,5,0.5>
" schlanker gemacht.
Der so entstandene Stern besitzt einen Radius von 2 Einheiten.
|
union{
#local Nr = 0; // start
#local EndNr = 5; // end
#while (Nr < EndNr)
object{Ray rotate<0,Nr*360/EndNr,0>}
#local Nr = Nr + 1;// next Nr
#end // ------------- end of loop
rotate<0,0,0>
translate<0,0,0>
} // end of union |
|