getRotationMatrix
a[0] a[1] a[2]
a[3] a[4] a[5]
a[6] a[7] a[8]
计算pitch = Math.asin(-R[7])
如果设备不是平面,则旋转为Math.atan2(a[6], a[7])
如果设备一开始就是平面的,请获取初始方位角= Math.atan2(R[1], R[4]),然后取与后续方位角的差值即可获得旋转。
如果设备从平面到非平面转换,则不应该有问题,旋转就是上述非平面旋转。
如果设备从非平面到平面转换,则需要获取初始方位角。如果设备竖立且只有绕z轴的旋转,则此初始方向应不会改变,可以将其设置为后置摄像头方向Math.atan2(-a [2],-a [5])。实际情况可能会稍微改变几度,因此您需要取平均值。