我正在尝试计算两个向量之间的角度。 我试过了,但它总是返回零:
public double GetAngle(Vector2 a, Vector2 b)
{
double angle = Math.Atan2(b.Y, b.X) - Math.Atan2(a.Y, a.X);
return angle;
}
GetAngle(new Vector2(1,1), new Vector2(50,50));
最佳答案
你应该看看 atan2
( here ) 的文档。
您正在寻找的是找到 B(左上向量)和 A(右下向量)之间的差异,然后将其作为参数传递给 atan2
return Math.Atan2(b.Y - a.Y, b.X - a.X);
您的代码当前所做的是找到向量 b
相对于 0,0
的角度,然后减去向量 a
的角度> 引用 0,0
。
你总是得到 0 的原因是因为 1,1
和 50,50
在穿过 0,0
的同一条线上(两个调用都返回大约 0.785398
),因此减去它们将得到 0
关于c# - 两个向量 2D 之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458992/