Wpis z mikrobloga

#android #anddev #programowanie Mam taki mały problem z liczeniem obrotu telefonu. Używam sobie metody getOrientation, dzielę wyniki przez 3.14 i dostaję wartości z przedziału -1 do 1 dla każdej osi obrotu, z wyjątkiem jednej. Oś obrotu wzdłuż telefonu działa spoko, natomiast ta druga, pod kątem 90 stopni do tej pierwszej (ale kręcę..) przyjmuje wartości z przedziału -0.5 do 0.5 oraz, gdy normalnie powinna iść wg schematu: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 itd, ta idzie: 0.3, 0.4, 0.5, 0.4, 0.3, 0.2, ...

Czyli de facto pomiar = 0.25 może oznaczać dwie możliwości obrotu: o 45 lub 135 stopni.

Ktoś wie jak ogranąć dobry pomiar tego? Użycie żyroskopu i Sensor.TYPEGAMEROTATION_VECTOR odpada, bo go nie ma.

Fragment kodu: http://wklej.to/DIhgr
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Jakubussimus: Żebym jeszcze wiedział, o co chodzi z tymi wszystkimi macierzami obrotu itd, z wiedza z technikum mogę liczyć tylko na gotowe metody, rzadko co jestem w stanie zastosować gdzieś w rzeczywistości funkcje trygonometryczne oprócz matematycznego trójkąta w zadaniu ;q
  • Odpowiedz
@Visher: Ja powiem tak: nie wiem kompletnie, na czym polega to, co robisz, ale z matematycznego punktu widzenia sin(x) jest niejednoznaczny w przedziale (0, 180 stopni), a cos(x) już jest. A jak zmienić jedną funkcję na drugą, nie mam zielonego pojęcia.
  • Odpowiedz