Sto cercando di realizzare una simulazione in elicottero semplificato (per il momento, è un cubo) in 3D e sto riscontrando alcuni problemi con la rotazione. Un elicottero può ruotare lungo i tre assi:
- ruotare su se stesso usando l'elica posteriore: rotazione dell'asse y
- inclinare a sinistra e a destra per andare a sinistra o a destra: rotazione dell'asse z
- inclinare su e giù per andare indietro o avanti: rotazione dell'asse x
Devo essere in grado di controllare ogni asse singolarmente. Finora ho provato a usare gli angoli di eulero, ma qualunque sia l'ordine di rotazione che uso, o incontro un blocco cardanico o alcuni "punti di commutazione" degli assi.
Sembra che devo usare i quaternioni, ma non so come controllare ogni singolo asse, poiché i quaternioni usano una direzione e un angolo. Dovrei creare tre quaternioni e moltiplicarli insieme? Non finirei con gli stessi problemi?
La cosa strana è che se uso il dito per rappresentare i tre assi del mio elicottero (pollice su = y, indice = z, mezzo = x), non mi sembra di incontrare questi problemi. Perché?