【问题标题】:Align mesh and object bounding boxes with helper axes将网格和对象边界框与辅助轴对齐
【发布时间】:2026-01-02 10:25:02
【问题描述】:

边界框似乎没有与 3d 网格对齐。这就是原因。您能否给我一些提示,告诉我应该如何旋转边界框以使其与 3d 网格正确对齐?

这是 3d 网格和未对齐的对象边界框的屏幕截图:

我尝试过的事情:

  • 尝试了从物体偏移中心位置的方法。

  • 在调用“setFromObject”之前尝试移除对象的旋转和平移。

  • 试图直接旋转盒子。

【问题讨论】:

    标签: three.js 3d rotation alignment bounding-box


    【解决方案1】:

    您可以尝试使用模型 AABB 的中心点,以便按要求偏移它。代码如下:

    const box = new THREE.Box3().setFromObject( model );
    const center = box.getCenter( new THREE.Vector3() );
    
    object.position.x += ( object.position.x - center.x );
    object.position.y += ( object.position.y - center.y );
    object.position.z += ( object.position.z - center.z );
    

    【讨论】:

    • 所以,我试过了,但似乎没有用。我在想,与其尝试将场景(3d 网格)与轴对齐,不如只对齐边界框。我试图用你的方法来抵消盒子的位置,但这也不起作用。这是我尝试过的:box.min.sub(object.position - center) box.max.sub(object.position - center)
    • 我有每个对象的轴对齐边界框坐标。是否可以为 3d 网格中的每个对象绘制自己的边界框?
    • 试试Box3Helper
    • 有人可以帮我解决上述 3d 网格中每个对象的边界框对齐问题吗?
    • 我可以旋转上述 3d 网格中每个对象的框,使其与对象对齐吗?