2017-05-19 10 views
-1

私はカメラを持っています。私はその3D位置と3D回転(度)を取得しました。座標系は次のとおりです。3D位置または回転からの方向ベクトルの取得

順序はXYZで、本来のものです。

  • ピッチ
  • ロール
  • ヨー

(別名右/フロント/トップベクトル)

この情報を、どのように私は、フロントベクトルを計算することができますか?

+0

回転がどのように定義されるかを指定します。 – MBo

+0

正しく更新されました。 –

答えて

0

ヨー回転は、OY(垂直)軸を中心と

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

ロール回転が約あるMY

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

ピッチ回転はOZ軸の周りで、マトリックスを有している(正のCCW用)MPをマトリックス有します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のような記号的な数学ソフトウェアを持っているなら、それを試してみてください。

結果は、前方

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) 
関連する問題