Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 08:36:00
Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有
Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有高手教教?我也是初接触安卓传感器.或者一起讨论讨论?
Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有
sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
aSensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensor = sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
sm.registerListener(myListener,aSensor,SensorManager.SENSOR_DELAY_NORMAL);
sm.registerListener(myListener,mSensor,SensorManager.SENSOR_DELAY_NORMAL);
SensorEventListener myListener =new SensorEventListener() {
publicvoid onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
magneticFieldValues = sensorEvent.values;
if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
accelerometerValues = sensorEvent.values;
float[] values =newfloat[3];
float[] R = newfloat[9];
SensorManager.getRotationMatrix(R,null,accelerometerValues,magneticFieldValues);
SensorManager.getOrientation(R,values);
//这里 values[0],values[1],values[2]里边的数据就是x y z 轴 分别的角度
}
publicvoid onAccuracyChanged(Sensor sensor,int accuracy) {}
};