以下是自己查看网上资料写的算法,但是实际测试发现,我希望的是静止状态下得到的实际加速度应该为零,但是按照重力加速度向x,y,z分量的角度写的当下的算法是不等于0的,和实际要求不符合;请求好心人指点以下:
public void onSensorChanged(SensorEvent evt) {
// TODO Auto-generated method stub
if (evt.sensor.getType() == Sensor.TYPE_ORIENTATION) {
Or_x = evt.values[SensorManager.DATA_X];
or_x = (double) Or_x;
Or_z = evt.values[SensorManager.DATA_Z];
or_z = (double) Or_z;
Or_y = evt.values[SensorManager.DATA_Y];
or_y = (double) Or_y;
}
if (evt.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
AccelX = evt.values[SensorManager.DATA_X];
AccelY = evt.values[SensorManager.DATA_Y];
AccelZ = evt.values[SensorManager.DATA_Z];
}
// ///
ac_hx = Math.sin(or_z * 3.1415926 / 180) * 9.81;//静止状态下or_z翻转角下x方向固有的加速度
axp = (A
public void onSensorChanged(SensorEvent evt) {
// TODO Auto-generated method stub
if (evt.sensor.getType() == Sensor.TYPE_ORIENTATION) {
Or_x = evt.values[SensorManager.DATA_X];
or_x = (double) Or_x;
Or_z = evt.values[SensorManager.DATA_Z];
or_z = (double) Or_z;
Or_y = evt.values[SensorManager.DATA_Y];
or_y = (double) Or_y;
}
if (evt.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
AccelX = evt.values[SensorManager.DATA_X];
AccelY = evt.values[SensorManager.DATA_Y];
AccelZ = evt.values[SensorManager.DATA_Z];
}
// ///
ac_hx = Math.sin(or_z * 3.1415926 / 180) * 9.81;//静止状态下or_z翻转角下x方向固有的加速度
axp = (A