我目前正在编写一个 Android AR 应用程序,但我的方位角计算存在问题,具体取决于初始设备倾斜度。
我使用 ROTATION_VECTOR 传感器来获取方位角、高度和倾斜度。
当我启动我的应用程序并且手机与地面垂直时,我从北方获得了良好的方位角。当我启动应用程序并且手机与地面平行时,我的价值观很差。更改设备倾斜度时,我也有奇怪的值。
这是我的代码:
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == sensor.TYPE_ROTATION_VECTOR)
{
SensorManager.getRotationMatrixFromVector(rotationVectorMatrix, event.values);
SensorManager.remapCoordinateSystem(rotationVectorMatrix, SensorManager.AXIS_X, SensorManager.AXIS_Z, rotationMatrix);
SensorManager.getOrientation(rotationMatrix, orientation);
...
}
}