2017-10-12 10 views
0

まず、回転、四元数、行列を使い始めているので、私はこの時点で私が誤解している部分についてすでに私に言い訳をしています。3次元の回転を変換する

状況:

OSX SceneKitアプリケーション。

私は、3D空間、X +右、Y +フォワード、Z +アップを持っています。この空間内

Iディスクを持っている:

  • センター{X:2.0、Y:2.0、Z:2.0}私が作ったこの弧の中心で
  • 半径2.0

3つの軸すべてでディスクに回転を設定できるいくつかのコントロール。ピッチ(Y軸)、ロール(X軸)ヨー(Z軸)。私が達成したいのは、このディスクの現在の角度が何であっても、ピッチコントロールを使用して角度を調整するとき、ローカルボディフレームではなくメインフレームで回転させたいということです。コントロールはそれと共に回転せず、「メイン」フレームにもフラットに留まります。

もう少し詳しく、私はディスクを90度回転させます。それにピッチを適用すると、地元の車体フレームにはピッチを置くのではなく、実際には地元の車体フレームに配置する必要があります。

私が実際に探しているのは、私が上記で説明したのと同じようにディスクが回転する何らかの方法で私の「入力調整」を回転させる方法です。 ベクトルの回転方法はわかっていますが、ロール、ピッチ、ヨー方向の回転をどのように処理するかについては固執しています。

助けていただけたら幸いです!

トム

+0

[4x4均質変換行列の理解](https://stackoverflow.com/a/28084380/2521214)を見て、ローカル変換とグローバル変換の違いを見てください。もし私がどこでオイラー角の代わりに累積変換行列を使うのであれば(多くの利点があるので最後のリンクを参照してください)、とにかくレンダリングの結果が必要です... – Spektre

答えて

0

3回連続して回転します。合わせた回転行列はR_X()R_Y()R_Z()のそれぞれの元素の3×3 roationマトリックス

E = R_Z(yaw)*R_X(pitch)*R_Y(roll) 

あります。それぞれのコンポーネントについては、Basic Rotations (wikipedia)を参照してください。

関連する問題