|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectGMatrix
GeneralMatrix
public class GeneralMatrix
A two dimensional array of numbers. Row and column numbering begins with zero.
GMatrix
,
AffineTransform
,
PerspectiveTransform
,
Transform3D
,
Jama matrix,
JSR-83 Multiarray package,
Serialized Form
Constructor Summary | |
---|---|
GeneralMatrix(AffineTransform transform)
Constructs a 3×3 matrix from the specified affine transform. |
|
GeneralMatrix(AxisDirection[] srcAxis,
AxisDirection[] dstAxis)
Constructs a transform changing axis order and/or direction. |
|
GeneralMatrix(double[][] matrix)
Constructs a new matrix from a two-dimensional array of doubles. |
|
GeneralMatrix(Envelope srcRegion,
AxisDirection[] srcAxis,
Envelope dstRegion,
AxisDirection[] dstAxis)
Constructs a transform mapping a source region to a destination region. |
|
GeneralMatrix(Envelope srcRegion,
Envelope dstRegion)
Constructs a transform that maps a source region to a destination region. |
|
GeneralMatrix(GMatrix matrix)
Constructs a new matrix and copies the initial values from the parameter matrix. |
|
GeneralMatrix(int size)
Constructs a square identity matrix of size size × size . |
|
GeneralMatrix(int numRow,
int numCol)
Creates a matrix of size numRow × numCol . |
|
GeneralMatrix(int numRow,
int numCol,
double[] matrix)
Constructs a numRow × numCol matrix
initialized to the values in the matrix array. |
|
GeneralMatrix(Matrix matrix)
Constructs a new matrix and copies the initial values from the parameter matrix. |
Method Summary | |
---|---|
GeneralMatrix |
clone()
Returns a clone of this matrix. |
boolean |
equals(Matrix matrix,
double tolerance)
Compares the element values regardless the object class. |
double[][] |
getElements()
Retrieves the specifiable values in the transformation matrix into a 2-dimensional array of double precision values. |
static double[][] |
getElements(Matrix matrix)
Retrieves the specifiable values in the transformation matrix into a 2-dimensional array of double precision values. |
boolean |
isAffine()
Returns true if this matrix is an affine transform. |
boolean |
isIdentity()
Returns true if this matrix is an identity matrix. |
boolean |
isIdentity(double tolerance)
Returns true if this matrix is an identity matrix using the provided tolerance. |
static GeneralMatrix |
load(BufferedReader in,
Locale locale)
Loads data from the specified streal until the first blank line or end of stream. |
static GeneralMatrix |
load(File file)
Loads data from the specified file until the first blank line or end of file. |
void |
multiply(Matrix matrix)
Sets the value of this matrix to the result of multiplying itself with the specified matrix. |
AffineTransform |
toAffineTransform2D()
Returns an affine transform for this matrix. |
String |
toString()
Returns a string representation of this matrix. |
Methods inherited from class GMatrix |
---|
add, add, copySubMatrix, epsilonEquals, epsilonEquals, equals, equals, get, get, get, get, get, getColumn, getColumn, getElement, getNumCol, getNumRow, getRow, getRow, hashCode, identityMinus, invert, invert, LUD, mul, mul, mul, mulTransposeBoth, mulTransposeLeft, mulTransposeRight, negate, negate, set, set, set, set, set, set, setColumn, setColumn, setElement, setIdentity, setRow, setRow, setScale, setSize, setZero, sub, sub, SVD, trace, transpose, transpose |
Methods inherited from class Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface XMatrix |
---|
getElement, getNumCol, getNumRow, invert, negate, setElement, setIdentity, setZero, transpose |
Constructor Detail |
---|
public GeneralMatrix(int size)
size
× size
.
size
- The number of rows and columns.public GeneralMatrix(int numRow, int numCol)
numRow
× numCol
.
Elements on the diagonal j==i are set to 1.
numRow
- Number of rows.numCol
- Number of columns.public GeneralMatrix(int numRow, int numCol, double[] matrix)
numRow
× numCol
matrix
initialized to the values in the matrix
array. The array values
are copied in one row at a time in row major fashion. The array should be
exactly numRow*numCol
in length. Note that because row and column
numbering begins with zero, numRow
and numCol
will be
one larger than the maximum possible matrix index values.
numRow
- Number of rows.numCol
- Number of columns.matrix
- Initial values.public GeneralMatrix(double[][] matrix) throws IllegalArgumentException
matrix
- Array of rows. Each row must have the same length.
IllegalArgumentException
- if the specified matrix is not regular
(i.e. if all rows doesn't have the same length).public GeneralMatrix(Matrix matrix)
matrix
- The matrix to copy.public GeneralMatrix(GMatrix matrix)
matrix
- The matrix to copy.public GeneralMatrix(AffineTransform transform)
transform
- The matrix to copy.public GeneralMatrix(Envelope srcRegion, Envelope dstRegion)
If the source dimension is equals to the destination dimension, then the transform is affine. However, the following special cases are also handled:
srcRegion
- The source region.dstRegion
- The destination region.public GeneralMatrix(AxisDirection[] srcAxis, AxisDirection[] dstAxis)
If the source dimension is equals to the destination dimension, then the transform is affine. However, the following special cases are also handled:
srcAxis
- The set of axis direction for source coordinate system.dstAxis
- The set of axis direction for destination coordinate system.
IllegalArgumentException
- If dstAxis
contains some axis
not found in srcAxis
, or if some colinear axis were found.public GeneralMatrix(Envelope srcRegion, AxisDirection[] srcAxis, Envelope dstRegion, AxisDirection[] dstAxis)
If the source dimension is equals to the destination dimension, then the transform is affine. However, the following special cases are also handled:
srcRegion
- The source region.srcAxis
- Axis direction for each dimension of the source region.dstRegion
- The destination region.dstAxis
- Axis direction for each dimension of the destination region.
MismatchedDimensionException
- if the envelope dimension doesn't
matches the axis direction array length.
IllegalArgumentException
- If dstAxis
contains some axis
not found in srcAxis
, or if some colinear axis were found.Method Detail |
---|
public static double[][] getElements(Matrix matrix)
matrix
- The matrix to extract elements from.
public final double[][] getElements()
public final boolean isAffine()
true
if this matrix is an affine transform.
A transform is affine if the matrix is square and last row contains
only zeros, except in the last column which contains 1.
isAffine
in interface XMatrix
true
if this matrix is affine.public final boolean isIdentity()
true
if this matrix is an identity matrix.
isIdentity
in interface XMatrix
isIdentity
in interface Matrix
public final boolean isIdentity(double tolerance)
true
if this matrix is an identity matrix using the provided tolerance.
This method is equivalent to computing the difference between this matrix and an identity
matrix of identical size, and returning true
if and only if all differences are
smaller than or equal to tolerance
.
isIdentity
in interface XMatrix
tolerance
- The tolerance value.
true
if this matrix is close enough to the identity matrix
given the tolerance value.public final void multiply(Matrix matrix)
this
= this
× matrix
. In the context
of coordinate transformations, this is equivalent to
AffineTransform.concatenate
:
first transforms by the supplied transform and then transform the result by the original
transform.
multiply
in interface XMatrix
matrix
- The matrix to multiply to this matrix.public boolean equals(Matrix matrix, double tolerance)
GMatrix.epsilonEquals(matrix,
tolerance)
. The method name is intentionally different in order to avoid
ambiguities at compile-time.
equals
in interface XMatrix
matrix
- The matrix to compare.tolerance
- The tolerance value.
true
if this matrix is close enough to the given matrix
given the tolerance value.public final AffineTransform toAffineTransform2D() throws IllegalStateException
IllegalStateException
- if this matrix is not 3×3,
or if the last row is not [0 0 1]
.public static GeneralMatrix load(File file) throws IOException
file
- The file to read.
IOException
- if an error occured while reading the file.public static GeneralMatrix load(BufferedReader in, Locale locale) throws IOException
in
- The stream to read.locale
- The locale for the numbers to be parsed.
IOException
- if an error occured while reading the stream.public String toString()
toString
in class GMatrix
public GeneralMatrix clone()
clone
in interface Matrix
clone
in class GMatrix
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |