【问题标题】:How can I get horizontal rotation angle whatever device orientation?无论设备方向如何,如何获得水平旋转角度?
【发布时间】:2015-12-14 03:09:31
【问题描述】:

当设备为纵向时,我可以通过calculating the roll value(根据iOS Device Motion的定义)获得水平旋转角度。

移动设备的 x、y、z 轴:

但是当设备处于横向时,y 轴是水平的,x 轴是垂直的。我怎样才能得到角度?音高值不正确。我曾尝试在四元数中交换 x 和 y,但没有成功。

还有,当设备处于纵向和横向中间时,我如何获得角度,例如,您将设备围绕 z 轴倾斜 30 度?

是否有一个统一的四元数或旋转矩阵来计算任何设备方向的角度?

【问题讨论】:

    标签: android ios quaternions rotational-matrices devicemotion


    【解决方案1】:

    可能您想获得某些设备“方向”的角度。例如,如果您想获得 Z 轴在地面上的投影角度,请准确执行。

    1. 将 Z(0,0,1) 向量转换为当前设备旋转。
    2. 您在某个世界框架中有“ZinWorld”矢量的方向。
    3. 根据世界框架方向,将“ZinWorld”投影到地平面。例如,如果在默认世界框架中 Z 指向 UP ,则只需取“ZinWorld”的 X Y 分量。
    4. 用 atan2(X, Y) 得到合适的角度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多