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

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

Sample scale 640x480

#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.
Sample mirror

#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>).

Attention! 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.


translate | rotate | scale | matrix | Scherung | transforms.inc | transform | Vektor-Transformationen
top

© Friedrich A. Lohmüller, 2014
www.f-lohmueller.de