Ich denke, X sollte 0 sein und y sollte positiv sein, während z nahe 0 ist, damit der Kompass in Richtung Erde zeigt. (was bedeutet, dass das Telefon vertikal gehalten wird).
Im Allgemeinen vom 0 Winkel sollte der Kompass Winkel etwas wie
float accelerometerMaxRange = 10; // This is NOT right, but it's a good value to work with
float newAngle = 0;
if (z > 9) {
// Phone is horizontally flat, can't point towards gravity, really. Do whatever you think is right
} else {
newAngle = (float)(x * 90/accelerometerMaxRange);
if (y < 0) {
newAngle = 180 - newAngle;
}
}
werden, um die Top-Frage ist, wie groß ist die 'accelerometerMaxRange';) –