If your mesh is not rotating around its center, it is because the geometry vertices are offset from the origin.
You can automate repositioning by using a bounding box to define a reasonable center, and then offset the mesh's position like so:
var box = new THREE.Box3().setFromObject( mesh );
box.center( mesh.position ); // this re-sets the mesh position
mesh.position.multiplyScalar( - 1 );
Then add the mesh to a pivot object:
var pivot = new THREE.Group();
scene.add( pivot );
pivot.add( mesh );
In your animation loop, rotate the pivot;
pivot.rotation.y += 0.01;
EDIT: A different solution is to translate the geometry vertices so the geometry is centered around, or near, the origin:
geometry.translate( distX, distY, distZ );
Or, alternatively, you could just call:
geometry.center();
which centers the vertices of the geometry for you based on the geometry's bounding box.
three.js r.97
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…