public CGPoint inverseTransform(CGPoint src,CGPoint dst) throws NoninvertibleTransformException {
  double det=getDeterminant();
  if (Math.abs(det) < ZERO) {
    throw new NoninvertibleTransformException("Determinant is zero");
  }
  if (dst == null) {
    dst=CGPoint.zero();
  }
  double x=src.x - m02;
  double y=src.y - m12;
  dst.x=(float)((x * m11 - y * m01) / det);
  dst.y=(float)((y * m00 - x * m10) / det);
  return dst;
}

public CGPoint inverseTransform ( CGPoint src , CGPoint dst ) throws NoninvertibleTransformException { double det = getDeterminant ( ) ; if ( Math . abs ( det ) < ZERO ) { throw new NoninvertibleTransformException ( "Determinant is zero" ) ; } if ( dst == null ) { dst = CGPoint . zero ( ) ; } double x = src . x - m02 ; double y = src . y - m12 ; dst . x = ( float ) ( ( x * m11 - y * m01 ) / det ) ; dst . y = ( float ) ( ( y * m00 - x * m10 ) / det ) ; return dst ; }
transforms the point according to the inverse of this affinetransformation .
