Uzyskiwanie wektora kierunku w systemie Android
Jak mogę uzyskać wektor kierunkowy reprezentujący kierunek, w którym wskazuje tylna strona urządzenia względem współrzędnych ziemi?
Na przykład, jeśli umieścisz go na biurku (ekran skierowany do góry), powinien on brzmieć [0,0, -1], a jeśli jest trzymany pionowo w kierunku północnym, powinien wskazywać [1,0,0] itd.
Wiem, jak to obliczyć na podstawie kursu, wysokości i rzutu, o ile są one względem współrzędnych ziemi. Żeby było jasne, nie szukam prędkości kątowej, ale rzeczywistego kąta prądu względem płaszczyzny stycznej do ziemi. Jeśli więc urządzenie jest trzymane pionowo i zwrócone na północ, kąt „alfa” powinien wynosić 0 lub 360, kąt „beta” powinien wynosić 90, a „gamma” powinien brzmieć 0. Nie mogę dowiedzieć się, jak uzyskać te wartości zarówno.
Czytałem API przez cały dzień i nadal nie mogę znaleźć sposobu na uzyskanie jednej z tych rzeczy.
public void onSensorChanged(SensorEvent event) {
// ?
}
Dziękujemy za wszelkie spostrzeżenia.