2015-12-21 19 views
7

Esistono due sistemi di coordinate. Conosciamo le coordinate 3D dell'origine e i vettori 3D degli assi del secondo sistema di coordinate rispetto al primo sistema di coordinate. Allora come possiamo trovare la matrice di rotazione che trasforma il primo sistema di coordinate nel secondo sistema di coordinate?Come trovare la matrice di rotazione tra due sistemi di coordinate?

enter image description here

risposta

5

Il problema descritto può essere risolto come segue. Let

M = m_11 m_12 m_13 
    m_21 m_22 m_23 
    m_31 m_32 m_33 

denotare la matrice di rotazione desiderata. Richiediamo

1 0 0 * M + t = x_x x_y x_z 
0 1 0   y_x y_y y_z 
0 0 1   z_x z_y z_y 

dove t indica la traduzione; vediamo che questa uguaglianza di matrice può essere risolta moltiplicando da sinistra la matrice di identità, che è l'inverso di se stessa; quindi otteniamo la seguente uguaglianza.

M + t = x_x x_y x_z 
     y_x y_y y_z 
     z_x z_y z_y 

Questo può essere riorganizzate sottraendo t da entrambi i lati per ottenere la matrice desiderata M come segue.

M = x_x x_y x_z - t = x_x-t_x x_y-t_y x_z-t_z 
    y_x y_y y_z  y_x-t_x y_y-t_y y_z-t_z 
    z_x z_y z_y  z_x-t_x z_y-t_y z_z-t_z 

noti che questo era relativamente facile come matrice iniziale consiste di vettori di base della base standard. In generale è più difficile e coinvolge uno basis transformation, che può essere fatto fondamentalmente da Gaussian elimination, ma può essere numericamente difficile.

+1

noti che per matrice di rotazione si dovrebbe sottrarre vettore di traslazione da tutte le colonne di M, in modo 'R = x_x - x x_y - x x_z - x ... 'e così via – MBo

+0

Non ho familiarità con la notazione utilizzata; non significa una traduzione implicata? Ha senso, tuttavia la domanda originale richiede solo una rotazione. – Codor

+1

Penso di sì, l'autore [R | t] implica rotazione + traduzione (nota origine non zero). La matrice M è corretta per caso di rotazione pura, per R + t è necessario utilizzare le coordinate relative – MBo