0

当设备为纵向时,我可以通过计算滚动值(根据iOS Device Motion的定义)来获得水平旋转角度。

移动设备的 x、y、z 轴: ios旋转帧图像

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

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

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

4

1 回答 1

0

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

  1. 将 Z(0,0,1) 向量转换为当前设备旋转。
  2. 您在某个世界框架中有“ZinWorld”矢量的方向。
  3. 根据世界框架方向,将“ZinWorld”投影到地平面。例如,如果在默认的世界坐标系中 Z 指向 UP ,那么只取“ZinWorld”的 XY 分量。
  4. 取 atan2(X, Y) 以获得适当的角度。
于 2015-12-16T09:29:20.297 回答