我有两个对象object1
和object2
。 object1
围绕其中心旋转,object2
将围绕它定位。问题是让object2
的定位正确;它不是100%准确。
这是我的代码:
angle = atan2(
cEnemy->position.y - (float) position.y,
cEnemy->position.x - (float) position.x) / 3.14159265f * 180);
position.x
和position.y
代表object1
的位置。
那是我object1
用来旋转的角度。现在,我一直坚持如何定位object2
。
我认为我需要首先获得等于的object1
的中心点:
object2.x = (position.x + widthOfObject1 / 2);
object2.y = (position.y + heightOfObject1 / 2);
但是,我只是不确定object1
将面临的角度是怎么做的,以及如何使用它来正确定位object2
。我很确定我必须在这里使用sin
或cos
,但我不确定。我的想法是定位object2
,以便无论它处于什么角度,object2
也会在object1
前面一小段距离。
任何帮助将不胜感激!
答案 0 :(得分:2)
看起来你想要做的是object2与位置 P 处于固定距离 D ,你想要将它围绕P旋转角度 A 强>
因此 A 的单位向量为[ cos(A) , sin(A) ]
因此 A 幅度 D 的向量为[ D cos(A) , D sin(A) ]
所以对象2的位置应该是
object2.x = object1.x + D * cos(A)
object2.y = object1.y + D * sin(A)