首先,我的数学不强!但我正在计算从原点(0,0)到(-1,-1)的点的角度。
该角度为225°或5π/ 4.
也许我对Math.Atan2
的理解是不正确的,但我认为这意味着在一个原点为(0,0)的圆上给出两个点的角度。我假设这里发生的是Atan2
的结果是“翻转”,因为它位于X轴的负面...有人可以确认并提供正确的方法吗?
这是我的测试,但失败了:
Assert.AreEqual((5 * Math.PI) / 4, Math.Atan2(-1, -1));
这是我的PointD
类,它持有点X和Y:
public double ToRadians()
{
double radians = Math.Atan2(this.Y, this.X);
return radians;
}
答案 0 :(得分:13)
你的假设是正确的。 Atan2
给出-pi到+ pi范围内的结果。 * 如果你想要0到2pi范围内的数字,如果结果小于0,只需加2pi。
注意:断言像这样的浮点值的相等通常不是一个好主意......
*为了将来参考,这种细节通常在文档中明确给出。例如:http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx。