Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

Three.js 物体の回転(rotation)

今回は、Three.jsの「物体の回転のやり方」を書きます。

物体を回転させるには、rotationを使います。

オブジェクト名.rotation.set( x軸の回転角, y軸の回転角, z軸の回転角 );

「x軸の回転角」などの単位は、「ラジアン」です。ラジアンって何??
また、こういう書き方もできます。

オブジェクト名.rotation.x =  x軸の回転角;
オブジェクト名.rotation.y =  y軸の回転角;
オブジェクト名.rotation.z =  z軸の回転角;

では、実際にやってみます。

こちらの実行例は、中心にトーラス(ドーナツ状の物体)を配置したものです。
f:id:gupuru:20131127212145p:plain
ソースコードは、こんな感じです。

//トーラスの生成
 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); 

f:id:gupuru:20131127213206p:plain
90度回転しました!
追加したのは、

torus.rotation.set(Math.PI/2,0,0); 

だけです。
もちろん、

torus.rotation.x = Math.PI/2; 

と書いても同じです!

実は、回転のやり方には、もう一種類あります。
それは、クォータニオン四元数)と呼ばれる回転のやり方です。
今回のrotationは、正確にいうと、オイラー角と呼ばれる物です。
クォータニオンについては、コチラに書きました。
Three.js クォータニオン(Quaternion)による回転 - Three.jsを使って、作ってみた

こちらのサイトにも詳しく書かれています。
クォータニオンによる視点の移動 (WebGL(Three.js))


これで終わりです。
ご不明な点などがありましたら、遠慮なくご質問ください。
ありがとうございました!