public void inverseTransform(double[] src,int srcOff,double[] dst,int dstOff,int length) throws NoninvertibleTransformException {
  double det=getDeterminant();
  if (Math.abs(det) < ZERO) {
    throw new NoninvertibleTransformException("Determinant is zero");
  }
  while (--length >= 0) {
    double x=src[srcOff++] - m02;
    double y=src[srcOff++] - m12;
    dst[dstOff++]=(x * m11 - y * m01) / det;
    dst[dstOff++]=(y * m00 - x * m10) / det;
  }
}

public void inverseTransform ( double [ ] src , int srcOff , double [ ] dst , int dstOff , int length ) throws NoninvertibleTransformException { double det = getDeterminant ( ) ; if ( Math . abs ( det ) < ZERO ) { throw new NoninvertibleTransformException ( "Determinant is zero" ) ; } while ( -- length >= 0 ) { double x = src [ srcOff ++ ] - m02 ; double y = src [ srcOff ++ ] - m12 ; dst [ dstOff ++ ] = ( x * m11 - y * m01 ) / det ; dst [ dstOff ++ ] = ( y * m00 - x * m10 ) / det ; } }
applies the inverse of this affinetransform to a set of points given as an array of double values where every two values in the array give the coordinates of a point ; the even - indexed values giving the x coordinates and the odd - indexed values giving the y coordinates .
