我试图将一个物体相对于它所朝向的方向向上移动。我有一个具有一定高度的CubeGeometry,我想在它的顶部放置一个对象,然后用立方体旋转。我不能只是将新对象添加到多维数据集,因为我需要能够访问此对象的旋转(稍后将旋转)和父对象。例如,如果你正面朝上," up"会侧身。我试图通过.getWorldDirection()获取方向,并使用.applyAxisAngle()旋转它,但由于某种原因这不起作用。我的代码现在:
tmpObj.position.set(cube.position.x, cube.position.y, cube.position.z); // put at the position of the cube
var gwd = cube.getWorldDirection().applyAxisAngle(new THREE.Vector3(1, 0, 0), Math.PI*-0.5); // if you don't do the applyAxisAngle, it will be facing the wrong direction
gwd.multiplyScalar(2.5); // the height of the cube
tmpObj.position.add(gwd);
这使得多维数据集(tmpObj
)在cube
旋转时出错。
作为参考,还有另一个tmpObj
和cube
(以不同的名称命名),然后相互指向,以便检测他们在哪一方。
答案 0 :(得分:0)
在three.js中,一个物体被认为面向其局部正Z轴方向。 (例外是相机,它面向其局部的负Z轴。)
默认情况下,对象的本地坐标系中的本地正Y轴是“向上”。
您可以在其局部正Y轴的方向上平移对象,如下所示:
object.translateY( distance );
three.js r.90