为了账号安全,请及时绑定邮箱和手机立即绑定

请问要如何通过编程来改变 Forge Viewer 相机位置

请问要如何通过编程来改变 Forge Viewer 相机位置

DIEA 2019-02-27 21:58:12
您好,我想知道有没有办法通过写代码的方式来改变 Forge Viewer 相机的位置,这是有办法做到的吗?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

可以的,在 Forge Viewer 里头有很多方法可以做到这点,这边我会以 AutoCam.goToView() 来示范,以下样例假设相机的新位置是 ( x1, y1, z1 ):


// 获取当前相机信息

const currentView = viewer.autocam.getCurrentView();

cosnt eye = viewer.navigation.getEyeVector();

const eyeDir = viewVec.normalize();

const distance = eye.length();                         //!<<< 相机与焦点的距离


const newPosition = new THREE.Vector3( x1, y1, z1 );   //!<<< 相机的新位置

const target = eye.add( newPosition );                 //!<<< 计算新焦点位置


// 产生新相机信息

const newView = {

    position: newPosition.clone(),                     //!<<< 相机的新位置

    up: currentView.up.clone(),

    center: target.clone(),                            //!<<< 相机的新焦点

    pivot: target.clone(),                             //!<<< 相机的新环绕(Orbit)中心

    fov: currentView.fov,

    worldUp: currentView.worldUp.clone(),

    isOrtho: (currentView.isOrtho === false)

};


// 将信息更新到相机上

viewer.autocam.goToView( newView );

以上希望对你帮助~


查看完整回答
反对 回复 2019-03-07
  • 1 回答
  • 0 关注
  • 596 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号