如何检查一个盒子是否适合另一个盒子(允许任何旋转)

HWᅠ*_*HWᅠ 10 language-agnostic algorithm math geometry computational-geometry

假设我有两个盒子(每个盒子都是一个长方体,也就是长方体).我需要编写一个函数来判断尺寸为(a,b,c)的盒子是否可以放入尺寸为(A,B,C)的盒子中,假设允许任何角度旋转(不仅仅是90°) .

棘手的部分是内盒的边缘可能不平行于外盒的边缘.例如,如果沿着主对角线放置,则尺寸(a,b)非常薄但长度为1 <c <√3的盒子可以装入单位立方体(1,1,1 )中.

我见过问题[1],[2]但它们似乎只覆盖了90°的旋转.

Pen*_*One 2

这不是一个完整的答案,但一个好的开始是确定适合较大盒子的最大直径(将盒子画成一个圆圈)和较小盒子所需的最小直径。这为可能性提供了第一个过滤器。这也告诉您如何在较大的盒子内定位较小的盒子。