形状旋转问题 - Java2d

时间:2013-12-01 06:03:20

标签: java vector awt java-2d

我正在开发一个简单的游戏,其中我遇到了一个小而重要的问题。 我在逻辑中实现了绝对旋转。

当我在物体没有任何旋转时开始旋转物体时,它可以正常工作,我可以像任何方向一样旋转,没有任何问题,如下面的链接所示。

Initial Rotation Video

现在当对象确实有一些旋转时出现问题,为什么我尝试在一个方向上旋转,而不是在所需的方向上旋转,旋转总是从初始旋转开始,如下面的链接所示。

Rotation issue when shape has some rotation

我认为视频会显示所有内容,如果您有任何疑问,请与我联系。

我认为问题是,鼠标指针的方向应该从选择的任何圆圈开始相对旋转。

现在关于我的逻辑,

在鼠标按下事件中我刚检查了

鼠标按

是否在画布上选择了形状,如果是的话 如果是的话,如果四个圆圈中的一个包含鼠标点 然后启动报价

鼠标拖动

使用矢量数学 我根据鼠标点更新动作,

根据以下方法计算旋转角度

Math.atan2(rotationVector.getY(), rotationVector.getX());

并对此形状应用旋转。

旋转矢量我来自这个班级

Vector Rotation

我在鼠标按下时调用了类startMotion,在鼠标拖动事件中调用了updateMotion。

我缺少什么或做错什么?

1 个答案:

答案 0 :(得分:0)

我们需要看一些能够帮助你的代码。无论何时启动旋转,看起来都会重置旋转,然后在拖动时根据鼠标位置快速旋转对象。