2015-12-21 1638 views

回答

5

描述的問題可以如下解決。讓

M = m_11 m_12 m_13 
    m_21 m_22 m_23 
    m_31 m_32 m_33 

表示所需的旋轉矩陣。我們要求

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 

其中t表示翻譯;我們看到這個矩陣相等可以通過從左邊乘以單位矩陣來解決,單位矩陣是它自身的倒數;因此我們獲得以下等式。

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

這可以通過從兩側減去t以獲得所需的矩陣M如下進行重新排列。

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 

請注意,這是相對容易的,因爲初始矩陣由標準基的基本向量組成。一般來說,這是更困難的,並涉及basis transformation,這基本上可以通過Gaussian elimination完成,但在數值上可能很難。

+1

注意,對於旋轉矩陣應該減去M的所有列平移向量,所以'R = X_X - X X_Y - x x_z - x ...'等等 – MBo

+0

我對使用的符號不熟悉; 't'是否表示涉及翻譯?這是有道理的,但最初的問題只需要旋轉。 – Codor

+1

我認爲是的,作者的[R | t]意味着旋轉+翻譯(注意非零原點)。矩陣M對於純旋轉情況是正確的,對於R + t,有必要使用相對座標 – MBo