不思議な現象に悩まされています。
クォータニオンを指定したオブジェクトの角度を設定しました。
その後、オイラー角の指定方法で0度加算、つまり回転させない指定をしたのですが、クォータニオンの値が変化してしまいました。
質問:なぜクォータニオンとワールド座標のクォータニオンとに違いがあるのでしょうか?
なおobjectの親はsceneです。
質問:なぜクォータニオンの値が変化してしまったのでしょうか?
let q = new THREE.Quaternion(-0.7625147906 , -0.0155299193 , -0.1999270718 , 0.3582724964);
object.setRotationFromQuaternion(_q);
console.log(object.getWorldQuaternion());
console.log(object.quaternion);
//結果 ワールドクォータニオンとクォータニオンが異なっている。
//Object { _x: -0.7621341750610712, _y: 0.05790928277679434, _z: -0.17306884007375792, _w: 0.5682210215798058 }
//Object { _x: -0.7625147906, _y: -0.0155299193, _z: -0.1999270718, _w: 0.3582724964 }
object.rotation.x += 0;
//オイラー角 Xを0度回転(回転していない)
console.log(object.getWorldQuaternion());
console.log(object.quaternion);
//結果 ワールドクォータニオンがクォータニオンが一致している(誤差程度の違いはあり)が、元々指定した値ではない。
//Object { _x: -0.7969777093932034, _y: 0.017507860980572894, _z: -0.17158422995914593, _w: 0.5788599636903337 }
//Object { _x: -0.7969777093932034, _y: 0.017507860980572873, _z: -0.17158422995914596, _w: 0.5788599636903335 }
あなたの回答
tips
プレビュー