私は先例を設定し、その空間回転
オーケー(http://wiki.garrysmod.com/?title=Wire_Expression2)ギャリーのMODで動作をプログラムするために式2を使用しています。 Gmodではブロックがあり、3つの上、下、右のベクトル(これはローカルです。つまり、45度ピッチの場合、前方ベクトルは0.707,0.707、 0)。基本的には、3つのベクトルから、私は地元のピッチ/ロール/ヨーを得ることができるようにしたいと思います。ローカルピッチロールヨーによると、彼らは互いに完全に独立して真の3d回転を可能にするということです。例えば、鼻が床と平行になるように私のクラフトを置くと、X、Y、Zは0,0,0になります。私がそれを床(World and Local Yaw)と平行に90度回すと0、0、90になります。それから180度、180度、0度、90度の順に(World Roll、Local Pitch)既に探索されたクオータニオンですが、私は車を再発明していたと思うので、ここに自分のコードを載せるべきではないと私は信じています。
私はそれをうまく説明していないことは知っていますが、問題はかなり一般的だと思います。誰でも助けることができれば大いに感謝します。
ああ、私もジンブルロックを避けたいと思います。
up/forward/rightベクトルを使用して、各クラフトの前後の回転を本質的に計算する。
単にGmodに固有の実装ではなく、一般的な実装は絶対に問題ありません。
あなたの質問/問題は何ですか?どこで立ち往生しましたか? – Victor
基本的には、船のそれぞれの周りの回転を、前方、上方および右側のベクトルで計算したいと考えています。すなわち、船はローカルピッチ/ロール/ヨー。ワールド空間のベクトル位置から。 – Fascia
あなたは、あなたがそれを行う方法を完全に失っていると言っていますが、あなたはすでに、ジンバルロックを避け、より効率的になるような状況で使用するのに最適なオブジェクトであるクォータニオンを探求しました変換行列よりも)。コードがあなたにとって複雑すぎるということだけですか? – JAB