2014-02-06 102 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