Swing中图像的形状属性

时间:2011-02-15 16:15:11

标签: java swing

我有一张图片,我可以像这样在图像上画一个矩形:

Rectangle rect = new Rectangle(x,y,width,height);
graphics2D.draw(rect);

然后我旋转图像,绘制的矩形也按预期旋转。但是现在我如何获得对新旋转的Rectangle的引用?我需要旋转的Rectangle的属性,如Point,width,height ....

我不知道Graphics2D有像getShape()这样的方法吗?此外,调用其draw(Rectangle)方法时传递给Graphics2D的矩形不会改变。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用AffineTransform类来完成。

AffineTransform transform = new AffineTransform();
transform.rotate(Math.PI/2);
Shape transformed = transform.createTransformedShape(shape);

但它只会产生你可以用来绘画的形状。如果您需要旋转矩形的精确点,则需要单独转换每个点:

transform.transform(point_before, point_after);