Three.js:有什么办法可以将分组的边界框

时间:2020-07-27 08:32:29

标签: three.js

我可以为Threejs中的组加上边界框吗?我在three.js中有一个对象列表,将它们全部分组为一个单元。我想获取组的高度和宽度,因此我尝试使用Box3确定高度和宽度。有没有办法在threejs中获得对象组的高度和宽度

var geometry = new THREE.BoxBufferGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );

var cubeA = new THREE.Mesh( geometry, material );
cubeA.position.set( 100, 100, 0 );

var cubeB = new THREE.Mesh( geometry, material );
cubeB.position.set( -100, -100, 0 );

//create a group and add the two cubes
//These cubes can now be rotated / scaled etc as a group
var group = new THREE.Group();
group.add( cubeA );
group.add( cubeB );

scene.add( group );

2 个答案:

答案 0 :(得分:0)

使用Box3.setFromObject()为一组对象计算AABB。代码示例:

const aabb = new THREE.Box3();
aabb.setFromObject( group );

three.js R118

答案 1 :(得分:0)

Group继承自Object3D,因此您可以使用Box3中的.setFromObject,然后使用.getSize

let bb = new THREE.Box3().setFromObject(group);
let size = bb.getSize(new THREE.Vector3());

这将为您提供组边界框的大小