我需要知道线段上最接近AABB的点。我知道这条线肯定不会和盒子相交。
作为一种可能的简化,长方体的一个维度是零(大多数时候),所以我只需要在线段上找到离一个面最近的点。(我可以将其扩展到检查边缘情况下AABB的所有6个面)
只是为了确认
- 这条线不是无限的,它是由两点定义的
- 长方体/面也是受约束的,而不是无限的
我已经找到了一个可能的解决方案。我在长方体的12条边中的每一条边上找到最近的点(假设是完整的三维长方体),然后将线段的每一端都夹在长方体上,并计算与线段的距离。然后,我从这14点中选择最接近的一点,这似乎很有效。2个额外夹点的原因是,当线段被约束在盒子的2个维度内时,例如,想想棒棒糖,在这个例子中,最近的点不在其中一个边缘上。