2015-03-03 185 views
0

我已經創建了幾何使用一些x,y,z位置。現在我必須將這個幾何體旋轉到它自己的軸上,即它應該像地球一樣旋轉。我不想讓相機移動,但我希望移動幾何體。 有人可以幫忙嗎?代碼現在是這樣的: var myGeometry = new THREE.Geometry();threejs點雲幾何旋轉本身

for(i=0;i<n;i++) 
{ 
    vertex.x = green_arr[i]; 
    vertex.y = green_arr[i+1]; 
    vertex.z = green_arr[i+2]; 
    myGeometry.vertices.push(vertex); 
} 
var particleCube = new THREE.PointCloud(myGeometry, shaderMaterial); 
particleCube.dynamic = true; 
particleCube.sortParticles = true; 
scene.add(particleCube); 

我有旋轉

var time = Date.now() * 0.0004; 
scene.children[0].rotation.y = time; 
scene.children[0].rotation.z = time * 0.7; 

但這旋轉我點遍,我不想要的畫面。我想旋轉它們圍繞自己的軸

回答

0

您是否試圖圍繞它自己的本地位置旋轉每個頂點?或者在PointCloud的位置?

它看起來像你當前的代碼圍繞其原點旋轉整個系統。 如果希望每個點周圍的自己的本地的軸線旋轉,你可以嘗試將其添加到自己的獨立陣列和循環通過在渲染功能:

for(var p=0; p<particleCube.geometry.length; p++){ 
    particleCube.geometry.vertices[p].rotation.y=time; 
    particleCube.geometry.vertices[p].rotation.z=time*0.7; 
} 

否則,你可以嘗試

particleCube.rotation.y=time; particleCube.rotation.z=time*0.7;

+0

嗨, 感謝您的回覆 我有這樣的代碼 http://jsfiddle.net/r7ocy1ff/ 這一個不是現在正在工作 我想旋轉點雲的幾何形狀,如弧球旋轉。 我試過用四元數,也是沿着軸旋轉,但是這個並不是我想要的沿着軸的旋轉對我來說是工作的,但那不是旋轉360度。旋轉應該只在鼠標上/下。 – gzest 2015-03-13 07:34:40

+0

嗨,我可以得到那沿軸旋轉,現在對我來說工作正常。現在任何人都可以幫助我在鼠標移動上實現這一點,因爲此旋轉只能在一個方向上旋轉,可能是360度,但仍然無法控制鼠標移動 – gzest 2015-03-26 10:06:33