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>