基本的にコンパスを作成するために TYPE_MAGNETIC_FIELD/TYPE_ACCELEROMETER センサーを使用しています。
getRotationMatrix を呼び出してから remapCoordinateSystem (常にランドスケープ) を呼び出して軸を交換し、次に getOrientation を呼び出してから、現在インデックス 0 が必要な軸を取得し、toDegrees を呼び出して、0 ~ 360 の範囲にします
val= (val+ 360) % 360;
少し変動することを除いて、すべてがうまく機能するので、God(google)を検索してローパスフィルターを検索し、ほとんどがうまく機能しませんでしたが、ほとんど機能するものを見つけました。
newval = oldVal + ALPHA * (newval-oldVal);
アルファ 約 0.2 ~ 0.5
したがって、180(回転で-180)ですぐに0にジャンプしてから181(-179回転)になりますが、フィルターを削除すると、これは行われません。
フィルターの何が問題なのか、またはこれを修正する方法を教えてください。
Android 2.2 であるため、TYPE_LINEAR_ACCELERATION または TYPE_ORIENTATION はありません (非推奨)
ありがとう