Three.js 物体の回転(rotation)
今回は、Three.jsの「物体の回転のやり方」を書きます。
物体を回転させるには、rotationを使います。
オブジェクト名.rotation.set( x軸の回転角, y軸の回転角, z軸の回転角 );
「x軸の回転角」などの単位は、「ラジアン」です。(ラジアンって何??)
また、こういう書き方もできます。
オブジェクト名.rotation.x = x軸の回転角; オブジェクト名.rotation.y = y軸の回転角; オブジェクト名.rotation.z = z軸の回転角;
では、実際にやってみます。
こちらの実行例は、中心にトーラス(ドーナツ状の物体)を配置したものです。
ソースコードは、こんな感じです。
//トーラスの生成 var torus = new THREE.Mesh( // 芯円半径500、断面円半径100、断面円分割8、芯円分割16 new THREE.TorusGeometry(500, 100, 8, 16), new THREE.MeshPhongMaterial({ color: 0xFFFF00 })); //sceneに追加 scene.add(torus); torus.position.set(0,0,500);
では、回転させてみます。
//トーラスの生成 var torus = new THREE.Mesh( // 芯円半径500、断面円半径100、断面円分割8、芯円分割16 new THREE.TorusGeometry(500, 100, 8, 16), new THREE.MeshPhongMaterial({ color: 0xFFFF00 })); //sceneに追加 scene.add(torus); torus.position.set(0,0,500); //x軸方向に90度回転 torus.rotation.set(Math.PI/2,0,0);
90度回転しました!
追加したのは、
torus.rotation.set(Math.PI/2,0,0);
だけです。
もちろん、
torus.rotation.x = Math.PI/2;
と書いても同じです!
実は、回転のやり方には、もう一種類あります。
それは、クォータニオン(四元数)と呼ばれる回転のやり方です。
今回のrotationは、正確にいうと、オイラー角と呼ばれる物です。
クォータニオンについては、コチラに書きました。
Three.js クォータニオン(Quaternion)による回転 - Three.jsを使って、作ってみた
こちらのサイトにも詳しく書かれています。
クォータニオンによる視点の移動 (WebGL(Three.js))
これで終わりです。
ご不明な点などがありましたら、遠慮なくご質問ください。
ありがとうございました!