【问题标题】:Three.js: Is there any way to take bounding box for groupThree.js:有没有办法为组采取边界框
【发布时间】:2021-07-07 19:43:53
【问题描述】:

我可以为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 );

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

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

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

    three.js R118

    【讨论】:

      【解决方案2】:

      Group 继承自 Object3D,因此您可以使用 .setFromObjectBox3,然后使用 .getSize

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-12
        • 2019-05-20
        • 1970-01-01
        相关资源
        最近更新 更多