2017-03-07 152 views
1

我在座標系B中有一組3D座標系,我想旋轉和按一定的角度縮放theta和某個縮放因子scale關於每個座標軸系統B,然後將它們轉換爲不同的座標系A。我知道4x4變換,它將座標系B中的點變換爲座標系A相對於不同座標系的座標軸縮放和旋轉3D點

例如,

我有一個轉換矩陣

Tr = [0.0065,0.9999,-0.0106,-5.0682 
     -0.0105,-0.0105,-0.9999,1.7843 
     -0.9999,0.0066,0.0105,8.6412 
     0.0000,0.0000,0.0000,1.0000] 

目前,我使用Tr從座標系變換B 3D點到A。然而,我想修改Tr(通過乘以附加矩陣),使得在轉換爲A後,點圍繞座標系「B」的每個軸旋轉和縮放theta,scale

任何想法,如果這是可能的?

+1

你能否詳細說明 - 也許有例子嗎?你想要將點轉換爲B,執行旋轉和縮放,然後轉換回A? –

+0

3D圖像集是一個圖像嗎?你想旋轉'x,y'軸還是'x,y,z'軸?如果你想旋轉3D,你需要'theta1'和'theta2' – smttsp

+0

@NicoSchertler我以B中的點開始。我想對B的軸執行旋轉和縮放,然後將點轉換爲A.我編輯了我的問題更清楚。 –

回答

3
T_scale = [scale_x 0  0  0 
      0  scale_y 0  0 
      0  0  scale_z 0 
      0  0  0  1] 

T_i(theta) = [R_i(theta) [0; 0; 0] 
       [0 0 0] 1  ] 


T = Tr * T_scale * T_z(theta_z) * T_y(theta_y) * T_x(theta_x) 

隨着R_i(theta)通過wikipedia

0

定義。如果你有AB 4×4變換矩陣作爲

 | R_A t_A |   | R_B t_B | 
T_A = |   |  T_B = |   | 
     | 0 1 |   | 0 1 | 

然後找到從A -> B

T_AB = inv(T_B)*T_A 
的相對轉化

這被解釋爲本地 - >全球A後跟一個全局 - >本地B