API reference - Class Matrix2d

Notation used in Ruby API documentation

Description: A 2d matrix object used mainly for representing rotation and shear transformations.

This object represents a 2x2 matrix. This matrix is used to represent affine transformations in the 2d space mainly. It can be decomposed into basic transformations: mirroring, rotation and shear. In that case, the assumed execution order of the basic transformations is mirroring at the x axis, rotation, magnification and shear.

This class was introduced in version 0.22.

Public constructors

new Matrix2dnewCreate a new Matrix2d representing a unit transformation
new Matrix2dnew(double m)Create a new Matrix2d representing an isotropic magnification
new Matrix2dnew(double mx,
double my)
Create a new Matrix2d representing an anisotropic magnification
new Matrix2dnew(const DCplxTrans arg1)Create a new Matrix2d from the given complex transformation@args t
new Matrix2dnew(double m11,
double m12,
double m21,
double m22)
Create a new Matrix2d from the four coefficients
new Matrix2dnewc(double mag,
double rotation,
bool mirror)
Create a new Matrix2d representing an isotropic magnification, rotation and mirroring
new Matrix2dnewc(double shear,
double mx,
double my,
double rotation,
bool mirror)
Create a new Matrix2d representing a shear, anisotropic magnification, rotation and mirroring

Public methods

[const]Matrix2d*(const Matrix2d arg1)Product two matrices.
[const]Matrix2d+(const Matrix2d arg1)Sum two matrices.
[const]doubleangleReturns the rotation angle of the rotation component of this matrix.
[const]voidassign(const Matrix2d other)Assign the contents of another object to self
[const]DCplxTranscplx_transConverts this matrix to a complex transformation (if possible).
voidcreateEnsures the C++ object is created
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
[const]Matrix2ddupCreates a copy of self
[const]Matrix2dinvertedThe inverse of this matrix.
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference
[const]boolis_mirror?Returns the mirror flag of this matrix.
[const]doublem(int i,
int j)
Gets the m coefficient with the given index.
[const]doublem11Gets the m11 coefficient.
[const]doublem12Gets the m12 coefficient.
[const]doublem21Gets the m21 coefficient.
[const]doublem22Gets the m22 coefficient.
[const]doublemag_xReturns the x magnification of the magnification component of this matrix.
[const]doublemag_yReturns the y magnification of the magnification component of this matrix.
[const]doubleshear_angleReturns the magnitude of the shear component of this matrix.
[const]stringto_sConvert the matrix to a string.
[const]DPointtrans(const DPoint arg1)Transforms a point with this matrix.

Detailed description

[const] Matrix2d *(const Matrix2d arg1)

Description: Product two matrices.

m:The other matrix.
Returns:The product self*m

@arg m

[const] Matrix2d +(const Matrix2d arg1)

Description: Sum two matrices.

m:The other matrix.
Returns:The sum self+m

@arg m

[const] double angle

Description: Returns the rotation angle of the rotation component of this matrix.

Returns:The angle in degree.

The matrix is decomposed into basic transformations assuming an execution order of mirroring at the x axis, rotation, magnification and shear.

[const] void assign(const Matrix2d other)

Description: Assign the contents of another object to self

This method assigns the contents of another object to self. This is a deep copy that does not only copy the reference but the actual content.

[const] DCplxTrans cplx_trans

Description: Converts this matrix to a complex transformation (if possible).

Returns:The complex transformation.

This method is successful only if the matrix does not contain shear components and the magnification must be isotropic.

void create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

void destroy

Description: Explicitly destroy the object

Explicitly destroy the object on C++ side if it was owned by the Ruby interpreter. Subsequent access to this object will throw an exception. If the object is not owned by Ruby, this method will do nothing.

[const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

[const] Matrix2d dup

Description: Creates a copy of self

[const] Matrix2d inverted

Description: The inverse of this matrix.

Returns:The inverse of this matrix

[const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

[const] bool is_mirror?

Description: Returns the mirror flag of this matrix.

Returns:True if this matrix has a mirror component.

The matrix is decomposed into basic transformations assuming an execution order of mirroring at the x axis, rotation, magnification and shear.

[const] double m(int i,int j)

Description: Gets the m coefficient with the given index.

Returns:The coefficient [i,j]

[const] double m11

Description: Gets the m11 coefficient.

Returns:The value of the m11 coefficient

[const] double m12

Description: Gets the m12 coefficient.

Returns:The value of the m12 coefficient

[const] double m21

Description: Gets the m21 coefficient.

Returns:The value of the m21 coefficient

[const] double m22

Description: Gets the m22 coefficient.

Returns:The value of the m22 coefficient

[const] double mag_x

Description: Returns the x magnification of the magnification component of this matrix.

Returns:The magnification factor.

The matrix is decomposed into basic transformations assuming an execution order of mirroring at the x axis, magnification, shear and rotation.

[const] double mag_y

Description: Returns the y magnification of the magnification component of this matrix.

Returns:The magnification factor.

The matrix is decomposed into basic transformations assuming an execution order of mirroring at the x axis, magnification, shear and rotation.

[static] new Matrix2d new

Description: Create a new Matrix2d representing a unit transformation

[static] new Matrix2d new(double m)

Description: Create a new Matrix2d representing an isotropic magnification

m:The magnification

[static] new Matrix2d new(double mx,double my)

Description: Create a new Matrix2d representing an anisotropic magnification

mx:The magnification in x direction
my:The magnification in y direction

[static] new Matrix2d new(const DCplxTrans arg1)

Description: Create a new Matrix2d from the given complex transformation@args t

t:The transformation from which to create the matrix (not taking into account the displacement)

[static] new Matrix2d new(double m11,double m12,double m21,double m22)

Description: Create a new Matrix2d from the four coefficients

[static] new Matrix2d newc(double mag,double rotation,bool mirror)

Description: Create a new Matrix2d representing an isotropic magnification, rotation and mirroring

mag:The magnification in x direction
rotation:The rotation angle (in degree)
mirror:The mirror flag (at x axis)

This constructor is provided to construct a matrix similar to the complex transformation. This constructor is called 'newc' to distinguish it from the constructors taking matrix coefficients ('c' is for composite). The order of execution of the operations is mirror, magnification, rotation (as for complex transformations).

[static] new Matrix2d newc(double shear,double mx,double my,double rotation,bool mirror)

Description: Create a new Matrix2d representing a shear, anisotropic magnification, rotation and mirroring

shear:The shear angle
mx:The magnification in x direction
my:The magnification in y direction
rotation:The rotation angle (in degree)
mirror:The mirror flag (at x axis)

The order of execution of the operations is mirror, magnification, shear and rotation. This constructor is called 'newc' to distinguish it from the constructor taking the four matrix coefficients ('c' is for composite).

[const] double shear_angle

Description: Returns the magnitude of the shear component of this matrix.

Returns:The shear angle in degree.

The matrix is decomposed into basic transformations assuming an execution order of mirroring at the x axis, rotation, magnification and shear. The shear basic transformation will tilt the x axis towards the y axis and vice versa. The shear angle gives the tilt angle of the axes towards the other one. The possible range for this angle is -45 to 45 degree.

[const] string to_s

Description: Convert the matrix to a string.

Returns:The string representing this matrix

[const] DPoint trans(const DPoint arg1)

Description: Transforms a point with this matrix.

p:The point to transform.
Returns:The product if self and the point p

@arg p