Class JXG.Transformation
↳ JXG.Transformation
Creates a new transformation object. Do not use this constructor to create a transformation.
Use JXG.Board#create with
type Transformation instead.
Defined in: transformation.js.
Constructor Attributes | Constructor Name and Description |
---|---|
JXG.Transformation(board, type, params, is3D)
A transformation consists of a 3x3 matrix, i.e.
|
Method Attributes | Method Name and Description |
---|---|
<private> |
apply(p, 'self')
|
applyOnce(p)
|
|
bindTo(el)
Binds a transformation to a GeometryElement or an array of elements.
|
|
clone()
Create a copy of the transformation in case it is static, i.e.
|
|
melt(t)
Combine two transformations to one transformation.
|
|
meltTo(el)
Binds a transformation to a GeometryElement or an array of elements.
|
|
setAttribute(term)
Empty method.
|
|
setMatrix(board, type, params)
Set the transformation matrix for different types of standard transforms.
|
|
setMatrix3D(board, type, params)
Set the 3D transformation matrix for different types of standard transforms.
|
|
<deprecated> |
setProperty(term)
Unused
|
update()
Updates the numerical data for the transformation, i.e.
|
- Parameters:
- {JXG.Board} board
- The board the transformation is part of.
- {String} type
- Can be
- 'translate'
- 'scale'
- 'reflect'
- 'rotate'
- 'shear'
- 'generic'
- 'matrix'
- {Object} params
- The parameters depend on the transformation type
Translation matrix:
( 1 0 0) ( z ) ( a 1 0) * ( x ) ( b 0 1) ( y )
Scale matrix:
( 1 0 0) ( z ) ( 0 a 0) * ( x ) ( 0 0 b) ( y )
A rotation matrix with angle a (in Radians)
( 1 0 0 ) ( z ) ( 0 cos(a) -sin(a)) * ( x ) ( 0 sin(a) cos(a) ) ( y )
Shear matrix:
( 1 0 0) ( z ) ( 0 1 a) * ( x ) ( 0 b 1) ( y )
Generic transformation:
( a b c ) ( z ) ( d e f ) * ( x ) ( g h i ) ( y )
- is3D
Restricted to 2D transformations.
- Parameters:
- {JXG.GeometryElement} p
- element which is transformed
- {String} 'self'
- Apply the transformation to the initialCoords instead of the coords if this is set.
- Returns:
- {Array}
- Parameters:
- {JXG.Point|Array} p
The transformation is simply appended to the existing list of transformations of the object. It is not fused (melt) with an existing transformation.
- Parameters:
- {Array|JXG.Object} el
- JXG.Object or array of JXG.Object to which the transformation is bound to.
- See:
- JXG.Transformation.meltTo
If the transformation matrix is not static, null will be returned.
- Returns:
- {JXG.Transformation}
- Parameters:
- {JXG.Transform} t
- Transformation which is the left multiplicand
- Returns:
- {JXG.Transform} the transformation object.
In case the last transformation of the element and this transformation are static, i.e. the transformation matrices do not depend on other elements, the transformation will be fused into (multiplied with) the last transformation of the element. Thus, the list of transformations is kept small. If the transformation will be the first transformation ot the element, it will be cloned to prevent side effects.
- Parameters:
- {Array|JXG.Object} el
- JXG.Object or array of JXG.Objects to which the transformation is bound to.
- Parameters:
- {Object} term
- Key-value pairs of the attributes.
- Parameters:
- {JXG.Board} board
- {String} type
- Transformation type, possible values are 'translate', 'scale', 'reflect', 'rotate', 'shear', 'generic'.
- {Array} params
- Parameters for the various transformation types.
A transformation with a generic matrix looks like:
( a b c ) ( z ) ( d e f ) * ( x ) ( g h i ) ( y )
The transformation matrix then looks like:Translation matrix:
( 1 0 0) ( z ) ( a 1 0) * ( x ) ( b 0 1) ( y )
Scale matrix:
( 1 0 0) ( z ) ( 0 a 0) * ( x ) ( 0 0 b) ( y )
A rotation matrix with angle a (in Radians)
( 1 0 0 ) ( z ) ( 0 cos(a) -sin(a)) * ( x ) ( 0 sin(a) cos(a) ) ( y )
Shear matrix:
( 1 0 0) ( z ) ( 0 1 a) * ( x ) ( 0 b 1) ( y )
Generic transformation (9 parameters):
( a b c ) ( z ) ( d e f ) * ( x ) ( g h i ) ( y )
Matrix:
( ) ( z ) ( M ) * ( x ) ( ) ( y )
- Parameters:
- {JXG.Board} board
- {String} type
- Transformation type, possible values are 'translate', 'scale', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'shear', 'generic'.
- {Array} params
- Parameters for the various transformation types.
A transformation with a generic matrix looks like:
( a b c d) ( w ) ( e f g h) * ( x ) ( i j k l) ( y ) ( m n o p) ( z )
The transformation matrix then looks like:Translation matrix:
( 1 0 0 0) ( w ) ( a 1 0 0) * ( x ) ( b 0 1 0) ( y ) ( c 0 0 1) ( z )
Scale matrix:
( 1 0 0 0) ( w ) ( 0 a 0 0) * ( x ) ( 0 0 b 0) ( y ) ( 0 0 0 c) ( z )
rotateX: a rotation matrix with angle a (in Radians)
( 1 0 0 ) ( z ) ( 0 1 0 0 ) * ( x ) ( 0 0 cos(a) -sin(a)) * ( x ) ( 0 0 sin(a) cos(a) ) ( y )
rotateY: a rotation matrix with angle a (in Radians)
( 1 0 0 ) ( z ) ( 0 cos(a) 0 -sin(a)) * ( x ) ( 0 0 1 0 ) * ( x ) ( 0 sin(a) 0 cos(a) ) ( y )
rotateZ: a rotation matrix with angle a (in Radians)
( 1 0 0 ) ( z ) ( 0 cos(a) -sin(a) 0 ) * ( x ) ( 0 sin(a) cos(a) 0 ) ( y ) ( 0 0 0 1 ) * ( x )
rotate: a rotation matrix with angle a (in Radians) and normal n.
- Parameters:
- term
- Deprecated:
- Use setAttribute
- Returns:
- {JXG.Transform} returns pointer to itself