java.lang.Object | |
↳ | com.esri.core.geometry.Transformation2D |
The affine transformation class for 2D.
Vector is a row:
Matrices are used for transformations of the vectors as rows (case 2).
That means the math expressions on the Geometry matrix operations should be writen like this:
|m11 m12 0|
| x y 1| * |m21 m22 0| = |m11 * x + m21 * y + m31 m12 * x + m22 * y + m32 1|
|m31 m32 1|
Then elements of the Transformation2D are as follows:
|xx yx 0|
| x y 1| * |xy yy 0| = |xx * x + xy * y + xd yx * x + yy * y + yd 1|
|xd yd 1|
v' = v * M1 * M2 * M3 = ( (v * M1) * M2 ) * M3, where v is a vector, Mn are the matrices.
This is equivalent to the following line of code:
ResultVector = (M1.mul(M2).mul(M3)).transform(Vector)
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
public double | xd | X translation component of the transformation. | |||||||||
public double | xx | Matrix coefficient XX of the transformation. | |||||||||
public double | xy | Matrix coefficient XY of the transformation. | |||||||||
public double | yd | Y translation component of the transformation. | |||||||||
public double | yx | Matrix coefficient YX of the transformation. | |||||||||
public double | yy | Matrix coefficient YY of the transformation. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Transformation2D()
Creates a 2D affine transformation with identity transformation.
| |||||||||||
Transformation2D(double scale)
Creates a 2D affine transformation with a specified scale.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Transformation2D |
copy()
Returns a copy of the Transformation2D object.
| ||||||||||
boolean |
equals(Object other)
Returns True when all members of this transformation are equal to the corresponding members of the other.
| ||||||||||
void |
extractScaleTransform(Transformation2D scale, Transformation2D rotateNshearNshift)
Extracts scaling part of the transformation.
| ||||||||||
void |
flipX(double x0, double x1)
Flips the transformation around the X axis.
| ||||||||||
void |
flipY(double y0, double y1)
Flips the transformation around the Y axis.
| ||||||||||
void |
getCoefficients(double[] coefs)
Writes the matrix coefficients in the order XX, XY, XD, YX, YY, YD into the given array.
| ||||||||||
int |
hashCode()
Returns the hash code for the 2D transformation.
| ||||||||||
void |
inverse(Transformation2D inverse)
Produces inverse matrix for this matrix and puts result into the inverse parameter.
| ||||||||||
void |
inverse()
Inverses the matrix.
| ||||||||||
boolean |
isDegenerate(double tol)
Returns TRUE if this matrix is degenerated (does not have an inverse) within the given tolerance.
| ||||||||||
boolean |
isIdentity()
Returns TRUE if this matrix is the identity matrix.
| ||||||||||
boolean |
isIdentity(double tol)
Returns TRUE if this matrix is an identity matrix within the given tolerance.
| ||||||||||
boolean |
isOrthonormal(double tol)
Returns TRUE if this is an orthonormal transformation with the given tolerance.
| ||||||||||
boolean |
isReflective()
Returns TRUE for reflective transformations.
| ||||||||||
boolean |
isScaleAndShift(double tol)
Returns TRUE, if this transformation does not have rotation and shear within the given tolerance.
| ||||||||||
boolean |
isShift(double tol)
Returns TRUE if this transformation is a shift transformation within the given tolerance.
| ||||||||||
boolean |
isShift()
Returns TRUE if this transformation is a shift transformation.
| ||||||||||
boolean |
isUniform(double eps)
Returns TRUE if this transformation is a uniform transformation.
| ||||||||||
void |
mulLeft(Transformation2D left)
Multiplies this matrix on the left with the "left" matrix.
| ||||||||||
static void |
multiply(Transformation2D a, Transformation2D b, Transformation2D result)
Performs multiplication of matrices a and b and places the result into this matrix.
| ||||||||||
void |
multiply(Transformation2D right)
Multiplies this matrix on the right with the "right" matrix.
| ||||||||||
void |
rotate(double angle_in_Radians)
Rotates the transformation.
| ||||||||||
void |
rotate(double cos, double sin)
Rotates the transformation.
| ||||||||||
void |
rotate(double cos, double sin, Point2D rotationCenter)
Rotates the transformation aroung a center point.
| ||||||||||
void |
scale(double x, double y)
Scales the transformation.
| ||||||||||
void |
setFlipX(double x0, double x1)
Sets the transformation to be a flip around the X axis.
| ||||||||||
void |
setFlipY(double y0, double y1)
Sets the transformation to be a flip around the Y axis.
| ||||||||||
void |
setIdentity()
Sets this matrix to be the identity matrix.
| ||||||||||
void |
setRotate(double cosA, double sinA)
Sets rotation for this transformation.
| ||||||||||
void |
setRotate(double angle_in_Radians)
Sets this transformation to be a rotation around point (0, 0).
| ||||||||||
void |
setScale(double x, double y)
Set this transformation to be a scale.
| ||||||||||
void |
setScale(double _scale)
Set transformation to be a uniform scale.
| ||||||||||
void |
setShear(double proportionX, double proportionY)
Set transformation to a shear.
| ||||||||||
void |
setShift(double x, double y)
Set this transformation to be a shift.
| ||||||||||
void |
setZero()
Initializes a zero transformation.
| ||||||||||
void |
shear(double proportionX, double proportionY)
Shears the transformation.
| ||||||||||
void |
shift(double x, double y)
Shifts the transformation.
| ||||||||||
double |
transform(double tolerance)
Transforms a tolerance value.
| ||||||||||
void |
transform(Point[] pointsIn, int count, Point[] pointsOut)
Transforms an array of points.
| ||||||||||
void |
transform(double[] pointsXYInterleaved, int start, int count)
Transforms an array of points stored in an array of doubles as interleaved XY coordinates.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
X translation component of the transformation.
Matrix coefficient XX of the transformation.
Matrix coefficient XY of the transformation.
Y translation component of the transformation.
Matrix coefficient YX of the transformation.
Matrix coefficient YY of the transformation.
Creates a 2D affine transformation with identity transformation.
Creates a 2D affine transformation with a specified scale.
scale | The scale to use for the transformation. |
---|
Returns a copy of the Transformation2D object.
Returns True when all members of this transformation are equal to the corresponding members of the other.
Extracts scaling part of the transformation. this == scale * rotateNshearNshift.
scale | The destination matrix where the scale part is copied. |
---|---|
rotateNshearNshift | The destination matrix where the part excluding rotation is copied. |
Flips the transformation around the X axis.
x0 | The X coordinate to flip. |
---|---|
x1 | The X coordinate to flip to. |
Flips the transformation around the Y axis.
y0 | The Y coordinate to flip. |
---|---|
y1 | The Y coordinate to flip to. |
Writes the matrix coefficients in the order XX, XY, XD, YX, YY, YD into the given array.
coefs | The array into which the coefficients are returned. Should be of size 6 elements. |
---|
Returns the hash code for the 2D transformation.
Produces inverse matrix for this matrix and puts result into the inverse parameter.
inverse | The result inverse matrix. |
---|
Inverses the matrix.
Returns TRUE if this matrix is degenerated (does not have an inverse) within the given tolerance.
tol | The tolerance value. |
---|
Returns TRUE if this matrix is the identity matrix.
Returns TRUE if this matrix is an identity matrix within the given tolerance.
tol | The tolerance value. |
---|
Returns TRUE if this is an orthonormal transformation with the given tolerance. The orthonormal: Rotation or rotoinversion and shift (preserves lengths of vectors and angles between vectors).
tol | The tolerance value. |
---|
Returns TRUE for reflective transformations. It inverts the sign of vector cross product.
Returns TRUE, if this transformation does not have rotation and shear within the given tolerance.
tol | The tolerance value. |
---|
Returns TRUE if this transformation is a shift transformation within the given tolerance.
tol | The tolerance value. |
---|
Returns TRUE if this transformation is a shift transformation. The shift transformation performs shift only.
Returns TRUE if this transformation is a uniform transformation. The uniform transformation is a transformation, which transforms a square to a square.
Multiplies this matrix on the left with the "left" matrix. Stores the result into this matrix and returns a reference to it.
Equivalent to this = left * this.
left | The matrix to be multiplied with. |
---|
Performs multiplication of matrices a and b and places the result into this matrix. The a, b, and result could point to same objects.
Equivalent to result = a * b.
a | The 2D transformation to be multiplied. |
---|---|
b | The 2D transformation to be multiplied. |
result | The 2D transformation created by multiplication of matrices. |
Multiplies this matrix on the right with the "right" matrix. Stores the result into this matrix and returns a reference to it.
Equivalent to this *= right.
right | The matrix to be multiplied with. |
---|
Rotates the transformation.
angle_in_Radians | The rotation angle in radian. |
---|
Rotates the transformation.
cos | The cos angle of the rotation. |
---|---|
sin | The sin angle of the rotation. |
Rotates the transformation aroung a center point.
cos | The cos angle of the rotation. |
---|---|
sin | sin angle of the rotation. |
rotationCenter | The center point of the rotation. |
Scales the transformation.
x | The scale factor in X direction. |
---|---|
y | The scale factor in Y direction. |
Sets the transformation to be a flip around the X axis. Flips the X coordinates so that the x0 becomes x1 and vice verse.
x0 | The X coordinate to flip. |
---|---|
x1 | The X coordinate to flip to. |
Sets the transformation to be a flip around the Y axis. Flips the Y coordinates so that the y0 becomes y1 and vice verse.
y0 | The Y coordinate to flip. |
---|---|
y1 | The Y coordinate to flip to. |
Sets this matrix to be the identity matrix.
Sets rotation for this transformation. When the axis Y is directed up and X is directed to the right, the positive angle corresponds to the anti-clockwise rotation. When the axis Y is directed down and X is directed to the right, the positive angle corresponds to the clockwise rotation.
cosA | The rotation angle. |
---|---|
sinA | The rotation angle. |
Sets this transformation to be a rotation around point (0, 0). When the axis Y is directed up and X is directed to the right, the positive angle corresponds to the anti-clockwise rotation. When the axis Y is directed down and X is directed to the right, the positive angle corresponds to the clockwise rotation.
angle_in_Radians | The rotation angle in radian. |
---|
Set this transformation to be a scale.
x | The X coordinate to scale to. |
---|---|
y | The Y coordinate to scale to. |
Set transformation to be a uniform scale.
_scale | The scale of the transformation. |
---|
Set transformation to a shear.
proportionX | The proportion of shearing in x direction. |
---|---|
proportionY | The proportion of shearing in y direction. |
Set this transformation to be a shift.
x | The X coordinate to shift to. |
---|---|
y | The Y coordinate to shift to. |
Initializes a zero transformation. Transforms any coordinate to (0, 0).
Shears the transformation.
proportionX | The proportion of shearing in x direction. |
---|---|
proportionY | The proportion of shearing in y direction. |
Shifts the transformation.
x | The shift factor in X direction. |
---|---|
y | The shift factor in Y direction. |
Transforms a tolerance value.
tolerance | The tolerance value. |
---|
Transforms an array of points.
pointsIn | The points to be transformed. |
---|---|
count | The number of points to transform. |
pointsOut | The transformed points are returned using this array. It should have the same or greater size as the input array. |
Transforms an array of points stored in an array of doubles as interleaved XY coordinates.
pointsXYInterleaved | The array of points with interleaved X, Y values to be transformed. |
---|---|
start | The start point index to transform from (the actual element index is 2 * start). |
count | The number of points to transform (the actual element count is 2 * count). |