Javascript 如何在three.js中将摄像头切换到顶部

Javascript 如何在three.js中将摄像头切换到顶部,javascript,animation,three.js,tween.js,Javascript,Animation,Three.js,Tween.js,如何在tween.js的帮助下,通过查看three.js中的对象,将相机切换到顶部位置。正确位置的相机工作正常 请使用此代码笔: var摄像机、渲染器、控件; //场面 场景=新的三个。场景(); //摄像机 摄像机=新的三个正交摄像机(640/-2、640/2、480/2、480/-2、-5000、10000000); 摄像机位置设置(500500); 场景。添加(摄影机); //渲染器 renderer=new THREE.WebGLRenderer({precision:“highp”

如何在tween.js的帮助下,通过查看three.js中的对象,将相机切换到顶部位置。正确位置的相机工作正常

请使用此代码笔:

var摄像机、渲染器、控件;
//场面
场景=新的三个。场景();
//摄像机
摄像机=新的三个正交摄像机(640/-2、640/2、480/2、480/-2、-5000、10000000);
摄像机位置设置(500500);
场景。添加(摄影机);
//渲染器
renderer=new THREE.WebGLRenderer({precision:“highp”,antialas:true,preserveDrawingBuffer:false});
设置大小(640480);
渲染器.setClearColor(0xC2C2);
$(“#canvas”).append(renderer.domElement);
//控制
控件=新的三个.轨道控件(摄影机、渲染器.doElement、渲染器、场景);	
controls.target=新的三个.Vector3(250,0,0)
//轴心
var轴=新的三个.AxisHelper(30000);
场景。添加(轴);
//几何学
var geometry=新的三个.BoxBufferGeometry(100100100);
var material=新的三个.MeshNormalMaterial();
var cube=新的三个网格(几何体、材质);
立方体位置集(250,0,0);
场景.添加(立方体);
制作动画();
函数animate(){
camera.updateProjectMatrix();
控件更新();
TWEEN.update();
请求动画帧(动画);
render();
}
函数render(){
渲染器。渲染(场景、摄影机);
}
//在右边工作
$(“#在右侧工作”)。单击(函数(){
var destPos=新的三个向量3(500,0,0);
var destLookAt=new-THREE.Vector3(250,0,0);
var currentCamPos={
x:camera.position.x,
y:摄像机,位置,y,
z:摄像机,位置,z
};
var destCamPos={
x:destPos.x,
y:destPos.y,
z:destPos.z
};
变量tween=新tween.tween(当前CAMPOS)
.至(destCamPos,600)
.onUpdate(函数(){
摄影机.position.set(这个.x,这个.y,这个.z);
摄影机。注视(destLookAt);
controls.target=destLookAt;
})
.start();
});
//从上到下不工作
$(“#不在顶部工作”)。单击(函数(){
var destPos=新的三个向量3(0500,0);
var destLookAt=new-THREE.Vector3(250,0,0);
var currentCamPos={
x:camera.position.x,
y:摄像机,位置,y,
z:摄像机,位置,z
};
var destCamPos={
x:destPos.x,
y:destPos.y,
z:destPos.z
};
变量tween=新tween.tween(当前CAMPOS)
.至(destCamPos,600)
.onUpdate(函数(){
摄影机.position.set(这个.x,这个.y,这个.z);
摄影机。注视(destLookAt);
controls.target=destLookAt;
})
.start();
});
body{margin:0;}
#画布{浮动:左;宽度:640px;高度:380px;边框:1px实心#D3}
.按钮{边框:1px纯黑色;光标:指针;宽度:230px;高度:20px;}
.按钮:悬停{背景:蓝色;颜色:白色;}

在右边工作
从上到下不工作

您需要为“从中间到顶部”设置不同的
destPos

var destPos = new THREE.Vector3().addVectors(cylinder.position, new THREE.Vector3(0, 500, 0));

您需要以不同的方式设置“从中间到顶部”的
destPos

var destPos = new THREE.Vector3().addVectors(cylinder.position, new THREE.Vector3(0, 500, 0));

你能澄清一下,把相机调到最高位置有什么问题吗?谢谢你的回答!看起来二人之间的关系还不完整。我更新了代码笔,并将立方体几何体更改为圆柱体几何体。相机的位置不仅仅是从上面。我添加了一个图像来澄清。你能澄清一下,把相机移到顶部位置有什么问题吗?谢谢你的回答!看起来二人之间的关系还不完整。我更新了代码笔,并将立方体几何体更改为圆柱体几何体。相机的位置不仅仅是从上面。我给Clarify添加了一张图片,这太棒了。非常感谢。太棒了。非常感谢。