在Swing图像上旋转矩形

3

我在JPanel上有一张图片。然后我在图片上方绘制一个矩形,代码如下:

Graphics2D image = (Graphics2D) g;
image.drawRect(......);
//create image code here.
image.rotate(1.5);
image.drawImage(....);

问题是当我旋转图像image.rotate(1.5)时,矩形保持在原地。我尝试了在旋转图像之前和之后创建矩形,但两次都失败了。有没有一种简单的方法使矩形也随着图像一起旋转呢?谢谢。

1
这可能是一个愚蠢的问题,但你在什么时候画矩形?旋转之前还是之后?你的代码没有明确指定。 - Codemwnci
2个回答

1

一种方法是旋转图形上下文的仿射变换,如此示例所示。这样,所有绘制都将以相同的角度旋转。


我已经成功让我的矩形随着图像旋转,但是如何获取新旋转矩形的引用?我没有看到graphics2D.getShape(...)。 - Marquinio
或者,您可以使用createTransformedShape(),如此处所建议:http://stackoverflow.com/questions/5006233 - trashgod

0

你可以尝试使用Rectangle,这是Rectangle2D类的一个实现,然后使用g2d.draw(rectangle)。这样可能能够更好地从Graphics2D对象中获取旋转状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接