我试图得到两个轴上的加速度,这两个轴垂直于重力的方向,而不考虑手机的方向,但不太确定如何做到这一点,
我一直在研究使用TYPE_MAGNETIC_FIELD和TYPE_ROTATION_VECTOR,但不知道如何实现同样的目标。
我只需要在xy平面上的加速度,假设重力的方向在z平面上,而不考虑音素的方向。
提前感谢
发布于 2015-04-19 23:36:45
这并不简单:)
要使用TYPE_MAGNETIC_FIELD,你应该知道地球磁场在你所在的位置是如何定向的,这不是微不足道的。
你可以尝试使用TYPE_GRAVITY和TYPE_LINEAR_ACCELERATION:第一个返回重力加速度矢量,第二个返回设备的加速度(不包括重力)(它应该类似于LINEAR_ACCELERATION =加速计-重力,但我不知道它有多精确)。
为了让重力在z轴上,你必须执行重力矢量的旋转,使其具有(00g)的形式……实际上,你必须找到旋转矩阵,它以(00g)的形式变换你的重力矢量。有关此here (wikipedia)的更多信息。
一旦你有了这个矩阵,你就把它应用到线性加速度矢量上,它的x和y分量就是你想要的。
如果你的手机没有这两个传感器,你必须自己计算重力和线加速度:要做到这一点,你可以实现一个高通滤波器来获得线加速度,一个低通滤波器来获得重力矢量。有关此here的更多信息。
https://stackoverflow.com/questions/29726259
复制相似问题