获得点和原点之间的角度

Dav*_*ave 4 c# directx xna angle

这可能以前已经回答过,如果有的话,对不起.我基本上需要从原点到点获得角度.那么让我们说Origin是(0,0)而我的目标点是(3,0).

3点= 90度

6点钟= 180度

9点= 270度

12点钟= 0度


不知何故,我要做一些数学魔法,并发现角度为90度(Top为0). 原点可能会有所不同,所以我需要一个带有两个参数的方法,Origin和TargetPoint,它们以度为单位返回双倍角度.

是的,我意识到这看起来简短而且没有建设性,但我让这个问题尽可能简单易懂.所有其他问题都被关闭了 - .-

谢谢

Seb*_*zus 10

两点A和B之间的矢量是BA =(Bx-Ax,By-Ay).两个矢量之间的角度可以用点积atan2计算.

var vector2 = Target - Origin;
var vector1 = new Point(0, 1) // 12 o'clock == 0°, assuming that y goes from bottom to top

double angleInRadians = Math.Atan2(vector2.Y, vector2.X) - Math.Atan2(vector1.Y, vector1.X);
Run Code Online (Sandbox Code Playgroud)

另请参见在矢量之间查找有符号角度