Android 加速度计变换的旋转矩阵
Android rotation matrix for accelerometer transformation
如果我想将我的加速度值从 phone 坐标系转换到世界坐标系,我应该使用传感器管理器中的哪个旋转矩阵?此外,如果我将我的加速度计值乘以下面的每一个值,我实际上会得到什么结果?
开发文档中列出了很多:
- TYPE_ROTATION_VECTOR
- TYPE_GAME_ROTATION_VECTOR
- TYPE_GEOMAGNETIC_ROTATION_VECTOR
- TYPE_ORIENTATION
- API 似乎还提供了一个
getRotationMatrix
方法,但我不确定这是上述方法的组合,还是完全不同的方法
我已经看到了一些关于此的话题(例如 Acceleration from device's coordinate system into absolute coordinate system),但它们已经相当老了,我不确定 new/more 是否有任何有用的东西被添加到 android 因为
您需要获取 Rotation Matrix
,然后该矩阵与 onSensorChanged 中的加速度计值的乘积将为您提供世界坐标系中的坐标。
您可以在 https://github.com/hoananguyen/dsensor 下载我的库,然后在您的代码中调用 DSensorManager.startDSensor(context, DSensor.TYPE_WORLD_ACCELEROMETER, listener)
。确保在不再需要传感器时调用 DSensorManager.stopDSensor
。
如果我想将我的加速度值从 phone 坐标系转换到世界坐标系,我应该使用传感器管理器中的哪个旋转矩阵?此外,如果我将我的加速度计值乘以下面的每一个值,我实际上会得到什么结果?
开发文档中列出了很多:
- TYPE_ROTATION_VECTOR
- TYPE_GAME_ROTATION_VECTOR
- TYPE_GEOMAGNETIC_ROTATION_VECTOR
- TYPE_ORIENTATION
- API 似乎还提供了一个
getRotationMatrix
方法,但我不确定这是上述方法的组合,还是完全不同的方法
我已经看到了一些关于此的话题(例如 Acceleration from device's coordinate system into absolute coordinate system),但它们已经相当老了,我不确定 new/more 是否有任何有用的东西被添加到 android 因为
您需要获取 Rotation Matrix
,然后该矩阵与 onSensorChanged 中的加速度计值的乘积将为您提供世界坐标系中的坐标。
您可以在 https://github.com/hoananguyen/dsensor 下载我的库,然后在您的代码中调用 DSensorManager.startDSensor(context, DSensor.TYPE_WORLD_ACCELEROMETER, listener)
。确保在不再需要传感器时调用 DSensorManager.stopDSensor
。