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>) |
|
|
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> ) |
|
|
|
Axial_Scale_Trans( Axis, Amount )
Extension en direction d'un axe "Axis"
par le facteur "Amount"
Axial_Scale_Trans(< 2,0,2>, 0.5)
|
|
|
|
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>) |
|
|
|
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) |
|
|
|
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>) |
|
|
|
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 )} |
|
|
|
Center_Trans( OBJECT , axis )
a) Centers a declared object 'OBJECT' in y direction.
Center_Trans( OBJECT , y ) |
|
|
a) Centers a declared object 'OBJECT' in x and y direction.
Center_Trans(OBJECT, x+y ) |
|
|
a) Centers a declared object 'OBJECT' in x, y and z direction.
Center_Trans(OBJECT,x+y+z) |
|
|
|
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 !
|
|
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)); |
|
|