我需要计算导入到three.js场景中的模型的内部/内部边界框。举一个简化的例子,想象一个壁厚可变的矩形谷仓,我们如何计算该谷仓的内部尺寸?
我尝试创建一个Box3
并使用Box3的setFromObject
方法直接从谷仓对象设置其尺寸。这对于典型的边界框效果很好,但是我还没有找到任何方法来计算对象的内部边界框。
答案 0 :(得分:1)
使用模型切片将问题从3D减少到2D。
步骤1 -使用N个水平面对模型进行切片→在2D空间中获得N个形状,每个形状都有自己的Z高度。
步骤2 -每个切片:
第3步-具有矩形集合,将其合并到内部体积中:
内部体积将是最小的常用矩形的形状。
检查从什么矩形得到的结果来知道给定形状的min(Z)
和max(Z)
。
优化以获取最佳音量
可以通过排除某些切片或添加新切片来增加内部音量。例如,我们有内部菱形形状。取max(Z)和min(Z)会产生窄列,这显然不是这种情况下的最佳体积。
从顶部和底部移除切片将改善结果。希望你能明白,对不起我的绘画技巧!