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

"translate" - verschieben Themen "scale" - skalieren

Geometrische Transformationen

"rotate"   = rotieren, drehen
um eine oder mehrere Koordinatenachsen


rotation demo
rotate = rotieren, drehen
allgemeiner Syntax:
rotate <wx,wx,wz>
dies bewirkt eine Rotation (Drehung) eines Objektes um die jeweilige Koordinatenachse der 3 Grundrichtungen
um einen Winkel von wx Grad in x-Achse
um einen Winkel von wy Grad in y-Achse und
um einen Winkel von wz Grad in z-Achse.
Achtung: Die Drehung erfolgt nicht um eventuelle Symmetrieachsen durch den Mittelpunkt des Objektes und die Drehungen werden in der aufgezählten Reihenfolge ausgeführt!

"rotate< 0,90, 0>" bewirkt eine Drehung um die y-Achse um 90° (linkshändig positiv).
"rotate< 0,90,45>" bewirkt zuerst eine Drehung um die y-Achse um 90°
und dann eine Drehung um die z-Achse um 45°
"rotate< 0, 0,45> rotate< 0,90, 0>" bewirkt zuerst eine Drehung um die z-Achse um 45°
und dann eine Drehung um die y-Achse um 90°

Man beachte:
Die Hintereinander-Ausführung von Drehungen
um verschiedene Achsen ist nicht kommutativ!

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

Samples rotation 640x480

Beispiel 1:

#declare YellowSmarty =
sphere{<0,0,0>,1 
       scale <1,0.5,1> 
       translate<4,0,0>
       texture{
          pigment{color rgb<1,0.65,0>}
          finish {ambient 0.15 
                  diffuse 0.85  
                  phong 1}}} //--
object{YellowSmarty rotate<0,0, 90>}
object{YellowSmarty rotate<0,0,105>}
object{YellowSmarty rotate<0,0,120>}
object{YellowSmarty rotate<0,0,135>}
object{YellowSmarty rotate<0,0,150>}
object{YellowSmarty rotate<0,0,165>}
object{YellowSmarty rotate<0,0,180>}
//---------------------------------
#declare Zylinder_1 =
cylinder{<0,0,0>,<0,3,0>,0.2
         translate<0,0,5>
         texture{
           pigment{color NeonPink}
           finish {ambient 0.15 
                   diffuse 0.85
                   phong 1}}} //--
object{Zylinder_1 rotate<0,  0,0>}
object{Zylinder_1 rotate<0, 15,0>}
object{Zylinder_1 rotate<0, 30,0>}
object{Zylinder_1 rotate<0, 45,0>}
object{Zylinder_1 rotate<0, 60,0>}
object{Zylinder_1 rotate<0, 75,0>}
object{Zylinder_1 rotate<0, 90,0>}
object{Zylinder_1 rotate<0,105,0>}
object{Zylinder_1 rotate<0,120,0>}
object{Zylinder_1 rotate<0,135,0>}
object{Zylinder_1 rotate<0,150,0>}
object{Zylinder_1 rotate<0,165,0>}
object{Zylinder_1 rotate<0,180,0>}
//----------------------------------
Samples rotation 640x480

Beispiel 2:

#declare Ring= 
union{
object{YellowSmarty rotate<0,  0,0>}
object{YellowSmarty rotate<0, 30,0>}
object{YellowSmarty rotate<0, 60,0>}
object{YellowSmarty rotate<0, 90,0>}
object{YellowSmarty rotate<0,120,0>}
object{YellowSmarty rotate<0,150,0>}
object{YellowSmarty rotate<0,180,0>}
object{YellowSmarty rotate<0,210,0>}
object{YellowSmarty rotate<0,240,0>}
object{YellowSmarty rotate<0,270,0>}
object{YellowSmarty rotate<0,300,0>}
object{YellowSmarty rotate<0,330,0>}
cylinder{<0,-1,0>,<0,1,0>,0.2
         texture{
            pigment{color NeonPink}
            finish {ambient 0.15 
                    diffuse 0.85 
                    phong 1} } }
}// end of union //---------------
 object{Ring}
 object{Ring translate<4,1,4> }
//--------------------------------

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


"translate" - verschieben Themen "scale" - skalieren

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