我修改了这个旋转立方体,使其在Object3D中包含3个立方体
http://jsfiddle.net/VsWb9/1243/
在上面的例子中,它使用第一个立方体。我需要它在对象的正中心的单个轴上旋转。
object3D代码
geometry = new THREE.CubeGeometry(50, 50, 50);
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Object3D();
mesh1 = new THREE.Mesh(geometry, material);
mesh1.position.x = 50;
mesh2 = new THREE.Mesh(geometry, material);
mesh2.position.x = 100;
mesh3 = new THREE.Mesh(geometry, material);
mesh.add(mesh1);
mesh.add(mesh2);
mesh.add(mesh3);
scene.add(mesh);
这是轮换
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
编辑:只是说这是一个演示问题的示例,我的实际代码对象包含许多不同大小的形状。
答案 0 :(得分:14)
您可以定义中心的坐标。
mesh.position.set( center.x, center.y, center.z );
mesh.geometry.applyMatrix(new THREE.Matrix4().makeTranslation( -center.x, -center.y, -center.z ) );
答案 1 :(得分:1)
真正简单的方法是稍微改变立方体的位置,而不是设置
mesh1.position.x = 50;
mesh2.position.x = 100;
并将mesh3默认为x为0,您可以这样设置:
mesh1.position.x = -50;
mesh3.position.x = 50;
这将使中心框也位于场景的中心。
jsFiddle显示它有效。