我正在编程加速度计以测量距离。我已经读过加入两倍加速度,错误是非常结果但是我并不关心它,我有足够的精度来做我想做的事情。 问题是我在x轴上的位置总是负面的,我不知道它来自哪里,因为我向所有方向移动手机而且我仍然有负值。
这是我从互联网上挑选和安排的代码:
@Override
public void onSensorChanged(SensorEvent event){
if(last_values != null){
float dt = (event.timestamp - last_timestamp) * NS2S;
acceleration[0]= event.values[0];
acceleration[1]= event.values[1];
acceleration[2]= event.values[2];
for(int index = 0 ; index < 3 ; ++index){
velocity[index] += (acceleration[index] + last_values[index])/2 * dt;
position[index] += velocity[index] * dt;
}
}
else{
last_values = new float[3];
acceleration = new float[3];
velocity = new float[3];
position = new float[3];
velocity[0] = velocity[1] = velocity[2] = 0f;
position[0] = position[1] = position[2] = 0f;
}
xarr.add(position[0]);
yarr.add(position[1]);
zarr.add(position[2]);
tvX.setText(String.valueOf(position[0]));
tvY.setText(String.valueOf(position[1]));
tvZ.setText(String.valueOf(position[2]));
last_timestamp = event.timestamp;
}
这是一些X轴值:
X轴
-0,001147982
-0,003418462
-0,006807898
-0,011325749
-0,01697435
-0,023762027
-0,031681452
-0,04072018
-0,050905682
-0,062279336
-0,07478787
-0,088445522
-0,103226766
-0,119143963
-0,136174649
-0,154338345
-0,17362912
-0,19407627
-0,215692967
请帮忙。