2013-04-08 9 views
7

Posso trovare un sacco di domande su come trasformare un quaternione in un vettore di direzione, ma nessuno per il contrario che mi fa pensare che sto facendo qualcosa di sbagliato, ma sopportami.Conversione di un vettore di direzione in una rotazione di quaternario

Quello che sto cercando di fare è semplicemente visualizzare la direzione di una luce direzionale usando un modello di freccia.

La direzione della luce direzionale è un vettore unitario ma i modelli vengono ruotati utilizzando i quaternioni.

Quindi .. Come ruoto questo modello per adattarlo alla direzione della luce?

O sono pazzo e non posso davvero farlo, visto che la luce non ha posizione, ma il modello?

risposta

10

Un vettore di direzione non è una rotazione definita, ma ha ancora un numero infinito di possibili soluzioni. Vedi non ci sono informazioni su come ruotare attorno all'asse. Due, i vettori sono possibili come un vettore e una rotazione (con un centro significativo) e in effetti una matrice completamente definita.

Perché nel tuo caso la rotazione è piuttosto priva di significato, basta usare il vettore su per riferimento (cioè a meno che la tua luce non brilli dall'alto verso il basso o viceversa, allora hai bisogno di un altro riferimento).

Quindi prendere il prodotto incrociato del vettore di direzione D e il vettore U per il vettore laterale S quindi incrociare D e S per un nuovo U n. Quindi utilizzare D, U n, S come righe (o colonne a seconda di come viene impostata la regola di calcolo) come matrice. Matrix to quaternion è una matematica ben nota.

+0

http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ – Kit10

+0

Dettagli per la conversione di direzione e up-vector in matrice: https://stackoverflow.com/questions/18558910/direction-vector -per-matrice di rotazione –

Problemi correlati