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
 
                                           
"transform{ ... }" = zusammengefaßte Transformationen
"transform{ ... invers }" = invertierte Transformation

Mit diesem Kommando ist es möglich mehrere Transformationen wie "scale", "rotate", "translate" und/oder "matrix", in beliebiger Reihenfolge nacheinander ausgeführt, zu einem einzigen Transformations-Befehl zusammenzufassen.
Syntax:
 #declare MeineTransformation
 = transform{ Beliebige Folge v. Transformationen}
  (Transformationen hier: translate, rotate, scale, oder matrix.)
Anwendung wie folgt:
 object{ Mein_Objekt transform MeineTransformation}
  //oder durch
 object{ Mein_Objekt transform {MeineTransformation} }
  (mit oder ohne innere Klammern!)
und die umgekehrte Transformation:
 object{ Mein_Objekt transform {MeineTransformation inverse} } 
  (Benötigt die inneren Klammern!)

Hier eine Anwendung:
canoes
Für Details
zum Kanu-Bau
vgl. Beispiele!

Ein Objekt namens "Canoe" sowie die dazugehörenden Löcher in der Wasserfläche "Canoe_outside" sollen z.B. an 3 verschiedenen Positionen in verschiedenen Größbzw. Lagen bzw. Orientierungen platziert werden:

Dazu definiert man zuerst die Transformationen, welche zu den gewünschten Positionen führen:
//------------------------------------- Positionen:
#declare Canoe_Position1
  = transform { rotate< 0,30,0> translate<0.0,0,1>}
#declare Canoe_Position2
  = transform { rotate<-6,20,0> translate<1.5,0,5>}
#declare Canoe_Position3
  = transform { rotate< 5, 0,0> scale 0.55
                          translate< -0.3,0,-2.00>}
//-------------------------------------------------
Sodann werden die Kanus positioniert:

//---------------------- Kanus an ihren Positionen:
object{ Canoe transform Canoe_Position1}
object{ Canoe transform Canoe_Position2}
object{ Canoe transform Canoe_Position3}
//-------------------------------------------------
und ebenso die dazugehorenden Löcher in der Wasserfläche:
//-------------------------------------------------
difference{
plane{<0,1,0>>, 0 }
object{Canoe_outside transform Canoe_Position1 }
object{Canoe_outside transform Canoe_Position2 }
object{Canoe_outside transform Canoe_Position3 }
   texture{Polished_Chrome
                    normal {crackle 1 scale 5
                            turbulence 1
                            translate<,0,0,5>}
                    finish {ambient 0.35 diffuse 0.25
                            reflection 0.40}}
          }// end of difference
//----------------------------------------------- end

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

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