2017-05-19 100 views
-1

我有一個相機,其中,我已經獲得了它的3d位置和它的3d旋轉(以度爲單位)。座標系如下:從3d位置和/或旋轉獲取方向矢量

訂單是XYZ,是固有的。

  • 間距
  • 偏航

(又名右/前/頂矢量)

有了這個信息,如何能夠計算出向上和正面矢量?

+0

指定旋轉是如何定義的。 – MBo

+0

它現在正確更新。 –

回答

0

偏航旋轉是圍繞OY(垂直)軸,並具有矩陣MY(對於CCW正)

Cos(Yaw) -Sin(Yaw) 0 
Sin(Yaw) Cos(Yaw) 0 
0   0   1 

節距旋轉是圍繞OZ軸線,並具有矩陣MP

Cos(Pitch) 0 Sin(Pitch) 
0   1 0 
-Sin(Pitch) 0 Cos(Yaw) 

輥旋轉是圍繞OX軸並且具有矩陣MR

1  0   0  
0  Cos(Roll) -Sin(Roll) 
0  Sin(Roll) Cos(Roll) 

現在必須將矩陣MP,MR,MY以正確的順序相乘並得到矩陣M. 要找到正向矢量 - 乘以M和矢量[1,0,0]。要獲得頂部方向矢量 - 將M和矢量[0,1,0]相乘。要獲得側向矢量 - 將M和矢量[1,0,0]相乘。

我現在無法檢查右矩陣乘法順序和最後一個結果。如果你有任何象Maple,Matlab這樣的符號數學軟件 - 試試吧。

結果應該是這樣的正向

X = Cos(Pitch) * Cos(Yaw) 
Y = Sin(Pitch) 
Z = Cos(Pitch) * Sin(Yaw) 

和(可能是錯誤的)

X = -Cos(Yaw) * Sin(Roll) - Sin(Yaw) * Sin(Pitch) * Cos(Roll) 
Y = Sin(Yaw) * Sin(Roll) - Cos(Yaw) * Sin(Pitch) * Cos(Roll) 
Z = Cos(Pitch) * Cos(Roll)