Descrizioni ed esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
English English English
Français français
Deutsch Deutsch

"translate" - move Indice Trasformazioni "scale"

Geometric Transformations

"rotate"  
rotazione, girare intorno di un'asse


rotation demo
rotate = rotazione,
girare intorno di un'asse

Sintassi generale:
rotate <wx,wx,wz>
questo causa una rotazione di un'oggetto intorno a un delle tre assi fundamentali
con un angolo di wx gradi in torno alle asse x,
con un angolo di wy gradi in torno alle asse y e
con un angolo di wz gradi in torno alle asse z.
Attenzione: Le rotazioni non sono applicati relativo di uno assi qualunque di simmetria local del centro di un oggetto!
Le rotazioni saranno applicati in ordine come sono scritto!

"rotate< 0,90, 0>" causa una rotazione intorno a l'asse y con 90 gradi (senso à "mano sinistra" positive!).
"rotate< 0,90,45>" primo causa una rotazione intorno a l'asse y con 90 gradi e poi un'altra rotazione intorno a l'asse z con 45 gradi.
"rotate< 0, 0,45> rotate< 0,90, 0>" primo causa una rotazione intorno a l'asse z con 45 gradi
e poi un'altra rotazione intorno a l'asse y con 90 gradi.

Attenzione:
Sequenze di rotazioni intorno a assi differenti
non sono commutativo - cioè non si puo scambiarle!

Cioè il resultato dipende al ordine d'applicazione! Qui è un enorme potenziale di frustrazioni se non siamo abbastanza prudenti!!!.

Samples rotation 640x480

Esempio 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

Esempio 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> }
//--------------------------------

Consiglio:
Possiamo usare "translate" anche con altri oggetti come sorgenti di luce ("light_source"), testure ("texture"), disegni di colori ("pigment") e con strutture simulate della superficie ("normal").


"translate" - move Indice Trasformazioni "scale"

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