我使用了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;
问题:如何查看允许围绕此对象放置的轴旋转的代码?
答案 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。
我希望这对您有帮助