Ricordo dal WWDC che c'era un discorso che mostrava una teiera in OpenGL ES, che ruotava con il movimento del dispositivo. Sembrava che la teiera si fermasse nello spazio.Come ottenere una rotazione attorno all'asse Y rispetto a come l'utente tiene il dispositivo?
All'avvio dell'app, la teiera è stata avviata in una posizione specifica. Quindi, quando il dispositivo è stato ruotato, anche la teiera è ruotata per rimanere ferma nello spazio.
In questa conversazione, hanno menzionato che dobbiamo ottenere il "frame di riferimento", ad es. all'avvio dell'app, che ci dice in che modo l'utente aveva inizialmente il dispositivo.
Per esempio ecco l'asse accelerometro:
Voglio sapere rotazione attorno all'asse Y, ma rispetto a come l'utente tiene il dispositivo. Quindi, quando l'utente lo tiene in posizione verticale e ruota attorno a Y, ho bisogno di sapere che valore di rotazione.
Penso che la chiave stia rimuovendo la gravità dalle letture? Ho anche scelto come target iPhone 4/4S con giroscopi, ma credo che CoreMotion si fonderebbe automaticamente con i sensori.
Come ho potuto capire di quanto l'utente ha ruotato il dispositivo attorno all'asse Y?
può essere questo può darvi l'idea http://stackoverflow.com/questions/6464569/changing-uiviews-during-uiinterfaceorientation-on-ipad –
@ Praveen-K no, non si tratta di eventi di orientamento del dispositivo. Voglio conoscere l'angolo di rotazione preciso attorno a Y rispetto a come l'utente ha iniziato a impugnare il dispositivo. –
Bene, puoi sempre sapere all'avvio dell'app, in quale orientamento l'utente sta tenendo il dispositivo e in base a tale condizione puoi calcolare l'asse y (non sono sicuro, se lo stai chiedendo, dove l'utente è in possesso del dispositivo in angolo strano: P_) –