如何在 three.js 中飞越场景?
How to flyover a scene in three.js?
我正在开发一个应用程序来显示属性及其元素,如墙壁、门等。我需要控制相机以缩放到场景中的特定对象。但是,我需要在物体之间缓慢移动相机而不是快速移动。我这里有一个例子:
http://interactivebuildings.planning.nsw.gov.au/planning-residential
在此示例中,当您单击列表中的某个对象时,相机会飞向该对象。
我怎样才能在 Three.js 中飞翔?
谢谢。
这叫做补间。
有一些用于 JS 的补间库。
我首选的补间库是 Greensock
的 TweenLite 或 TweenMax
要执行我认为您想要的操作,您只需对场景中的相机属性进行补间。
这是我用过的。使用 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);
我正在开发一个应用程序来显示属性及其元素,如墙壁、门等。我需要控制相机以缩放到场景中的特定对象。但是,我需要在物体之间缓慢移动相机而不是快速移动。我这里有一个例子:
http://interactivebuildings.planning.nsw.gov.au/planning-residential
在此示例中,当您单击列表中的某个对象时,相机会飞向该对象。 我怎样才能在 Three.js 中飞翔?
谢谢。
这叫做补间。
有一些用于 JS 的补间库。
我首选的补间库是 Greensock
要执行我认为您想要的操作,您只需对场景中的相机属性进行补间。
这是我用过的。使用 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);