getOrientation() メソッドを使用して見出しの値を取得しようとしています。
boolean success = SensorManager.getRotationMatrix(rot, incl, accel, magnet);
if (success) {
// Compute orientation
float orientation[] = new float[3];
SensorManager.getOrientation(rot, orientation);
}
これらの値は、電話を安定させて安定した位置で歩いても、大きく異なります。
次に、加速度値の参照を電話からワールド軸に変更しようとしました。
// Compute world acceleration
float wAccel[] = new float[4];
float newAccel[] = new float[]{accel[0],accel[1],accel[2], 0};
android.opengl.Matrix.multiplyMV(wAccel, 0, rot, 0, newAccel, 0);
magnetLine += "W" + LOGSEPARATOR +
tsString + LOGSEPARATOR +
wAccel[0] + LOGSEPARATOR +
wAccel[1] + LOGSEPARATOR +
wAccel[2] + "\n";
}
次に、atan2 関数で X 軸と Y 軸の値を使用して、ベクトルの角度を決定しました。異なる方法で変化する場合でも、これらの値は依然として奇妙な動作を示します (値が一定の場合もあれば、足跡をたどるかのように周期的な動作を示す場合もあります)。
これに似た状況で remapCoordinate システムを呼び出す人々の例をいくつか見てきました。これは私が見逃しているものですか?