Android 如何获得设备中只有加速度传感器的旋转矩阵
我想让设备旋转,我已经实现了某种程度上,但代码不工作,该设备不存在磁传感器,方向传感器和陀螺仪传感器。但我看到一些应用程序在设备上运行,就像在设备上一样。设备htc Explorer没有给出值,因为这些传感器不存在。请告诉我如何才能完成这项任务。 我已经使用了这个代码,但作为传感器不可用,所以没有得到任何值,所以也没有旋转矩阵Android 如何获得设备中只有加速度传感器的旋转矩阵,android,accelerometer,sensormanager,Android,Accelerometer,Sensormanager,我想让设备旋转,我已经实现了某种程度上,但代码不工作,该设备不存在磁传感器,方向传感器和陀螺仪传感器。但我看到一些应用程序在设备上运行,就像在设备上一样。设备htc Explorer没有给出值,因为这些传感器不存在。请告诉我如何才能完成这项任务。 我已经使用了这个代码,但作为传感器不可用,所以没有得到任何值,所以也没有旋转矩阵 @Override public void onSensorChanged(SensorEvent event) { switch (eve
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
// copy new accelerometer data into accel array and calculate
// orientation
System.arraycopy(event.values, 0, accel, 0, 3);
calculateAccMagOrientation();
break;
case Sensor.TYPE_GYROSCOPE:
// process gyro data
gyroFunction(event);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
// copy new magnetometer data into magnet array
System.arraycopy(event.values, 0, magnet, 0, 3);
break;
}
}
方法是
public void calculateAccMagOrientation() {
if (SensorManager.getRotationMatrix(rotationMatrix, null, accel,
magnet)) {
SensorManager.remapCoordinateSystem(rotationMatrix, SensorManager.AXIS_X,
SensorManager.AXIS_Y, mValuesOrientation);
SensorManager.getOrientation(rotationMatrix, mValuesOrientation);
}else{
//float[] array = new float[9];
if(magnet[0]<=0){
System.out.println("herr.....");
System.out.println();
}else{
System.out.println("null so herr.....");
}
/*on htc device it is coming here so i need code here to get angle as only received accelerometer sensor data.
*/
}
}
public void calculateacmagorition(){
if(传感器管理器)getRotationMatrix(旋转矩阵、null、加速度、,
磁铁){
SensorManager.剩余协调系统(旋转矩阵、SensorManager.AXIS_X、,
SensorManager.AXIS_Y,mValuesOrientation);
SensorManager.getOrientation(旋转矩阵、M值或方向);
}否则{
//float[]数组=新的float[9];
如果(磁铁[0]您链接到的示例只需要倾斜角度,而不需要旋转矩阵。使用加速计获取倾斜角度就足够了
旋转矩阵包含的信息比倾斜角度更多,它还需要陀螺仪。对于倾斜角度,我需要做的是使用Math.atan2(y/x)是有效的或其他方式..顺便说一句,我用这个我不确定我是否理解你的问题。是的,你通过一个反三角函数得到角度。你必须给出你感兴趣的倾斜角度的明确定义和你正在使用的符号。你能建议我app测斜仪是如何按照设备mo绘制气泡的吗在用户界面上移动,因为我需要做一些类似的工作。事实上,我已经使用了旋转矩阵(如果存在),但在htc上不是这样。请告诉我你是否知道关于这一点。角度部分我使用了三角函数。如果我正确理解你的问题:我将使用加速计,用a平滑值,然后计算角度用相应的反三角函数。这就足以交互绘制气泡,它将合理而平滑地移动。