一周以来,我一直在努力解决这个问题,并且必须找到解决方案。我所拥有的是 2d 空间中的 2 个点,我需要解决的是一个点围绕另一个点的旋转。幸运的是,附图会有所帮助,我需要能够计算的是 b 围绕 a 的旋转值。
我发现了很多指向找到点积等的东西,但我仍在寻找那个黄金解决方案:o(
谢谢!
一周以来,我一直在努力解决这个问题,并且必须找到解决方案。我所拥有的是 2d 空间中的 2 个点,我需要解决的是一个点围绕另一个点的旋转。幸运的是,附图会有所帮助,我需要能够计算的是 b 围绕 a 的旋转值。
我发现了很多指向找到点积等的东西,但我仍在寻找那个黄金解决方案:o(
谢谢!
Vector2 difference = pointB - pointA;
double rotationInRadians = Math.Atan2(difference.Y, difference.X);
请参阅http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx以供参考。
一个猜想:
我假设正东(沿 X 轴,向右)是零弧度,+x 指向右侧,+y 指向下方。
B 相对于 A 的方位角是
角度 = Arctan2 [(A_y - B_y) / (B_x - A_x)]
使用正确的函数计算正确的象限(可能Math.Atan2
)