Android Java atan2()的结果介于-Pi、Pi或0360之间(与两根手指旋转有关)



我很抱歉遇到这样的基本问题,但我正在尝试在Android上实现两个手指的旋转,我在SO上找到了几个帖子,试图理解它们。我不明白为什么有时atan2的结果被认为在-Pi和Pi之间,有时是0、360或-180、180。

我真的无法理解:https://stackoverflow.com/a/10682187/1692502其中用户对假定为<3.14…

感谢

假设你不理解360°和2 Pi的区别:有不同的方法来表示圆周长上的距离。0°至360°的角度可能是最常见的角度,但在科学记数法中,使用弧度更为常见,弧度是单位圆周长上的距离。

如果你想到单位圆(半径为1的圆),你会注意到周长是2π。如果你只绕半个圆,它的周长将是Pi,你从0°到180°。所以你在问题中提到的所有符号实际上都是一样的,只是用不同的方式表达而已。

atan2返回一个介于-Pi和+Pi之间的值(它覆盖了2个Pi,因此是一个完整的圆),可以使用Math.toDegrees()轻松地将其转换为度数

来自atan2:的Javadoc

公共静态双atan2(双y,双x)

返回直角坐标(x,y)到极坐标(r,theta)转换后的角度theta。这种方法通过计算在-pi到pi范围内的y/x的反正切来计算相位θ。

不确定混淆在哪里(似乎链接的SO Answer是错误的)

最新更新