【问题标题】:How to Rotate AWT rectangle in JAVA?如何在 JAVA 中旋转 AWT 矩形?
【发布时间】:2018-02-22 12:10:01
【问题描述】:

我正在创建一个小型 java 2D 游戏,我想知道是否有任何方法可以旋转 AWT 矩形

AffineTransform origXform = g2d.getTransform();
AffineTransform newXform = (AffineTransform) origXform.clone();
newXform.rotate(angle, pivotX, pivotY); // pivotX ,pivotY is the starting 
point of the hand image
g2d.setTransform(newXform);
Rectangle arm = new Rectangle(bowX + 5,  bowY + 55, 60, 5);
g2d.drawImage(playerBowReadyImg, bowX, bowY, null);  //hand image

在上面的代码中,我只是简单地绘制了基于鼠标位置旋转的手部图像,我还在手部设置了矩形,但问题是矩形没有随着手部图像一起旋转。

我也没有将矩形用于任何绘图目的,而是为了检测碰撞。

但是使用 g2d.draw(arm);绘制旋转的矩形,但实际上并没有旋转矩形,它只是绘制旋转的矩形。

欢迎提出任何建议。

好的,我的问题被标记为重复,所以我尝试了在那里找到的答案,但我得到的代码只是为了绘制目的而旋转我的矩形。

Image to depict the problem

现在更具体地说,图像中的箭头只能检测蓝色矩形(原始位置)而不是红色矩形(旋转矩形)的碰撞。

再次,我不想实际绘制矩形,但想在箭头与矩形碰撞时检测碰撞。

【问题讨论】:

    标签: java awt java-2d rectangles affinetransform


    【解决方案1】:

    AffineTransform.createTransformedShape(Shape),其中:

    返回一个新的 Shape 对象,该对象由指定的 Shape 的几何图形在经过此变换后进行变换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-20
      • 2018-09-12
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      相关资源
      最近更新 更多