Class Matrix
A translation is specified as [ 1 0 0 1 tx ty], where tx and ty are the distance to translate from the origin of the coordinate system in the horizontal and vertical dimension, respectively.
A scaling is obtained by [sx 0 0 sy 0 0]. This scales the coordinates so that 1 unit in the horizontal and vertical dimension of the new coordinate system is the same size as sx and sy units, respectively, as in the previous coordinate system.
A rotation is produced by [ cos T sin T -sin T cos T 0 0 ], which has the effect of rotating the coordinate system axes by an angle T (degrees) counterclockwise.
This material indicates that the matrix specifying a transformation is premultiplied with the current transformation matrix, i.e.,
M' = Mt * M
The implementation of the Scale, Rotate, and Translate convenience functions of Matrix reflect the same order of operations, so that they are consistent with the PDF Reference manual. They are also consistent with the scale, rotate, and translate operators in PostScript, from which the coordinate system model in PDF is derived.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionConcatenate a matrix onto an existing matrix.voiddelete()booleandoublegetA()doublegetB()doublegetC()doublegetD()doublegetH()doublegetV()invert()Invert the Matrix object and return a new Matrix object.static MatrixMultiply two transformation matrices.rotate(double T) Rotate a matrix by T degrees counterclockwise units.scale(double sx, double sy) Scale a matrix by (sx,sy) units.voidsetA(double value) voidsetB(double value) voidsetC(double value) voidsetD(double value) voidsetH(double value) voidsetV(double value) toString()translate(double tx, double ty) Translate a matrix by (tx,ty) units.
-
Constructor Details
-
Matrix
public Matrix()the default constructor creates a transformation matrix to translate the rectangle 1 element (1/72nd of an inch) from the origin. -
Matrix
public Matrix(double na, double nb, double nc, double nd, double nh, double nv)
-
-
Method Details
-
delete
public void delete() -
equals
-
setA
public void setA(double value) -
getA
public double getA() -
setB
public void setB(double value) -
getB
public double getB() -
setC
public void setC(double value) -
getC
public double getC() -
setD
public void setD(double value) -
getD
public double getD() -
setH
public void setH(double value) -
getH
public double getH() -
setV
public void setV(double value) -
getV
public double getV() -
scale
Scale a matrix by (sx,sy) units. Scaling is done by creating the matrix [sx 0 0 sy 0 0], and calling the Concat function with that matrix.- Parameters:
sx- X scaling factorsy- Y scaling factor- Returns:
- the result [sx 0 0 sy 0 0] * M
-
translate
Translate a matrix by (tx,ty) units. Translation is done by creating the matrix [ 1 0 0 1 tx ty ], and calling the Concat function with that matrix.- Parameters:
tx- X translation distancety- Y translation distance- Returns:
- the result [1 0 0 1 tx ty] * M
-
rotate
Rotate a matrix by T degrees counterclockwise units. Rotation is done by creating the matrix [ cos T sin T -sin T cos T 0 0 ], and calling the Concat function with that matrix.- Parameters:
T- The rotation, counterclockwise- Returns:
- the result [cos T sin T -sin T 0 0] * M
-
concat
Concatenate a matrix onto an existing matrix. The product returned is:M' = Mt * M
This corresponds to the action of the cm operator.
- Returns:
- the transformed matrix
-
multiply
Multiply two transformation matrices.- Parameters:
m1- a matrixm2- a matrix- Returns:
- the matrix product m1 x m2
-
invert
Invert the Matrix object and return a new Matrix object. -
toString
-