我使用一些x,y,z位置创建了一个几何体。现在我必须将这个几何体旋转到它的自身轴,即它应该像地球一样旋转。我不希望移动相机,但我希望移动几何体。 有人可以帮忙吗?现在的代码是这样的: var myGeometry = new THREE.Geometry();
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 :(得分: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;