Home
- POV-Ray Tutorial
Geometrische
Transformationen
- Inhalt
Elementare
Transformationen
- "translate< ... >"
- "rotate< ... >"
- "scale< ... >"
- Spiegelung
Weitere
Transformationen
- "matrix< ... >"
- Scherung
- transforms.inc
- "transform { ... }"
und "inverse"
Vektoren und
Transformationen
Insert Menu Zusatz
& Download
|
"scale" und Reflexion
Maßstab ändern, spiegeln
= skalieren, auch bezüglich einzelner Koordinatenrichtungen
|
#declare RedBall =
sphere{<0,0,0>,1
texture{ pigment{ color rgb<1,0,0>}
finish { diffuse 0.9 phong 1}}}
//--------------------- row in z direction ------
object{RedBall scale<1.00,1,1> translate<0,0, 0>}
object{RedBall scale<0.67,1,1> translate<0,0,-3>}
object{RedBall scale<0.33,1,1> translate<0,0,-6>}
object{RedBall scale<1.50,1,1> translate<0,0, 3>}
object{RedBall scale<2.50,1,1> translate<0,0, 6>}
// -------------------- row in x direction ----
object{RedBall scale<1,4.6,1> translate<-6,0, 0>}
object{RedBall scale<1,2.0,1> translate<-3,0, 0>}
object{RedBall scale<1,0.6,1> translate< 3,0, 0>}
object{RedBall scale<1,0.3,1> translate< 6,0, 0>}
//----------------------------------------------- |
scale = skalieren, Maßstab ändern
allgemeiner Syntax:
scale <sx,sy,sz>
dies bewirkt eine Multiplikation (Vergrößerung oder Verkleinerung) der Dimensionen
eines Objektes in den 3 Grundrichtungen. Dabei werden die x-Werte (Breite) mit sx,
die y-Werte (Höhe) mit syund die z-Werte (Tiefe) mit sz multipliziert.
|
#declare Wheel =
union{
// zu Details vgl. meine POV-Ray Beispiel-Szenen
}// end of object "Wheel"
//--------------------- 2 Wheels ------
object{Wheel translate<1,0, 0>}
object{Wheel translate<0,0,-3> scale <-1,1,1>}
//----------------------------------------------- |
Spiegelung an einer Koordinatenebene:
scale <-1,1,1>
dies bewirkt eine Spiegelung des Objektes an der yz-Ebene in x-Richtung.
|
Beispiele:
"scale<1,1,1>" bewirkt nichts, d.h. es wird alles 1:1 dargestellt.
"scale<1,0.5,1>" staucht in y-Richtung auf die halbe Höhe.
"scale<2,1,1>" streckt in x-Richtung auf die doppelte Breite.
"scale<-1,1,1>" spiegelt das Objekt in x-Richtung an der yz-Ebene.
Achtung: scale <2,0,0> z.B. verursacht eine
"Parse Warning: Illegal Value: Scale X by 0.0. Changed to 1.0."
Dies bedeutet: der Ausdruck wurde zu scale <2,1,1> geändert interpretiert,
denn das Multiplizieren einer Komponente mit Null macht keinerlei Sinn!
Es ist dringend empfohlen die Abkürzungen x, y, z zusammen mit scale zu vermeiden.
( In POV-Ray: x = <1,0,0>, y = <0,1,0>, z = <0,0,1>).
Man beachte:
Die Hintereinander-Ausführung von
Drehungen, Verschiebungen und Skalieren
sind im allgemeinen nicht kommutativ!
D.h. nicht vertauschbar, d.h. das Ergebnis ist von der Reihenfolge abhängig!
Diees ist bei zu hastigem Erstellen von Szenenbeschreibungen
eine häufig auftretende Fehlerquelle hohen Frust-Potentials!!!.
Hinweis:
"scale" kann sowohl auf Körper, als auch auf andere "Objekte" wie Texturen("texture"),
Farbmuster ("pigment"), scheinbare Oberflächenverformungen ("normal") angewandt werden.
|
|