Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmüller
Transformations géométriques avec POV-Ray -
English English English
Italiano Italiano
Deutsch Deutsch

Page d'Accueil
- POV-Ray Tutoriel
  Transformations
  géométriques
   - Index

    Transformations
    élémentaires
    - "translate<  ... >"
    - "rotate<  ... >"
    - "scale<  ... >"
    - Réflexion

    Autres
    Transformations
    - "matrix<  ... >"
    - Cisaillement
    - transforms.inc

    - "transform{ ...}"
       et "inverse"

    Vecteurs et
    Transformations

    Insert Menu Add-on
      & téléchargement
 
                                           

"rotate" = tourner, rotation  
autour d'un ou de plusieurs axes du systeme de coordonnées


rotation demo
rotate = tourner, rotation
syntaxe générale :
rotate <wx,wx,wz>
Ceci effectue la rotation d'un objet autour d'un axe de coordonnées appropriées dans les trois directions de base
angle de wx degrés autour de l'axe »x«,
angle de wy degrés autour de l'axe »y«,
angle de wz degrés autour de l'axe »z«.
Attention: Les rotations ne sont pas appliquées relativement à un axe local de symétrie à travers le centre d'un objet et celles-ci sont appliquées dans l'ordre décrit !

"rotate< 0,90, 0>" effectue une rotation autour de l'axe »y« de 90 degrés (main gauche positive).
"rotate< 0,90,45>" effectue d'abord une rotation autour de l'axe »y« de 90 degrés et ensuite une rotation autour l'axe »z« de 45 degrés.
"rotate< 0, 0,45> rotate< 0,90, 0>" effectue d'abord une rotation de 45 degrés autour de l'axe »z«.
Après cela suivie d'une rotation autour de l'axe »y« de 90 degrés.

Attention! Faites attention :
Les rotations séquentielles autour de différents axes
ne sont pas interchangeable !

Ceci signifie que les résultats dépendent de l'ordre dans lequel on appliquent ces rotations!
Un énorme potentiel delle frustrations, si on ne fait pas assez attention !!!!.

Attention! Faites attention :
Une rotation par "rotate < , , >" est effectue toujours autour des axes de coordonnées!
Se nous voulons tourner un objet avec le centre à <x1,y1,z1> autour des directions de x, y e/ou z avec rotate<xrot,yrot,zrot> relatif à son centre, nous pouvons réaliser cet effet comme cela:
translate -<x1,y1,z1> // d'abord pousser l'objet vers <0,0,0>! Attention: minus!
rotate<xrot,yrot,zrot>  // puis pivoter l'objet et ...
translate  <x1,y1,z1>  // alors pousser l'objet retour!

Samples rotation 640x480

Exemple 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 { diffuse 0.9
                   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 { diffuse 0.9
                    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

Exemple 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 { diffuse 0.9
                     phong 1} } }
}// end of union //---------------
 object{Ring}
 object{Ring translate<4,1,4> }
//--------------------------------

Astuce :
"rotate" peut aussi être utilisé avec des formes géométriques ainsi qu'avec les autres objets tels que sources lumineuses, textures ("texture"), modèle de couleur ("pigment") et des déformations simulées de surface ("normal").


translate | rotate | scale | matrix | cisaillement | transforms.inc | transform | transformations de vecteurs
top

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