-
afazio
| .
|
|
|
Un quaternione unitario, quello che ci interessa nelle rotazioni, è:
q= [ cosϑ ; n*sinϑ]
in cui n è un vettore di modulo unitario avente quindi le tre componenti
nx = b*i/radq(b²+c²+d²) ny = c*j/radq(b²+c²+d²) nz = d*k/radq(b²+c²+d²)
Dato adesso un generico vettore p=[px ; py; pz]
o scritto anche nella forma p = i*px + j*py+k*pz
esso puo' essere visto come un quaternione con la parte reale nulla
qp = [ 0; p]
ed ecco adesso la magia:
Il prodotto q*qp*q' produce la rotazione del vettore p dell'angolo 2*ϑ rispetto all'asse definito da n
indicando quindi con w il vettore che si produce dopo la rotazione, avremo:
[0; w] = [ cosϑ ; n*sinϑ]*[ 0; p]* [ cosϑ ;- n*sinϑ]
Modificando il quaternione unitario in q= [ cosϑ/2 ; n*sinϑ/2] otterremo una rotazione di ϑ Quindi è sufficiente conoscere le regole della moltiplicazione tra quaternioni per ottenere il vettore ruotato nello spazio 3D.
Si definisce un operatore M una volta per tutte che applicato ad un vettore produce la rotazione voluta.
w=M*p
l'operatore M è meglio illustrato nella seguente immagine tratta da un documento trovato in rete
L'unica nota esplicativa alla formula riportata nell'ìmmagine è che l'inverso di un quaternione unitario coincide con il coniugato.
Edited by afazio - 19/8/2013, 00:06
|
|
| .
|
9 replies since 18/8/2013, 09:57 471 views
.