2016-03-03 60 views
0

我有幾個隨機生成的框,我想朝鼠標位置旋轉。我嘗試獲取鼠標位置,然後使用lookAt(mouse3D)將框朝鼠標座標旋轉,但它們根本不會改變它們的旋轉。我甚至不希望它們朝着3D空間內的鼠標位置旋轉,只是朝向鼠標位置,因爲它在屏幕上。Three.js旋轉框朝鼠標位置doens't work

目前我得到的鼠標的位置是這樣的:

function onDocumentMouseMove(event) { 
      mouse3D = new THREE.Vector3(
       (event.clientX/window.innerWidth) * 2 - 1, 
       - (event.clientY/window.innerHeight) * 2 + 1, 
       camera.position.z); 
} 

下面是一個例子,我發現我無法適用於我的問題:http://mrdoob.github.io/three.js/examples/misc_lookat.html

我創建的jsfiddle我目前的做法:

https://jsfiddle.net/nrub93m7/

+0

你想要這樣的東西嗎? https://jsfiddle.net/nrub93m7/4/。它只是一個快速小提琴和r74是場景看起來不同的原因。 –

+0

@FalkThiele它非常接近我的想法。在你的例子中,它展示了沿着光線看到球體的點,據我所知。有沒有辦法讓它看起來只是鼠標在屏幕上的位置,這意味着鼠標的x和y座標,但相機的z軸座標? –

+0

我試圖把'var distance'設置爲'0',但是瓷磚根本不能轉動。有任何想法嗎? –

回答

1

我只是說這個方法將你的jsfiddle鏈接:

function onDocumentMouseMove(event) 
{ 
    mouse3D = new THREE.Vector3(event.clientX, event.clientY, 0); 
} 
+0

這產生了一個奇怪的結果,物體看着球體內的某個點,但不是真正的鼠標位置,你可以看看我在主要問題下作爲評論給出的解釋嗎? –

+0

每次移動鼠標時創建一個新的vec代價很高 – Neil