使用Three.js如何沿指定平面移动对象?

时间:2016-09-08 21:54:46

标签: javascript 3d three.js

我正在查看http://threejs.org网站(http://threejs.org/examples/webgl_interactive_draggablecubes.html)上的示例,我看到他们正在沿着相对于相机的平面移动选定的立方体。我得知了无效投影与raycaster的关系。我不知道的是如何将其设置为始终沿着地面(平面)移动物体,即使相机处于某个角度。这个想法是让用户使用鼠标沿着地面移动物体,即使相机处于某个角度并且看起来并不完美。我是使用Three.js的新手,所以你可能想要解释我所缺少的内容。或者如果我没有解释自己,可以回答问题。

我的项目看起来像这样,我想用鼠标移动盒子。

enter image description here

1 个答案:

答案 0 :(得分:2)

示例代码创建一个平面,并在摄像机角度发生变化时在MouseMove事件中更新它:

plane.setFromNormalAndCoplanarPoint(camera.getWorldDirection(plane.normal), INTERSECTED.position);

而不是这样做,将平面创建为

var plane = new THREE.Plane(new THREE.Vector3(0, 1, 0), 0);

是原点的XZ平面。