threejs 模型居中显示方法

1.传统的居中方法,以stl模型举例

调用THREE.BufferGeometry中的center()方法使加载到模型居中
在这里插入图片描述

分析:该方法修改了模型的位置,此时通过鼠标射线,向场景中添加的对象,比如一个THREE.SphereGeometry球体对象实例,其坐标数据是和调用gemotry.center()方法后的模型位置相对应,倘若此时。在场景中调用scene.remove()方法,将stl移除。再调用STLLoader加载器,将stl重新加载到场景中,其geometry和球体的位置是对不上的。

2.通过box3类,不修改模型原始坐标数据

定义获取中心坐标的方法:新建一个box3对象,调用其expandByObject()方法, 扩展边界,包括group对象(也可以是stl、glb)
再调用 getCenter()方法,获得box3的中心点,将其赋值给vector3对象实例center,然后返回该值

在这里插入图片描述
通过获取到的中心点坐标cameraTarget,设置相机的位置、目标点,通过camera.up设置相机顶部的方向,即设置相机的朝向。即可实现模型居中显示的效果

在这里插入图片描述

分析:该方法不修改加载后模型的位置,只是通过方法获取其中心坐标,并调整相机位置和视角,从而达到模型居中显示的目的。此时通过鼠标射线生成的buffer对象,其位置和模型对应关系保持不变,无论模型是否移除并重新加载。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值