2012-01-08 10 views
7

Uso i quaternioni nel mio gioco e mi chiedo come, quando avrò due quaternioni di orientamento, potrò ottenere il quaternario di rotazione necessario per passare dal primo, q1, al secondo, q2. Sono autodidatta, quindi potrebbero mancare soluzioni evidenti nel mio vocabolario.Quando ho due quaternioni di orientamento, come faccio a trovare il quaternario di rotazione necessario per passare da uno all'altro?

In equazioni, quello che sto facendo quando ho ruotare dal primo al l'altro è la seguente: q2 = r * q1

Tuttavia, ora r è l'ignoto. Conta anche qui le regole dell'algebra? Se questo è il caso, finirò per dividere un quaternio per un altro, qualcosa che non riesco a trovare una buona spiegazione per internet.

sto usando un programma chiamato Game Maker

+1

È educato su StackOverflow per scegliere una risposta, contrassegna la domanda come risposta e ricompensa la persona che ha fornito la risposta migliore. –

risposta

10

Al fine di "dividere" con un quaternione, si inverte in modo che sia la rotazione opposto. Per invertire un quaternione, si nega sia la w componente o le (x, y, z) componenti, ma non entrambe quando verranno lasciati con lo stesso quaternione è iniziato con (completamente il quaternio negato rappresenta la stessa rotazione).

Quindi, ricorda che i quaternioni non sono commutativi. Quindi:

q2 = r*q1 
q2*q1' = r 

Dove q1' è il quaternione invertita e deve essere moltiplicata sul lato destro del q2 per ottenere il risultato giusto.

+0

Oh, giusto, grazie per le vostre risposte! Non sapevo che invertire e coniugare un quaternion era la stessa cosa. Questo risolve tutto! – Sindre

+3

Nota: il coniugato è lo stesso dell'inverso per i quaternioni di unità (vale a dire i quaternioni di lunghezza 1). Qui va bene dato che i quaternioni di rotazione sono quaternioni unitari, ma penso che sia importante sottolineare che si tratta di un caso speciale. – Medo42

Problemi correlati