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:
|
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 |
|