現在 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);
...
}
}