三个js旋转模型的一部分,模型的一部分如何围绕零件本身旋转

时间:2014-11-27 14:52:01

标签: three.js

我很困惑,我把一个obj模型加载到html,但是当我旋转这个模型的一部分时(这个模型来自blender,part,one by one),这部分只围绕模型的中心旋转,但它不会旋转其中心,我怎么能让零件围绕零件本身旋转,声明" part.rotation + = 1;"不起作用。

1 个答案:

答案 0 :(得分:0)

您需要以这种方式组织部件:每个部件都是THREE.Mesh,其中包含相对于部件中心定位(本地)的顶点集合。换句话说,世界的零件中心成为零件局部轴的原点轴。此网格需要是位于此部分中心的THREE.Object3D的子节点。然后你可以在网格物体上应用旋转。

如何转置顶点位置的示例:

mesh.position.set(partCenterVec);

mesh.updateMatrixWorld();
mesh.geometry.applyMatrix(mesh.matrixWorld);

// reset local matrix
mesh.position.set(0,0,0);
mesh.rotation.set(0,0,0);
mesh.scale.set(1,1,1);
mesh.updateMatrixWorld();