欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

three.js 包围盒简单应用

程序员文章站 2024-03-16 18:07:22
...

一、包围盒

二、包围盒简单应用:

(一)移动模型到合适的位置

计算多个模型组合的group的包围盒

var bbox = new THREE.Box3().setFromObject(group)

将导入的外部模型移动到世界坐标中心。(比较粗糙的,实际上是包围盒的中心移动到世界坐标中心,而非实际模型)

注意点:从代码中看,group.position.set(-x1,-y1,-z1); 应该是长方体的左下里那个顶点为基准来移动位置的。但又感觉应该不是才对。应该就是几何体的中心才合理于方便。

var bbox = new THREE.Box3().setFromObject(group)
var mdlen=bbox.max.x-bbox.min.x;
var mdwid=bbox.max.z-bbox.min.z;
var mdhei=bbox.max.y-bbox.min.y;
var centerpoint=new THREE.Vector3();
var x1=bbox.min.x+mdlen/2;
var y1=bbox.min.y+mdhei/2;
var z1=bbox.min.z+mdwid/2;
group.position.set(-x1,-y1,-z1); //从代码来看,应该是长方体的左下里那个顶点为基准来移动位置的。但又感觉应该不是才对。应该就是几何体的中心才合理于方便。

其实还有两种方式,一种是通过var BaxH = new THREE.BoundingBoxHelper(Load_Model,hex);
还有Geometry的方式computeboundingBox(),然后取Geometry.center()此时,
几何体就会来到场景的中心位置,但是,这样做对于组是不行的,哪怕对组里面每个几何体都取center,
那么模型也乱了,也没达到效果。

 (二)、

 

 

 

 

 

 

 

 

 

 

相关标签: three.js