无论设备方向如何,我如何获得水平旋转角度?

时间:2015-12-14 03:09:31

标签: android ios quaternions rotational-matrices devicemotion

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

移动设备的x,y,z轴: ios rotation frame image

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

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

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

1 个答案:

答案 0 :(得分:0)

可能你想获得一些设备的角度"方向"。例如,如果您想要将Z轴的角度投射到地面上,请完全准确。

  1. 将Z(0,0,1)向量转换为当前设备旋转。
  2. 你有" ZinWorld"的方向。在一些世界框架中的矢量。
  3. 根据世界框架定位,项目" ZinWorld"进入地平面。例如,如果在默认情况下,世界框架Z指向UP,那么只需采用" ZinWorld"的X Y组件。
  4. 取atan2(X,Y)以获得合适的角度。