Quando si utilizza cmDevicemotion, se il dispositivo è dritto (pitch= 90), è davvero instabile.Comunque per risolvere questo?
-
11-12-2019 - |
Domanda
Conosco il sistema di coordinate (pitch, yaw, roll) ha il suo difetto matematico-saggio. Comunque spero davvero che qualcosa invece o derivato da queste coordinate possa essere un'alternativa.
Quello che provo a fare è spostare il dispositivo (diciamo che è un iPhone) nel mondo reale e cercando di capire lo sbadiglio e il lancio per quanto riguarda l'occhio dell'utente. Pertanto, la gamma di imbarcazioni dovrebbe essere (-180, 180) e la gamma di tono dovrebbe essere (-90, 90). Mentre muovo l'iPhone (sempre di fronte a me) dal basso verso la parte anteriore, il cmDevicemotion mi dà il passo cambia da 0 a 90 e mentre muovo l'iPhone (ancora rivolto a me) dalla parte anteriore all'inizio, la cmDevicemotion mi dà cambiamenti da 90 a 0. Questi sono buoni e sono perfettamente felice dei dati del passo.
Tuttavia, quando il passo è vicino a 90, Yaw è molto tremante e instabile. Will, questo non è il problema perché posso ignorare il cambiamento su imbardata quando il passo è intorno a 90. Tuttavia, il problema reale è che il valore dei cambiamenti di imbardata drammaticamente prima del passo crescente e dopo la diminuzione del passo. Voglio dire che non è solo shaky ma i cambiamenti medi! cambia qualcosa come 180 (PI). Immagino che sia perché la coordinata cambia totalmente. Ma sono perso sul trasferimento delle coordinate ora.
Soluzione
Questa soluzione disordinata che hai appena descritto è esattamente il motivo per cui non dovresti usare rotoli, pitch e yaw.
O fai ulteriormente su questa strada e fai il casino più grande o Usa matrici di rotazione o quaternioni .