Typescript 如何以编程方式向上平移摄影机,使其与眼睛平齐;“地板”;飞机

Typescript 如何以编程方式向上平移摄影机,使其与眼睛平齐;“地板”;飞机,typescript,three.js,Typescript,Three.js,我正在使用轨迹球控件将相机向上平移(按住d键并向下拖动)到延伸到地平线的类似地板的平面上方。这可以正确工作并获得所需的透视效果,但现在我想设置相机的初始位置,以便它开始平移,而不需要任何键盘控制 我试过查看TrackballControls的源代码,但似乎无法重现它的平移行为 我试过各种各样的 myCamera.translateZ(0.5) 及 myCamera.up.set(0,1,0) 但是,摄像机只是在其侧面翻转,或者表现出意外的行为(比如破坏轨迹球控制键盘输入)。这应该很简单:我如何平

我正在使用
轨迹球控件
将相机向上平移(按住d键并向下拖动)到延伸到地平线的类似地板的平面上方。这可以正确工作并获得所需的透视效果,但现在我想设置相机的初始位置,以便它开始平移,而不需要任何键盘控制

我试过查看
TrackballControls
的源代码,但似乎无法重现它的平移行为

我试过各种各样的

myCamera.translateZ(0.5)

myCamera.up.set(0,1,0)


但是,摄像机只是在其侧面翻转,或者表现出意外的行为(比如破坏
轨迹球控制
键盘输入)。这应该很简单:我如何平移(而不是旋转)相机,使其向上移动(垂直于我的平面),从而使透视从“眼睛水平”开始,而不是从“地面水平”?

如果我理解正确的话

例如,相机的初始位置是
[0,1.8,10]
。使用
THREE.TrackballControls()
时,目标位于
场景位置,即
[0,0,0]
。因此,您可以在相机的高度“升起”目标:

controls.target.set( 0, 1.8, 0);
var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机位置设置(0,1.8,10);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var controls=新的三个.trackball控件(摄影机、渲染器.domElement);
var plane=new THREE.Mesh(new THREE.PlaneGeometry(10,10,10,10),new THREE.MeshBasicMaterial({color:“red”,线框:true}));
平面。几何。旋转(-Math.PI*.5);
场景。添加(平面);
var targetPoint=new THREE.Mesh(new THREE.SphereGeometry(.25,4,2),new THREE.MeshBasicMaterial({color:“yellow”,线框:true}));
目标点位置设置(0,1.8,0);
场景。添加(目标点);
控制目标设定值(0,1.8,0)//控件。目标。复制(目标点。位置);
render();
函数render(){
请求动画帧(渲染);
控件更新();
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}