0

スマートフォンのユーザーが左または右に曲がるか、方向転換するかを検出したい。

「右折」を説明する例を次に示します。

ユーザーは交差点に面しています。ここで、ユーザーが正しい道をたどるか、左の道を進むか、直進するかを検出したいと考えています。

したがって、これを使用して方位角を取得します。

    @Override
public void onSensorChanged(SensorEvent event) {

    switch (event.sensor.getType()) {
    case Sensor.TYPE_ACCELEROMETER:
        for (int i = 0; i < 3; i++) {
            valuesAccelerometer[i] = event.values[i];
        }
        break;
    case Sensor.TYPE_MAGNETIC_FIELD:
        for (int i = 0; i < 3; i++) {
            valuesMagneticField[i] = event.values[i];
        }
        break;
    }
    boolean success = SensorManager.getRotationMatrix(matrixR, matrixI,
            valuesAccelerometer, valuesMagneticField);

    if (success) {
        SensorManager.getOrientation(matrixR, matrixValues);
        Math.round(Math.toDegrees(Math.acos(matrixValues[0])));
        azimuth = (float) Math.round(Math.toDegrees(matrixValues[0]));
        if (azimuth < 0.0f) {
            azimuth += 360.0f;
        }
   }

これはうまくいきます。しかし、回転の開始点と終了点を設定する方法がわかりません...

4

1 に答える 1