
#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
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
- Najlepsze
- Wszystkie komentarze
Jakubussimus
@Visher: Może używasz sinusa zamiast cosinusa? albo na odwrót :D

Visher Autor
@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
Jakubussimus
@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.






