我很抱歉遇到这样的基本问题,但我正在尝试在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是错误的)