Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 17:11:40
![Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有](/uploads/image/z/9644373-45-3.jpg?t=Android+%E5%8A%A0%E9%80%9F%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8+%E6%80%8E%E4%B9%88%E8%BD%AC%E6%8D%A2%E6%88%90%E8%A7%92%E5%BA%A6+%E6%88%91%E5%BE%97%E5%88%B0+%E4%BA%86%E5%8A%A0%E9%80%9F%E5%BA%A6%E7%9A%84%E4%BC%A0%E6%84%9F%E5%99%A8%E7%9A%84%E4%B8%89%E4%B8%AA%E6%95%B0%E5%80%BC%2C%E5%B9%B6%E4%B8%94%E4%B9%9F%E8%AE%A9%E5%AE%83%E9%80%9A%E8%BF%87%E5%8F%A5%E6%9F%84%E6%98%BE%E7%A4%BA%E5%88%B0%E4%BA%86%E6%98%BE%E7%A4%BA%E5%B1%8F%E4%B8%8A%2C%E4%BD%86%E6%98%AF%E7%8E%B0%E5%9C%A8%E6%88%91%E6%83%B3%E7%94%A8%E8%BF%99%E4%B8%89%E4%B8%AA%E6%95%B0%E5%80%BC%E6%B1%82%E5%BE%97%E8%AE%BE%E5%A4%87%E4%B8%8E%E6%B0%B4%E5%B9%B3%E6%88%96%E5%9E%82%E7%9B%B4%E7%9A%84%E5%A4%B9%E8%A7%92%2C%E6%80%8E%E4%B9%88%E5%BE%97%E5%88%B0%3F%2C%E6%9C%89%E6%B2%A1%E6%9C%89)
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) {}
};