JavaScript must be enabled in order for you to use JSXGraph and JSXGraph reference. However, it seems JavaScript is either disabled or not supported by your browser.

Class Index | File Index

Elements
Classes

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.

Class Summary
Constructor Attributes Constructor Name and Description
 
JXG.Transformation(board, type, params)
A transformation consists of a 3x3 matrix, i.e.
Method Summary
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.
 
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.
 
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.
 
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>  
Unused
 
Updates the numerical data for the transformation, i.e.
Class Detail
JXG.Transformation(board, type, params)
A transformation consists of a 3x3 matrix, i.e. it is a projective transformation.
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 )


Method Detail
<private> {Array} apply(p, 'self')
Transform a GeometryElement: First, the transformation matrix is updated, then do the matrix-vector-multiplication.
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}

applyOnce(p)
Applies a transformation once to a GeometryElement or an array of elements. If it is a free point, then it can be dragged around later and will overwrite the transformed coordinates.
Parameters:
{JXG.Point|Array} p

bindTo(el)
Binds a transformation to a GeometryElement or an array of elements. In every update of the GeometryElement(s), the transformation is executed. That means, in order to immediately apply the transformation after calling bindTo, a call of board.update() has to follow.

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

{JXG.Transformation} clone()
Create a copy of the transformation in case it is static, i.e. if the transformation matrix does not depend on other elements.

If the transformation matrix is not static, null will be returned.

Returns:
{JXG.Transformation}

{JXG.Transform} melt(t)
Combine two transformations to one transformation. This only works if both of transformation matrices consist of numbers solely, and do not contain functions. Multiplies the transformation with a transformation t from the left. i.e. (this) = (t) join (this)
Parameters:
{JXG.Transform} t
Transformation which is the left multiplicand
Returns:
{JXG.Transform} the transformation object.

meltTo(el)
Binds a transformation to a GeometryElement or an array of elements. In every update of the GeometryElement(s), the transformation is executed. That means, in order to immediately apply the transformation after calling meltTo, a call of board.update() has to follow.

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.
See:
JXG.Transformation#bindTo

setAttribute(term)
Empty method. Unused.
Parameters:
{Object} term
Key-value pairs of the attributes.

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.
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 )

setProperty(term)
Unused
Parameters:
term
Deprecated:
Use setAttribute

{JXG.Transform} update()
Updates the numerical data for the transformation, i.e. the entry of the subobject matrix.
Returns:
{JXG.Transform} returns pointer to itself

Documentation generated by JsDoc Toolkit 2.4.0 on Fri Nov 08 2024 12:13:06 GMT+0100 (Mitteleuropäische Normalzeit)