我想在
Android上获得加速度计,并将它们放在地球坐标系上,就像这个主题
Acceleration from device’s coordinate system into absolute coordinate system或这里
Transforming accelerometer’s data from device’s coordinates to real world coordinates一样,但这些解决方案对我不起作用.我正在处理Processing.该项目只是为了跟踪手机在太空中的加速度,无论它是怎样的(站立,侧面……).我也是Android新手.
我很感激你的帮助!
谢谢.
我很感激你的帮助!
谢谢.
编辑:我不需要手机准确的位置,只需要加速.
解决方法
我终于解决了!我结合了2个先前的答案,这里是代码:
monSensorManager.getRotationMatrix(Rotate,I,gravity_values,mag_values); float[] relativacc = new float[4]; float[] inv = new float[16]; relativacc[0]=lin_values[0]; relativacc[1]=lin_values[1]; relativacc[2]=lin_values[2]; relativacc[3]=0; android.opengl.Matrix.invertM(inv,Rotate,0); android.opengl.Matrix.multiplyMV(earthAcc,inv,relativacc,0);
1)获取地球坐标中的电话单元矢量2)反转矩阵以获得电话坐标中的地球单位矢量3)乘以单位矢量的手机加速度,将手机坐标转换为地球坐标.感谢大家的帮助!