2017-01-22 67 views
0

我正在做一個WebGL的魔方。我創建了27個小立方體,形成一個大立方體,但我不知道該怎麼說「旋轉位於該特定位置的立方體(例如,頂部的9塊)」。 立方體總是改變它們的位置,所以我需要一種動態的方式來稱呼它們。 我該怎麼辦?我怎樣稱呼一組立方體並且不是通過他們的名字旋轉它們,而是感謝他們的位置?如何根據WebGL(和THREE.js庫)的位置來旋轉對象?

在我的代碼中,我只創建了立方體,並將它們添加到場景中以創建大塊,而不是更多。

我真的需要幫助,所以thx很多。

+1

查看http://stackoverflow.com/questions/20089098/three-js-adding-and-removing-children-of-rotated-objects。 – WestLangley

回答

-1

我一直在關注和貢獻一個項目,可以讓您非常輕鬆地創建基於WebGL的應用程序。這就是所謂的whitestormJS,你可以看看它here

所以whitestorm只是Three.js的一個包裝,它有一個很好的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