Quando si utilizza cmDevicemotion, se il dispositivo è dritto (pitch= 90), è davvero instabile.Comunque per risolvere questo?

StackOverflow https://stackoverflow.com//questions/10665306

  •  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.

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top