Three.js - 围绕某个轴旋转对象

时间:2014-10-09 20:17:38

标签: three.js

我使用了THREE = {REVISION:“68”}

我已经按轴"z" http://jsfiddle.net/eVkgs/39/完成了旋转(OBJECT_X)

当我更改位置OBJECT_X时:CubeGeometry.applyMatrix( new THREE.Matrix4().makeTranslation( 20,Cube_height/2, 0 ) ); http://jsfiddle.net/eVkgs/40/

对象仍然按轴“z”旋转,因为我设置了OBJECT_X.rotation.z += 0.3*Math.PI/30;

问题:如何查看允许围绕此对象放置的轴旋转的代码?

2 个答案:

答案 0 :(得分:2)

对象将在其本地坐标系中围绕其原点旋转。如果要移动原点,则必须转换几何体本身。以下是要遵循的模式:

geometry.translate( dx, dy, dz );

您现在可以从几何体创建网格,并设置网格位置:

mesh.position.set( x, y, z );

如果旋转网格,它将围绕其新原点旋转,网格将位于点(x,y,z)。

three.js r.84

答案 1 :(得分:0)

我以这种方式解决了这个问题

我为ThreeJS创建了ObjectControls模块,该模块允许您旋转单个对象(或组),而不是SCENE

包含库文件

然后

var controls = new THREE.ObjectControls(camera,renderer.domElement,yourMesh);

您可以在此处找到实时演示:https://albertopiras.github.io/threeJS-object-controls/

以下是仓库:https://github.com/albertopiras/threeJS-object-controls

我希望这对您有帮助