2013-10-17 151 views
1

我一直試圖讓this示例適用於我。我快到了。 我的問題是我沒有使用全屏幕畫布。我使用的是一個較小的div,根據分辨率的不同可能會有所不同。Three.js點擊對象

我的工作是獲取鼠標點擊這個div內的座標,點擊對象也是如此。但是,一切都有點偏移,可點擊區域比對象本身更大。

所以我的問題是我如何使這更準確。

此代碼http://jsfiddle.net/phacer/FHD8W/1/適用於我的瀏覽器,但不適用於JSFiddle。 那麼在這種情況下,我怎樣才能點擊我的物體?

我覺得180行是錯的。

var vector = new THREE.Vector3((x/WIDTH)/1 - 1, -(y/HEIGHT)/1 + 1, 0.5); 
+0

http://stackoverflow.com/questions/13542175/three-的重複js-ray-intersect-fails-by-adding-div – WestLangley

回答

1

你非常接近。最大的問題是使用舊的r54庫。從r58 Raycasting變得好多了。所以看看這個新的小提琴http://jsfiddle.net/FHD8W/3/我已經刪除了r54鏈接,並添加了一個外部資源到github.io。

而且,你是正確的路線180需要點小文章是這樣的:

var vector = new THREE.Vector3((x/WIDTH) * 2 - 1, -(y/HEIGHT) * 2 + 1, 0.5); 

應該這樣做

+0

謝謝,這已經差不多了。但它只適用於div是固定的。目前我的div是絕對的。任何想法如何得到這個工作? –

+0

它在小提琴中工作,但不是我的實際頁面。 –

+0

找出了一個固定位置的方法。 –