如何在 JAVA 中旋转 AWT 矩形?
How to Rotate AWT rectangle in JAVA?
我正在创建一个小型 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
现在更具体地说,图像中的箭头只能检测蓝色矩形(原始位置)而不是红色矩形(旋转的矩形)的碰撞。
同样,我不想实际绘制矩形,而是想在箭头与矩形碰撞时检测碰撞。
参见 AffineTransform.createTransformedShape(Shape)
其中:
Returns a new Shape
object defined by the geometry of the specified Shape
after it has been transformed by this transform.
我正在创建一个小型 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
现在更具体地说,图像中的箭头只能检测蓝色矩形(原始位置)而不是红色矩形(旋转的矩形)的碰撞。
同样,我不想实际绘制矩形,而是想在箭头与矩形碰撞时检测碰撞。
参见 AffineTransform.createTransformedShape(Shape)
其中:
Returns a new
Shape
object defined by the geometry of the specifiedShape
after it has been transformed by this transform.