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
|
|
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.
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 !!!!.
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!
|
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>}
//---------------------------------- |
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").
|
|