Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
English English English
Italiano Italiano
Français français

"rotate" - rotieren, drehen Themen "matrix" - scheren, etc.

Geometrische Transformationen

"scale"   = skalieren, Maßstab ändern, spiegeln
auch bezüglich einzelner Koordinatenrichtungen


Sample scale 640x480

scale = skalieren, Maßstab ändern
allgemeiner Syntax:
scale <sx,sx,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.
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 z-Richtung an der xy-Ebene.

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! Dies ist bei zu hastigem Erstellen von Szenenbeschreibungen eine häufig auftretende Fehlerquelle hohen Frust-Potentials!!!.

// zu obigem Bild:
#declare RedBall =
 sphere{<0,0,0>,1
      texture{pigment{color Red}
         finish {ambient 0.15 diffuse 0.85 phong 1}}}
//------------------------------- Reihe in z-Richtung --------------
object{RedBall scale <1.00,1,1> translate <0,0, 0>} //am Nullpunkt!
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>}
// ------------------------------- Reihe in x-Richtung -------------
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>}
//------------------------------------------------------------------

Hinweis:
"scale" kann sowohl auf Körper, als auch auf andere Objekte wie Lichtquellen, aber auch Texturen("texture"), Farbmuster ("pigment"), scheinbare Oberflächenverformungen ("normal") angewandt werden.


"rotate" - rotieren, drehen Themen "matrix" - scheren, etc.

© Friedrich A. Lohmüller, 2004
email email: (legacy email redacted)
homepage:www.f-lohmueller.de