当设备是人像时,我可以通过计算滚动值(根据 iOS Device Motion 的定义)获得水平旋转角度。
移动设备的 x,y,z-axis:
但是当设备处于横向时,y-axis 是水平的,x-axis 是垂直的。我怎样才能获得角度?音高值不正确。我试图在四元数中交换 x 和 y,但没有奏效。
而且,当设备处于纵向和横向中间时,如何获得角度,例如,您将设备倾斜大约 z-axis?
是否有统一的四元数或旋转矩阵来计算任何设备方向的角度?
可能你想获得一些设备“方向”的角度。例如,如果您想要将 Z 轴的角度投射到地面上,请完全准确。
将 Z(0,0,1)向量转换为当前设备旋转。
在某个世界框架中你有“ZinWorld”矢量的方向。
根据世界框架定位,将“ZinWorld”项目纳入地平面。例如,如果在默认情况下,世界框架 Z 指向 UP,则只需获取“ZinWorld”的 X Y 组件。
取 atan2(X,Y)得到合适的角度。
1 回答
可能你想获得一些设备“方向”的角度。例如,如果您想要将 Z 轴的角度投射到地面上,请完全准确。
将 Z(0,0,1)向量转换为当前设备旋转。
在某个世界框架中你有“ZinWorld”矢量的方向。
根据世界框架定位,将“ZinWorld”项目纳入地平面。例如,如果在默认情况下,世界框架 Z 指向 UP,则只需获取“ZinWorld”的 X Y 组件。
取 atan2(X,Y)得到合适的角度。