Shear_Trans( New_X, New_Y, New_Z)
Multible Shearing:
Former x axis points to the vector New_X, y axis points to New_Y
and z axis points to 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)
|
Multible Shearing + Translation:
The former x axis points to the vector New_X, the y axis points to New_Y
and the z axis points to New_Z and there is added a translation by the vector 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 )
Stretching in the direction of an axis "Axis"
by the factor "Amount"
Axial_Scale_Trans(< 2,0,2>, 0.5)
|
|
|
|
Rotate_Around_Trans
( <Rotate.x,Rotate.y,Rotate.z>, Center_of_Rotation )
Rotation with the rotation vector <Rotate.x,Rotate.y,Rotate.z>
around the center "Center_of_Rotation".
Rotate_Around_Trans(< 0, 0, 20>,
< 1.5,0.5, 1>) |
|
|
|
Axis_Rotate_Trans( Axis, Angle )
Rotation around an axis "Axis"
by an angle of "Angle" (in degrees).
Axis_Rotate_Trans(< 1,0,2>, 110) |
|
|
|
Reorient_Trans( Axis_1, Axis_2 )
Reorientation by rotation
of an axis "Axis_1" to a new axis "Axis_2".
Reorient_Trans(< 1,0,0>,
< 1,0.0,2>) |
|
|
|
Point_At_Axis( New_Y_Axis )
Reorientation by y axis points y axis along "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) |
|
|
|
No transformation, but often helpfull around transformations problems: (a built-in feature!)
min_extent( OBJECT_IDENTIFIER )
max_extent(OBJECT_IDENTIFIER)
This returns the minimum and maximum coordinates of a declared object or the corners of a bounding box for this object.
Attention: For CSG intersections and differences or isosurfaces
the bounding box does not represent the actual dimensions of the object!
|
|
Demo of the bounding box:
object{ Wire_Box(min_extent(OBJECT),max_extent(OBJECT),0.05)
pigment{ rgb<1,0.65,0>}
} |
Length in x of the bounding box:
#declare Length_X =
max_extent(OBJECT).x - min_extent(OBJECT).x; |
Center of OBJECT:
#declare Center =
0.5*( min_extent(OBJECT)+ max_extent(OBJECT)); |
|
|