Mono.Cairo
1.0.5000.0
2.0.0.0
System.Object
System.ICloneable
Defines the Matrix object for transformations and translations.
2D affine transform matrices are 3x3 of the form:
[ xx yx tx ]
[ xy yy ty ]
[ 0 0 1 ]
As you can see, the bottom row is always [0 0 1]. The Cairo.Matrix implementation deals with the top 6 values only.
Cairo.Graphics g;
Matrix matrix;
// Assume we initialize the Graphics obj here...
// Get the CTM (Current Transformation Matrix)
Matrix m = g.Matrix;
// Make some changes
m.Translate (translateX, translateY)
m.Scale (scaleX, scaleY);
// set the CTM to the modified matrix
g.Matrix = m;
// do some drawing operations here...
// Perhaps we now want to compute a few device-to-user point translations...
// If we use Graphics.
// first, get the CTM.
m = g.Matrix;
// invert it
Cairo.Status cs = m.Invert();
if (cs == Cairo.Status.Success) {
// TIP: Transform as many points as you like...
m.TransformPoint (ref point1X, ref point1Y);
m.TransformPoint (ref point2x, ref point2Y);
// ...
}
Constructor
Create a new Matrix, initialized to the identity.
1.0.5000.0
2.0.0.0
Constructor
xx component of the affine transformation.
yx component of the affine transformation.
xy component of the affine transformation.
yy component of the affine transformation.
x0 component of the affine transformation.
y0 component of the affine transformation.
Create a new matrix, initialized with the specified values.
To be added.
1.0.5000.0
2.0.0.0
Method
System.Object
To be added.
To be added.
To be added.
1.0.5000.0
2.0.0.0
Method
1.0.5000.0
2.0.0.0
System.Boolean
To be added.
To be added.
To be added.
To be added.
Method
1.0.5000.0
2.0.0.0
System.Int32
To be added.
To be added.
To be added.
Method
System.Void
xx component of the affine transformation
yx component of the affine transformation
xy component of the affine transformation
yy component of the affine transformation
X translation component of the affine transformation
Y translation component of the affine transformation
Sets the matrix to be the affine transformation given by xx, yx, xy, yy, x0, y0. The transformation is given by:
- x_new = xx * x + xy * y + x0;
- y_new = yx * x + yy * y + y0;
To be added.
1.0.5000.0
2.0.0.0
Method
System.Void
Initializes the matrix to the identity.
To be added.
1.0.5000.0
2.0.0.0
Method
System.Void
Angle of rotation, in radians. The direction of rotation is defined such that positive angles rotate in the direction from the positive X axis toward the positive Y axis. With the default axis orientation of cairo, positive angles rotate in a clockwise direction.
Initialize the matrix to a transformation that rotates by the specified radians value.
1.0.5000.0
2.0.0.0
Method
System.Void
scale factor in the X dimension.
scale factor in the Y dimension.
Initializes the matrix to a transformation that scales by sx and sy in the X and Y dimensions, respectively.
1.0.5000.0
2.0.0.0
Method
System.Void
amount to translate in the X direction.
amount to translate in the Y direction.
Initializes matrix to a transformation that translates by tx and ty in the X and Y dimensions, respectively.
None.
1.0.5000.0
2.0.0.0
Method
Cairo.Status
Changes matrix to be the inverse of its original value. Not all transformation matrices have inverses; if the matrix collapses points together (it is degenerate), then it has no inverse and this function will fail.
If the matrix has an inverse, modifies the matrix to be the inverse matrix and returns .Success. Otherwise, return .InvalidMatrix if the matrix is invalid.
None.
1.0.5000.0
2.0.0.0
Method
System.Boolean
Determine if a given matrix is the Identity.
Returns true if this matrix is equivalent to the identity.
To be added.
1.0.5000.0
2.0.0.0
Method
System.Void
The affine transformation matrix to multiply by.
Multiplies this Matrix by b. The effect is to apply b's transformation to this matrix, or in other words, to transform this matrix by b.
To be added.
1.0.5000.0
2.0.0.0
Method
Cairo.Matrix
The matrix to be multiplied.
The matrix to multiply by.
Multiplies the affine transformations in a and b together and returns the result in result. The result is an affine transformation which is equivalent to separately applying the transformations a and b in order.
The result of multiplying a and b.
To be added.
1.0.5000.0
2.0.0.0
Method
System.Boolean
The first matrix to compare.
The second Matrix to compare.
Determines whether two matrices have the same value.
Returns true if all members are equal.
To be added.
1.0.5000.0
2.0.0.0
Method
System.Boolean
The first Matrix to compare.
The second Matrix to compare.
Determines whether two matrices do not share the same value.
Returns true if any members are not equal.
To be added.
1.0.5000.0
2.0.0.0
Method
System.Void
angle of rotation, in radians. The direction of rotation is defined such that positive angles rotate in the direction from the positive X axis toward the positive Y axis. With the default axis orientation of cairo, positive angles rotate in a clockwise direction.
Applies rotation by radians to the transformation in the matrix. The effect of the new transformation is to first rotate the coordinates by radians, then apply the original transformation to the coordinates.
1.0.5000.0
2.0.0.0
Method
System.Void
scale factor in the X direction
scale factor in the Y direction
Applies scaling by tx, ty to the transformation in the matrix. The effect of the new transformation is to first scale the coordinates by sx and sy, then apply the original transformation to the coordinates.
1.0.5000.0
2.0.0.0
Method
1.0.5000.0
2.0.0.0
System.String
To be added.
To be added.
To be added.
Method
System.Void
X component of a distance vector. An in/out parameter.
Y component of a distance vector. An in/out parameter.
Transforms the distance vector (dx,@y) by @matrix. This is similar to cairo_matrix_transform() except that the translation components of the transformation are ignored. The calculation of the returned vector is as follows:
- dx2 = dx1 * a + dy1 * c;
- dy2 = dx1 * b + dy1 * d;
Affine transformations are position invariant, so the same vector always transforms to the same vector. If (x1,y1) transforms to (x2,y2) then (x1+@x1,y1+dy1) will transform to (x1+dx2,y1+dy2) for all values of x1 and x2.
None.
1.0.5000.0
2.0.0.0
Method
System.Void
X position. An in/out parameter.
Y position. An in/out parameter.
Transforms the point (x, y) by the matrix.
None.
1.0.5000.0
2.0.0.0
Method
System.Void
amount to translate in the X direction.
amount to translate in the X direction.
Applies a translation by tx, ty to the transformation in matrix. The effect of the new transformation is to first translate the coordinates by @tx and ty, then apply the original transformation to the coordinates.
None.
1.0.5000.0
2.0.0.0
Field
System.Double
X0 component of the affine transformation.
Represents the x-component of translation.
1.0.5000.0
2.0.0.0
Field
System.Double
Xx component of the affine transformation.
To be added.
1.0.5000.0
2.0.0.0
Field
System.Double
Xy component of the affine transformation.
To be added.
1.0.5000.0
2.0.0.0
Field
System.Double
Y0 component of the affine transformation.
Represents the y-component of translation.
1.0.5000.0
2.0.0.0
Field
System.Double
Yx component of the affine transformation.
To be added.
1.0.5000.0
2.0.0.0
Field
System.Double
Yy component of the affine transformation.
To be added.
1.0.5000.0
2.0.0.0