我修改了这个旋转立方体,使其在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;
编辑:只是说这是一个演示问题的例子,我的实际代码对象包含许多不同大小的形状.
解决方法
您可以定义中心的坐标.
mesh.position.set( center.x,center.y,center.z ); mesh.geometry.applyMatrix(new THREE.Matrix4().makeTranslation( -center.x,-center.y,-center.z ) );