2017-01-22 14 views
0

私はWebGLでRubikのキューブをやっています。私は27の小さな立方体を作成しましたが、それは大きなものですが、その特定の位置にある立方体を回転させる方法はわかりません(例えば上の9つのブロック)。 立方体は常にその位置を変えているので、私はそれらを呼び出すのにうってつけの方法が必要です。 どうすればいいですか?どのようにしてキューブのグループを呼び出し、名前ではなく回転させることができますか?WebGL(およびTHREE.jsライブラリ)を使用してオブジェクトの位置に基づいてオブジェクトを回転させるにはどうすればよいですか?

私のコードでは、私はキューブを作成しただけで、大きなものを作成するためにシーンに追加しました。

私は本当に助けが必要なので、たくさんのことが必要です。

+1

http://stackoverflow.com/questions/20089098/three-js-adding-and-removing-children-of-rotated-objectsを参照してください。 – WestLangley

答えて

-1

私は非常に簡単にWebGLベースのアプリケーションを作成することができるプロジェクトに従っています。 whitestormと呼ばれ、あなたはそれをチェックすることができます。here

だから、whitestormは単にThree.jsのラッパーにすぎません.ttは素晴らしいAPIを備えており、多くのことを簡素化します。あなたが使っているものにもかかわらず、とにかく。グループを使ってすべての顔を動かすことをお勧めします。 Jonathan PetitcolasはThree.jsのローテーションについて素晴らしいtutorialを持っています。

//you should create a group for each face with its proper cubes 
var face1 = new THREE.Group(); 
group.add(piece1); 
group.add(piece2); 
// and so on, finally set a rotation to the group on the proper axis. 
pivot.rotation.y = 1.5708; //this is 90 degrees in radians 
+0

しかし、私がこの種のメソッドを使用する場合、私はキューブの名前を使用します...彼らは他のキューブと混合された位置を変更すると、効果は完全に混乱です – HugoB

関連する問題