繁体   English   中英

如何在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); 绘制旋转的矩形,但实际上不旋转矩形,而只是绘制旋转的矩形。

任何建议表示赞赏。

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

描绘问题的图像

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

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

请参阅AffineTransform.createTransformedShape(Shape) ,其中:

在通过此变换对指定Shape的几何形状进行定义后,返回一个新的Shape对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM