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