2017-06-28 15 views
0

すべての回転が適切な順序で考慮されるように3軸すべてに沿って画像を回転したいとします。
Three Jsライブラリを使用しており、回転が1軸に沿って動作しているように見え、3軸で回転が異常です。私は、ジンバルロックを避けるためにクォータニオンを使って回転することについていくつかのアイデアを見てきました。オイラーを試しましたが、成功しませんでした。3軸(x、y、z)に沿って球を同時に回転させる方法

sphericImageMes​​h_私の球とthis.getRollDeg(ある)は、カメラによって与えられるようにロールを取得するための方法です。

// var euler = new THREE.Euler(- THREE.Math.degToRad(this.getRollDeg()), - THREE.Math.degToRad(this.getHeadingDeg()) , - THREE.Math.degToRad(this.getPitchDeg()), 'XYZ'); 
// this.sphericImageMesh_.setRotationFromEuler(euler); 

// this.sphericImageMesh_.rotateZ(THREE.Math.degToRad(-this.getPitchDeg())); 
// this.sphericImageMesh_.rotateX(THREE.Math.degToRad(-this.getRollDeg())); 
this.sphericImageMesh_.rotateY(THREE.Math.degToRad(-this.getHeadingDeg())); 

私はQuaternionsMatrixX4の使用について見てそれを適用するかどうかはわからないしている:私が試した何

下にここにあります。どんな助けもありがとう。

答えて

0

あなたは回転を並べ替えることを試みるかもしれません。私はXYZにデフォルト設定していると思いますが、YXZやYZXはより直感的に動作します。 n.rotation.order( 'YXZ')を使用します。あなたが思っているものの近くで行動しないかどうかを確認してください。 + Zが前方にあるフライトを実行している場合、これはより直観的に機能します。ヨーイングしてからピッチを合わせ、次にロールします。

https://threejs.org/docs/index.html#api/math/Euler

+0

それは動作しませんでした、私はすべての注文の組み合わせを試してみました、または私の代わりに、ヨー、ロールとピッチ – riotday

+0

のカッパ、オメガ、PHIを使用する必要がありますか?リンクしたドキュメントを読んだことはありますか?ヨーピッチとロールはTHREEjsのキーワードでもなく、カッパオメガフィーもありません。私はちょうどフライムの用語を使っていた。あなたのプロジェクトにはフィドルを含み、あなたが探している行動を記述します。 「うまくいかない」とは、たくさんのことを意味することがあります。 – OtterFamily

関連する問題