Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有一个three.js函数来模拟摄影机的移动?_Javascript_Three.js - Fatal编程技术网

Javascript 是否有一个three.js函数来模拟摄影机的移动?

Javascript 是否有一个three.js函数来模拟摄影机的移动?,javascript,three.js,Javascript,Three.js,我的场景中有两个模型。我可以单击一个按钮,使用以下代码将相机传送到场景中的不同空间: camera.position.set(0, 100, -350); //sets initial camera orbit rotation controls.target.set(0, 0, 0); //sets orbit location in world 是否有一个three.js函数来模拟摄影机在点之间的移动?如评论中所述,您可以使用类似tween.js的动画库来解决此问题。也可以使用three.

我的场景中有两个模型。我可以单击一个按钮,使用以下代码将相机传送到场景中的不同空间:

camera.position.set(0, 100, -350); //sets initial camera orbit rotation
controls.target.set(0, 0, 0); //sets orbit location in world

是否有一个three.js函数来模拟摄影机在点之间的移动?

如评论中所述,您可以使用类似
tween.js的动画库来解决此问题。也可以使用
three.js
的内部动画系统,但它的低级API更适合于资产加载程序

查看以下使用
tween.js制作的示例。查看摄影机位置如何在两秒钟内设置动画,以及如何使用
onUpdate()
回调将摄影机聚焦在网格上

var摄像机、场景、渲染器;
变量几何、材质、网格;
init();
制作动画();
函数init(){
摄像头=新的三个透视摄像头(70,窗口内宽/窗口内高,0.01,10);
摄像机位置z=1;
var目标=新的三个向量3(1,0,1);
新TWEEN.TWEEN(摄影机位置)
.to({x:target.x,y:target.y,z:target.z},2000)
.onUpdate(()=>{camera.lookAt(scene.position);})
.start();
场景=新的三个。场景();
几何体=新的三点几何体(0.2,0.2,0.2);
材质=新的三个。MeshNormalMaterial();
网格=新的三个网格(几何体、材质);
场景。添加(网格);
renderer=new THREE.WebGLRenderer({antialas:true});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
}
函数animate(){
请求动画帧(动画);
TWEEN.update();
渲染器。渲染(场景、摄影机);
}

使用tween.js或GSAP库。