@Override // from Transform public AffineTransform invert () { // compute the determinant, storing the subdeterminants for later use float det = m00*m11 - m10*m01; if (Math.abs(det) == 0f) { // determinant is zero; matrix is not invertible throw new NoninvertibleTransformException(this.toString()); } float rdet = 1f / det; return new AffineTransform( +m11 * rdet, -m10 * rdet, -m01 * rdet, +m00 * rdet, (m10*ty - m11*tx) * rdet, (m01*tx - m00*ty) * rdet); }
@Override // from Transform public AffineTransform invert () { // compute the determinant, storing the subdeterminants for later use float det = m00*m11 - m10*m01; if (Math.abs(det) == 0f) { // determinant is zero; matrix is not invertible throw new NoninvertibleTransformException(this.toString()); } float rdet = 1f / det; return new AffineTransform( +m11 * rdet, -m10 * rdet, -m01 * rdet, +m00 * rdet, (m10*ty - m11*tx) * rdet, (m01*tx - m00*ty) * rdet); }
if (Math.abs(det) == 0f) { throw new NoninvertibleTransformException(this.toString());
if (Math.abs(det) == 0f) { throw new NoninvertibleTransformException(this.toString());
@Override // from Transform public Vector inverseTransform (IVector v, Vector into) { float x = v.x(), y = v.y(); float det = m00 * m11 - m01 * m10; if (Math.abs(det) == 0f) { // determinant is zero; matrix is not invertible throw new NoninvertibleTransformException(this.toString()); } float rdet = 1 / det; return into.set((x * m11 - y * m10) * rdet, (y * m00 - x * m01) * rdet); }
@Override // from Transform public Vector inverseTransform (IVector v, Vector into) { float x = v.x(), y = v.y(); float det = m00 * m11 - m01 * m10; if (Math.abs(det) == 0f) { // determinant is zero; matrix is not invertible throw new NoninvertibleTransformException(this.toString()); } float rdet = 1 / det; return into.set((x * m11 - y * m10) * rdet, (y * m00 - x * m01) * rdet); }
@Override // from Transform public Point inverseTransform (IPoint p, Point into) { float x = p.x() - tx, y = p.y() - ty; float det = m00 * m11 - m01 * m10; if (Math.abs(det) == 0f) { // determinant is zero; matrix is not invertible throw new NoninvertibleTransformException(this.toString()); } float rdet = 1 / det; return into.set((x * m11 - y * m10) * rdet, (y * m00 - x * m01) * rdet); }
@Override // from Transform public Point inverseTransform (IPoint p, Point into) { float x = p.x() - tx, y = p.y() - ty; float det = m00 * m11 - m01 * m10; if (Math.abs(det) == 0f) { // determinant is zero; matrix is not invertible throw new NoninvertibleTransformException(this.toString()); } float rdet = 1 / det; return into.set((x * m11 - y * m10) * rdet, (y * m00 - x * m01) * rdet); }