0

問題を解決する方法を見つけるのに問題があります。

私の問題は、オブジェクトの角度の 3D 表現を取得し、そのオブジェクトに独自の軸で回転を適用することです。

たとえば、次のような航空機:

  • 見出し 45 (北東)
  • ピッチ 45 (ノーズアップ)
  • バンク 45 (左バンク)

それ自体のヨー軸を横切って-90度回転すると、おおよそ次のようになります。

  • ヘディング ~-9.8 (北から北北西)
  • ピッチ -30 (ノーズダウン)
  • バンク 54.5 (左バンク)

(別のプログラムを使用して航空機をそれ自体の子にし、90度回転させてから、向きを一致させようとして、純粋に推測から計算されたように...)

この種の回転の計算方法を説明できる人はいますか? または、どのように学ぶかについて正しい道を教えてくれますか?

基本的な回転行列を角度に適用しようとしましたが (原点を中心にポイントを回転させるために使用されるように)、航空機の軸ではなくベースの x/y/z 軸に対してのみ回転します (したがって、上記の結果は(-45,45,45)

数学的な目的のために、回転はポイント座標には関係なく、3 つの表現角度のみに関係します。

外部ライブラリを使用しないことをお勧めします。

関係ありませんが、これは C# アプリケーション用です。

皆様のご協力と洞察に感謝いたします。

4

1 に答える 1

1

回転行列は良い出発点ですが、原点を正しく取得するには平行移動行列も必要です。

手動で行う場合は、回転行列を使用した線形代数が必要です。ある程度の数学のスキルが必要です。

基本的に、これ (以下) の状態: オブジェクトを x/y/z/ の原点に移動し、回転行列を適用して、元の位置に戻します。

私はあなたに警告しなければなりません、それを手で正しくするのは難しいです。

http://en.wikipedia.org/wiki/Translation_%28geometry%29

http://en.wikipedia.org/wiki/Rotation_matrix

私の知人はかつてこう言いました。

r'j(t) = r'0(t) + Ω(t) x [rj(t) - r0(t)]

http://en.wikipedia.org/wiki/Euler%27s_rotation_theorem

于 2013-11-13T09:34:10.553 に答える