如何计算Android手机相对于手机的旋转

时间:2012-12-01 08:33:46

标签: android rotation libgdx

如何计算手机旋转的数量?,其中“零度”是您指定的内容。

例如,假设您将手机放在桌面上的纵向位置 - 让我们称之为“零度”。

您将手机向右旋转,使其现在为横向(手机顶部朝右) - 即“90度”。

在此轮换期间,手机将旋转20度,30度等40度

到目前为止,我发现检测手机旋转的方法是通过加速度计和指南针,即“getAzimuth()”。但是,“零度”总是北方。

有没有办法计算手机的旋转而不是与基本方向有关?

注意:

  • 使用libgdx,虽然传感器行为不应该有太大差异
  • getRotation()”似乎能够确定0,90,270度的旋转但不是
  • 之间的值。
  • 我正在使用的手机没有陀螺仪,理想情况下解决方案也不需要陀螺仪

谢谢:)

2 个答案:

答案 0 :(得分:2)

您可以计算任意两个向量之间的角度。如果其中一个方向指向北(方位角为0) - 这只是一个特殊情况。您可以选择任何其他角度作为基础,只需从下一次测量中减去它。

没有办法告诉手机有0方位角没有指向北方。顺便说一下,“旋转”是关于屏幕方向的,这是移动旋转的副产品。

答案 1 :(得分:0)

检查手机旋转的方法可以使用加速度计运动传感器,下面的链接显示基本运动传感器link,但您需要使用此传感器检查完整旋转并增加旋转值