Three.js交叉raycaster

时间:2014-11-23 19:52:32

标签: javascript three.js dhtmlx

我创建了一些几何体和一些移动和检测它的函数。  它工作得很完美,但现在我已将其插入到javascript UI库http://dhtmlx.com/中并且效果不佳。问题是这样的:例如使用raycaster,当几何体不在鼠标下时,它也会找到与几何体的交点。看起来所有几何图形都从原始位置向上移动并且绘制是假的。

我在这个网址中做了一个例子:http://www.felpone.netsons.org/web-threejs%20-%20Copia/contact_manager/prova2.html。您可以在控制台中看到完整的代码。

正如您在实际示例中所看到的,如果您点击它上方,也可以拖动立方体。

1 个答案:

答案 0 :(得分:0)

我认为这是因为鼠标坐标是文档坐标,而不是画布中的坐标。

在我的应用程序中,我确定了正确的光线坐标:

var mouseX = event.clientX - myCanvas.offsetLeft;
var mouseY = event.clientY - myCanvas.offsetTop;

var mouseXForRay = (mouseX / this.canvas.width) * 2 - 1;
var mouseYForRay = -(mouseY / this.canvas.height) * 2 + 1;