2016-10-24 48 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'應該相對於畫布而不是視口。

問題中的測試頁現在可以。