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)
A transformation consists of a 3x3 matrix, i.e.
|
Method Attributes | Method Name and Description |
---|---|
<private> |
apply(p, 'self')
Transform a GeometryElement:
First, the transformation matrix is updated, then do the matrix-vector-multiplication.
|
applyOnce(p)
Applies a transformation once to a GeometryElement or an array of elements.
|
|
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, x,y, scale_x,scale_y, line|point_pair|"four, angle,x,y|angle,[x,y], shear_x,shear_y, a,b,c,d,e,f,g,h,i)
Set the 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 new circle is drawn on.
- {String} type
- Can be
- 'translate'
- 'scale'
- 'reflect'
- 'rotate'
- 'shear'
- 'generic'
- {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 )
- 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.Object 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.
These are
- {Array} x,y
- Shift vector (number or function) in case of 'translate'.
- {Array} scale_x,scale_y
- Scale vector (number or function) in case of 'scale'.
- {Array} line|point_pair|"four
- coordinates" In case of 'reflect' the parameters could be a line, a pair of points or four number (or functions) p_x, p_y, q_x, q_y, determining a line through points (p_x, p_y) and (q_x, q_y).
- {Array} angle,x,y|angle,[x,y]
- In case of 'rotate' the parameters are an angle or angle function, returning the angle in Radians and - optionally - a coordinate pair or a point defining the rotation center. If the rotation center is not given, the transformation rotates around (0,0).
- {Array} shear_x,shear_y
- Shear vector (number or function) in case of 'shear'.
- {Array} a,b,c,d,e,f,g,h,i
- Nine matrix entries (numbers or functions) for a generic
projective transformation in case of 'generic'.
A transformation with a generic matrix looks like:
( a b c ) ( z ) ( d e f ) * ( x ) ( g h i ) ( y )
- Parameters:
- term
- Deprecated:
- Use setAttribute
- Returns:
- {JXG.Transform} returns pointer to itself