gpt4 book ai didi

c# - Math.Atan2 产生奇怪的结果?

转载 作者:太空狗 更新时间:2023-10-30 00:07:58 28 4
gpt4 key购买 nike

首先,我的数学不强!但是我正在计算一个点从原点 (0, 0) 到 (-1, -1) 的角度。

这个角度是 225° 或 5π/4。

  • 5π/4 = 3.9269908169872415480783042290994
  • Math.Atan2(-1, -1) = -2.3561944901923448

也许我对 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;
}

最佳答案

你的假设是正确的。 Atan2 给出的结果在 -pi 到 +pi 范围内。* 如果您想要一个 0 到 2pi 范围内的数字,如果结果小于 0,只需添加 2pi .


注意:像这样断言浮点值相等通常不是一个好主意...


* 为了将来引用,这类细节通常在文档中明确给出。例如:http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx .

关于c# - Math.Atan2 产生奇怪的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com