我们开发人员经常需要计算角度来执行旋转。通常我们可以使用 atan2() 函数,但有时我们需要更高的精度。那你怎么办?
我知道理论上 atan2 是精确的,但在我的系统 (iOS) 中它不准确,约为 0.05 弧度,因此差异很大。那不只是我的问题。我看到过类似的意见。
最佳答案
atan2
用于从 vector (x,y)
获取角度a
。如果您随后使用此角度应用旋转,您将使用 cos(a)
和 sin(a)
。您可以通过归一化 (x,y) 来简单地计算 cos 和 sin,并保留它们而不是角度。精度会更高,并且您会节省很多在三角函数中丢失的循环。
编辑。如果你真的想要一个来自 (x,y) 的角度,它可以使用 CORDIC 的变体来计算。达到您需要的精度。
关于iphone - 在计算角度时避免使用 atan2 - atan2 精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769575/