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
      - Shear_Trans(...)
      - Matrix_Trans(...)
      - Axial_Scale_Tr.
      - Rotate_Around
      - Axis_Rotate_Tr.
      - Reorient_Trans
      - Point_At_Trans
      - Center_Trans
      - min_+max_extent

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

    Vecteurs et
    Transformations
    - vrotate
    - vaxis_rotate
    - vtransform
    - vinv_transform
    - vturbulence
    - vnormalize
    - vcross
    - vdot()
    - vlength()
    - VAngle(), VAngleD()
    - VProject_Axis

    Insert Menu Add-on
      & téléchargement
 
                                           
Le transformations de "transforms.inc"
Quelques combinations additionnelles de transformations tres pratiques sont definées comme macros dans le fichier include "transforms.inc". Pour utiliser ces macros on doit insérer dans le texte (au début) :
#include "transforms.inc"

Shear_Trans( New_X, New_Y, New_Z)
Cisaillement multiple :
L'ancien axe x indique vers le vecteur New_X, l'axe y vers New_Y et l'axe z vers New_Z.
 Shear_Trans(< 2, 0.5,   0>,
             < 0, 0.5,   0>,
             < 0, 0.5, 0.5>) 
Shear_Trans example

Matrix_Trans( New_X, New_Y, New_Z, D)
Cisaillement multiple + Translation :
L'ancien axe x indique vers le vecteur New_X, l'axe y vers New_Y et l'axe z vers New_Z et une translation additionelle par le vecteur D.
 Matrix_Trans(< 2, 0.5,  0>,
              < 0, 0.5,  0>,
              < 0, 0.5,0.5>,
              <-0.5, 0, 0> ) 
Matrix_Trans example

Axial_Scale_Trans( Axis, Amount )
Extension en direction d'un axe "Axis" par le facteur "Amount"
 Axial_Scale_Trans(< 2,0,2>, 0.5)
               
Axial_Scale_Trans example

Rotate_Around_Trans
( <Rotate.x,Rotate.y,Rotate.z>, Center_of_Rotation )
Rotation avec le vecteur de rotation <Rotate.x,Rotate.y,Rotate.z> autour du center "Center_of_Rotation".
Rotate_Around_Trans(<   0,  0, 20>,
                    < 1.5,0.5,  1>) 
Rotate_Around_Trans example

Axis_Rotate_Trans( Axis, Angle )
Rotation autour d'un axe "Axis" par le angle de "Angle"(en degrés).
Axis_Rotate_Trans(< 1,0,2>, 110) 
Axis_Rotate_Trans example

Reorient_Trans( Axis_1, Axis_2 )
Réorientation par rotation du axe "Axis_1" au axe nouveau "Axis_2".
Reorient_Trans(< 1,0,0>,
               < 1,0.0,2>) 
 Reorient_Trans example

Point_At_Axis( New_Y_Axis )
Réorientation par une rotation du axe y vers "New_Y_Axis".
#declare New_Y_Axis = <0.25,1,0.15>;
object{ MyObject
        Point_At_Trans( New_Y_Axis )}
Point_At_Axis example

Center_Trans( OBJECT , axis )
a) Centers a declared object 'OBJECT' in y direction.
Center_Trans( OBJECT , y )
Center_Trans example
a) Centers a declared object 'OBJECT' in x and y direction.
Center_Trans(OBJECT, x+y )
Center_Trans example
a) Centers a declared object 'OBJECT' in x, y and z direction.
Center_Trans(OBJECT,x+y+z)
Center_Trans example

Pas de transformation, mais souvent serviables autour des problèmes de transformations : (une fonctionnalité intégrée!)
min_extent( OBJECT_IDENTIFIER )
max_extent(OBJECT_IDENTIFIER)

Cela retourne le minimum et le maximum des oordonnées d'un objet déclaré ou les coins d'une 'bounding box' pour cet objet.
Attention: Pour CSG intersections et différences ou les isosurfaces la bounding box ne représente pas les dimensions réelles de l'objet !
Center_Trans example
Demo bounding box:
object{ Wire_Box(min_extent(OBJECT),max_extent(OBJECT),0.05)
        pigment{ rgb<1,0.65,0>}
      } 
Longueur en x de la 'bounding box':
#declare Length_X =
                max_extent(OBJECT).x - min_extent(OBJECT).x;
Centre de l'OBJECT:
#declare Center =
              0.5*( min_extent(OBJECT)+ max_extent(OBJECT));

Pour les transformations représentées ici on peut utiliser mes modèles de texte de la section "Shearing & transform" en mon "Insert Menu Add-on".

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

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