首页 理论教育 Android游戏开发:旋转向量传感器使用技巧

Android游戏开发:旋转向量传感器使用技巧

时间:2023-10-22 理论教育 版权反馈
【摘要】:Android旋转向量传感器的具体说明见表10-2。则sin表示RV的数量级,RV的方向与轴旋转的方向相同,这样RV的3个数值与cos组成一个四元组。而RV的数据没有单位,使用的坐标系与加速度相同。GV、LA和RV的数值没有物理传感器可以直接给出,需要G-sensor、O-sensor和Gyro-sensor经过算法计算后得出。例如下面的代码演示了获取默认的旋转向量传感器的方法。

Android游戏开发:旋转向量传感器使用技巧

在Android系统中,旋转向量传感器的值是TYPE_ROTATION_VECTOR,旋转矢量代表设备的方向,是一个将坐标轴和角度混合计算得到的数据。Android旋转向量传感器的具体说明见表10-2。

10-2 Android旋转向量传感器的具体说明

978-7-111-54543-9-Part03-27.jpg

由表10-1可知,RV-sensor能够输出如下的3个数据。

● x*sin(θ/2)。

● y*sin(θ/2)。

● z*sin(θ/2)。

则sin(theta/2)表示RV的数量级,RV的方向与轴旋转的方向相同,这样RV的3个数值与cos(theta/2)组成一个四元组。而RV的数据没有单位,使用的坐标系与加速度相同。例如下面的演示代码。

978-7-111-54543-9-Part03-28.jpg

GV、LA和RV的数值没有物理传感器可以直接给出,需要G-sensor、O-sensor和Gyro-sensor经过算法计算后得出。

由此可见,旋转向量代表了设备的方位,这个方位结果由角度和坐标轴信息组成,在里面包含了设备围绕坐标轴(x、y、z)旋转的角度θ。例如下面的代码演示了获取默认的旋转向量传感器的方法。(www.xing528.com)

978-7-111-54543-9-Part03-29.jpg

在Android系统中,旋转向量的3个元素等于四元组的后3个部分(cos(θ/2)、x*sin(θ/2)、y*sin(θ/2)、z*sin(θ/2)),没有单位。X、Y、Z轴的具体定义与加速度传感器的相同。旋转向量传感器的坐标系如图10-15所示。

上述坐标系具有如下所示的特点。

● X:定义为向量积Y×Z。它是以设备当前位置为切

点的地球切线,方向朝东。

● Y:以设备当前位置为切点的地球切线,指向地

北极

● Z:与地平面垂直,指向天空。

978-7-111-54543-9-Part03-30.jpg

图10-15 旋转向量传感器的坐标系

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈