1

私は3D空間で宇宙船を作ろうとしてきました。まっすぐ飛んでいきます。宇宙船を転がして機首を上下に傾けることで方向を変えることができます。

宇宙船のZ角度を変えると、期待通りに転がります。宇宙船のX角を変えると、機首が上下に傾いています。両方を行うと、期待どおりに機能しません

私の宇宙船は、私の宇宙船の軸ではなく、世界の軸を中心に回転しているようです。つまり、オブジェクトが回転すると、それは軸のようになりますか?どうやらそうではありません。

いつものように、助けていただければ幸いです。

明らかに機能しないデモは次のとおりです。http ://www.timseverien.nl/random/ohnoez/

4

2 に答える 2

5

クォータニオンをチェックしてください。ThreeJSでは、見たいクラスはTHREE.Quaternionです。

クォータニオンは通常、フライトシミュレーションスタイルのゲームで使用され、「ジンバルロック」を取得せずにクラフトのローカルスペースで回転できます。(そのとき、2つの軸が平行になり、自由度が失われます。)

これは、クォータニオンの非常に優れた、非常に面白い説明です: http ://www.isner.com/tutorials/quatSpells/quaternion_spells_14.htm

それがあなたを正しい軌道に乗せることを願っています...

編集:Isner.comは長い間オフラインでしたが、ウェイバックマシンで上記のチュートリアルを見つけました:https ://web.archive.org/web/20120601095457/http://www.isner.com/tutorials/quatSpells/quaternion_spells_14 .htm

于 2012-10-19T04:07:26.850 に答える
2

このためにクォータニオンを理解する必要はありません-単にここを見てください:

Three.js-特定の軸を中心に球を回転させる

複数の簡単な解決策!

于 2014-04-08T17:58:43.600 に答える