Autore Topic: Sensor.TYPE_ROTATION_VECTOR  (Letto 860 volte)

Offline giuCris

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung ace plus
  • Sistema operativo:
    Ubuntu 12.04
Sensor.TYPE_ROTATION_VECTOR
« il: 14 Marzo 2013, 19:00:44 CET »
0
salve, mentre scrivevo un filtro per accelerometro e magnetometro, ho riletto la documentazione google, dove dice che, per un'applicazioni di realtà aumentata è meglio usare il rotation vector.
Qualcuno di voi può postarmi un pò di codice sul come fare dal rotation vector ad ottenere azimuth pitch e roll?

Offline tonnuns

  • Utente junior
  • **
  • Post: 81
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows
Re:Sensor.TYPE_ROTATION_VECTOR
« Risposta #1 il: 04 Maggio 2013, 11:57:57 CEST »
+1
Sono arrivato tardi, ho visto che hai risolto, ma per la cronaca metto la soluzione, questo è il codice da mettere nel metodo onSensorChanged(SensorEvent event):

Codice (Java): [Seleziona]
if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) {
                UIDeviceOrientation currentOrientation = this.getCurrentDeviceOrientation();
                SensorManager.getRotationMatrixFromVector(mRotationMatrix , event.values);
           
            SensorManager.getOrientation(mRotationMatrix, orientation);
           
            azimuth = (float) Math.toDegrees(orientation[0]);
            pitch = (float) Math.toDegrees(orientation[1]);
            roll = (float) Math.toDegrees(orientation[2]);
        }