public Point2D inverseTransform(double x, double y) { return inverseTransform(new Point2D.Double(x, y)); } }
/** * Returns the supplied shape, translated to the coordinates * that result from calling inverseTransform on its center. */ public Shape inverseTransform(Shape shape) { Rectangle2D bounds = shape.getBounds2D(); Point2D center = new Point2D.Double(bounds.getCenterX(),bounds.getCenterY()); Point2D newCenter = inverseTransform(center); double dx = newCenter.getX()-center.getX(); double dy = newCenter.getY()-center.getY(); AffineTransform at = AffineTransform.getTranslateInstance(dx,dy); return at.createTransformedShape(shape); }