私はtorus
を2軸に沿って回転しようとしています:OxとOz。私はマウスで修正されたスライダーdat.gui
でこの回転を適用したいと思います。Three.js - Torusは0z軸を中心に回転しません
私はでtorus
を定義している:私の問題はOx axis
に沿って回転が正常に動作しているが、これはOz axis
に沿って回転の場合ではないということです
var geometryTorus = new THREE.TorusGeometry(radius, 2*widthLine, 100, 100);
var materialLine = new THREE.MeshBasicMaterial({ color: 0xffff00 });
torus = new THREE.Mesh(geometryTorus, materialLine);
scene.add(torus);
。
は、私は次の関数を呼び出すことにより、トーラスのための回転を行います。
// Change great circle parameters
function changeGreatCircle(thetax, thetaz) {
// Update rotation angles
torus.rotation.x = thetax;
torus.rotation.z = thetaz;
}
は、上記の機能のために、私はカメラの位置を計算するrender('init')
関数を呼び出します。
このトーラスをどのように回転させるかOz axis
?なぜOx axis
に沿って回転し、Oz axis
に沿って回転しないのですか?
誰かが手がかりを与えることができれば、これは問題ありません。
おかげ
UPDATE 1:
を私は(X
とY
軸周りの)2つの回転の順序すなわち、Euler angles
の考慮されていませんでしたので、私は解決策を見つけました。解決策が設定されましたtorus.rotation.order = 'ZXY';
これはありますか?http://stackoverflow.com/questions/11060734/how-to-rotate-a-3d-object-on-axis-three-js help? – ThisIsSparta
私の理解は以下の通りです。トーラスは、Z軸の周りで対称であり、最初は「世界」(およびカメラ)のZ軸と一致する。トーラスをX軸の周りにPI/2回転させた後、そのY軸は今やワールド座標でZ軸に沿っている。そのため、カメラがZ軸を中心にして回転している間、トーラスをY軸のまわりで回転させて画面上に固定しなければなりません。 – ConnorsFan
ConnorsFan:助けてくれてありがとう、私は何が間違っているか分かったと思うが、確認のために他のテストをしなければならない。 – youpilat13