如何在three.js中飞越场景?

时间:2015-01-04 23:56:34

标签: javascript camera three.js

我正在开发一个应用程序来显示属性及其元素,如墙壁,门等。我需要控制相机以缩放到场景中的特定对象。但是,我需要在物体之间缓慢移动相机而不是快速移动。我在这里有一个例子:

http://interactivebuildings.planning.nsw.gov.au/planning-residential

在此示例中,当您从列表中单击某个对象时,相机会飞到该对象。 我怎样才能在Three.js中飞行?

感谢。

2 个答案:

答案 0 :(得分:1)

它叫做补间 JS有一些补间库 我首选的补间库是Greensock

的TweenLite或TweenMax

要做我想你想做的事,你只需在场景中补间相机的属性。

答案 1 :(得分:0)

这是我用过的。使用tween.js http://www.createjs.com/#!/TweenJS可以很好地工作。

function test () {
var position = {X: 200, Y: 200, Z: 200, lookX: 0, lookY: 0, lookZ: 0};
tween = new TWEEN.Tween(position).to({X: 0, Y: 300, Z: 0, lookX: 0, lookY: 0, lookZ: 0}, 2000);
tween.easing(TWEEN.Easing.Circular.InOut);
tween.onUpdate(function(){
camera.position.set(position.X,position.Y,position.Z);
camera.lookAt( {x:position.lookX, y:position.lookY, z:position.lookZ } );   
 });
tween.start();
}

test();
animate();
TWEEN.update(time);