Element Transformation3D
JXG.Transformation
↳ Transformation3D
Define projective 3D transformations like translation, rotation, reflection.
Defined in: transformation.js.
Extends
JXG.Transformation.
Constructor Attributes | Constructor Name and Description |
---|---|
A transformation consists of a 4x4 matrix, i.e.
|
- Methods borrowed from class JXG.Transformation:
- apply, applyOnce, bindTo, clone, melt, meltTo, setAttribute, setMatrix, setMatrix3D, setProperty, update
Element Detail
Transformation3D
A transformation consists of a 4x4 matrix, i.e. it is a projective transformation.
Internally, a transformation is applied to an element by multiplying the 4x4 matrix from the left to the homogeneous coordinates of the element. JSXGraph represents homogeneous coordinates in the order (w, x, y, z). If the coordinate is a finite point, w=1. The matrix has the form
( a b c d) ( w ) ( e f g h) * ( x ) ( i j k l) ( y ) ( m n o p) ( z )where in general a=1. If b = c = d = 0, the transformation is called affine. In this case, finite points will stay finite. This is not the case for general projective coordinates.
-
This element has no direct constructor. To create an instance of this element you have to call JXG.Board#create
with type "transformation3d".
- Possible parent array combinations are:
-
{number|function|JXG.GeometryElement3D} parameters
- The parameters depend on the transformation type, supplied as attribute 'type'.
Possible transformation types are
- 'translate'
- 'scale'
- 'rotate'
- 'rotateX'
- 'rotateY'
- 'rotateZ'
Valid parameters for these types are:
- type:"translate"
- x, y, z Translation vector (three numbers or functions).
The transformation matrix for x = a, y = b, and z = c has the form:
( 1 0 0 0) ( w ) ( a 1 0 0) * ( x ) ( b 0 1 0) ( y ) ( c 0 0 c) ( z )
- type:"scale"
- scale_x, scale_y, scale_z Scale vector (three numbers or functions).
The transformation matrix for scale_x = a, scale_y = b, scale_z = c has the form:
( 1 0 0 0) ( w ) ( 0 a 0 0) * ( x ) ( 0 0 b 0) ( y ) ( 0 0 0 c) ( z )
- type:"rotate"
- a, n angle (in radians), normal. Rotate with angle a around the normal vector n.
- type:"rotateX"
- a angle (in radians). Rotate with angle a around the normal vector (1, 0, 0).
- type:"rotateY"
- a angle (in radians). Rotate with angle a around the normal vector (0, 1, 0).
- type:"rotateZ"
- a angle (in radians). Rotate with angle a around the normal vector (0, 0, 1).
- Throws:
- {Exception}
- If the element cannot be constructed with the given parent objects an exception is thrown.
Attributes borrowed from other Elements
Fields borrowed from other Elements
Methods borrowed from other Elements
- Methods borrowed from class JXG.Transformation:
- apply, applyOnce, bindTo, clone, melt, meltTo, setAttribute, setMatrix, setMatrix3D, setProperty, update
Events borrowed from other Elements