2014-02-06 63 views
1

我有使用CSS3DRenderer div的一球。當我點擊其中一個div時,我想定位/旋轉攝像頭,以使元素顯示在屏幕中央。 我已經嘗試了幾個例子,我已經閱讀了其他答案,但仍然無法讓它工作。three.js所旋轉攝像機特定位置

目前它移動相機,但球被在不同的地方

重新定位,我試圖做的是以下幾點:

獲取HTML元素的類。然後循環訪問THREE.CSS3DObject的數組以獲取其位置,然後使用它來定位相機。

function moveCamera(element) { 

for (var i = 0; i < objects.length; i ++) { 

    var object = objects[ i ]; 

    if(object.element.className == element.className) { 

     position = object.position; 
     rotation = object.rotation; 
     found = true; 
     break; 
    } 

} 

if (found) { 

    camera.rotation = rotation; 
    render(); 
    found = false; 

} } 

我在做什麼錯了?

這裏的例子http://jsfiddle.net/37R22/1/

感謝

回答

1

你接近。您只需將相機移動到正確的位置即可。

camera.rotation.copy(rotation); 
camera.position.copy(position).multiplyScalar(4); 

更新小提琴:http://jsfiddle.net/37R22/2/http://jsfiddle.net/37R22/3/

要小心去背後的背部TrackballControls和修改自己的相機性能。但是,這似乎有效。

three.js r.65

+1

非常感謝,它完美的工作,雖然我不明白其背後的理論...... – Alfonso