【问题标题】:Rotate rectangle on an Image Swing在 Image Swing 上旋转矩形
【发布时间】:2011-02-14 22:00:14
【问题描述】:

我在 JPanel 上有一张图片。然后我在图像上绘制一个矩形,如下所示:

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

问题是当我旋转图像 image.rotate(1.5) 时,矩形停留在同一个位置。

我尝试在旋转图像之前和之后创建矩形,但两次都失败了。

有没有一种简单的方法可以让矩形也随着图像一起旋转?

谢谢。

【问题讨论】:

  • 愚蠢的问题,但是你在什么时候绘制矩形?在旋转之前或之后。您的代码未指定。

标签: java image swing rotation


【解决方案1】:

一种方法是旋转图形上下文的仿射变换,如example 所示。这样一来,所有绘图都会旋转相同的量。

【讨论】:

  • 我可以让我的矩形与图像一起旋转,但我怎样才能获得对新旋转矩形的引用?我没有看到 graphics2D.getShape(....)。
  • 或者,你可以使用createTransformedShape(),这里建议stackoverflow.com/questions/5006233
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    相关资源
    最近更新 更多