Die Android-Methode getOrientation () gibt schlechte Ergebnisse zurück

Ich erstelle eine 3D-Kompass-Anwendung.

Ich benutzegetOrientation Methode zur Orientierung (fast gleiche Implementierung wieHier). Wenn ich das Telefon auf den Tisch lege, funktioniert es gut, aber wenn die Oberseite des Telefons auf den Himmel zeigt (minus Z-Achse auf dem Bild; Kugel ist die Erde), liefert getOrientation wirklich schlechte Ergebnisse. Es werden Werte für die Z-Achse zwischen 0 und 180 Grad in wenigen Realgraden angegeben. Gibt es eine Möglichkeit, dieses Verhalten zu unterdrücken? Ich habe einekleines Video was beschreibt problem (sorry für schlechte qualität). Danke im Voraus.

Lösung: Wenn Sie ein Modell drehen, gibt es einen Unterschied zwischen:

<code>gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH


gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION
gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage