ThreeJS教程:包围盒Box3

ThreeJS教程:包围盒Box3
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

包围盒Box3

所谓包围盒Box3,就是一个长方体空间,把模型的所有顶点数据包围在一个最小的长方体空间中,这个最小长方体空间就是该模型的包围盒Box3

包围盒Box3

包围盒Box3表示三维长方体包围区域,使用min和max两个属性来描述该包围区域,Box3的min和max属性值都是三维向量对象Vector3。

描述一个长方体包围盒需要通过xyz坐标来表示,X范围[Xmin,Xmax],Y范围[Ymin,Ymax],Z范围[Zmin,Zmax],.min属性值是Vector3(Xmin, Ymin, Zmin),.max属性值是Vector3(Xmax, Ymax, Zmin).

const box3 = new THREE.Box3()
console.log('box3',box3);
box3.min = new THREE.Vector3(-10, -10,0);
box3.max = new THREE.Vector3(100, 20,50);

计算模型最小包围盒.expandByObject()

模型对象,比如mesh或group,作为.expandByObject()的参数,可以计算该模型的包围盒。

const box3 = new THREE.Box3();
box3.expandByObject(mesh); // 计算模型包围盒
console.log('查看包围盒',box3);

浏览器控制台你可以通过.min.max属性查看模型的包围盒信息。

包围盒尺寸.getSize()

返回包围盒具体的长宽高尺寸

const scale = new THREE.Vector3()
// getSize()计算包围盒尺寸
// 获得包围盒长宽高尺寸,结果保存在参数三维向量对象scale中
box3.getSize(scale)
console.log('模型包围盒尺寸', scale);

包围盒几何中心.getCenter()

Box3方法.getCenter()计算返回包围盒几何中心

// 计算包围盒中心坐标
const center = new THREE.Vector3()
box3.getCenter(center)
console.log('模型中心坐标', center);


上一篇:ThreeJS教程:正投影相机-Canvas尺寸变化 (mvrlink.com)

下一篇:ThreeJS教程:地图案例(包围盒、正投影) (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号