2016-10-24 35 views
0

我很喜欢three.js,在阅读https://threejs.org/examples/?q=inter#canvas_interactive_cubes后,我想添加一个函数绘制点,在那里我点击了我的项目(加载和显示stl文件),我用了那个公式,draw sprite on mouse click Where

mouse.x = (event.clientX/renderer.domElement.clientWidth) * 2 - 1; 
mouse.y = - (event.clientY/renderer.domElement.clientHeight) * 2 + 1; 

,但我发现,当精灵是不是画在我点击哪里,但低一点,你可以在http://static.medi-tool.cn/share/ds1/index.html看到(先点击模式将绘制一个精灵,第二个将绘制一个精灵,并计算两点之间的距离,那么两秒精灵将在2秒内被移除)。谁能告诉我为什么?非常感谢。

回答

0

我发现这是因为我有一个div直到画布,当使用公式时,我必须减去该div的高度,换句话说,当计算mouse.x,mouse.y,'event .clientX'&'event.clientY'应该相对于画布而不是视口。

问题中的测试页现在可以。