我可以为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 );
答案 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());
这将为您提供组边界框的大小