问题定义:
-3D
-由最小x,y,z角和最大x,y,z角定义的两个边界框
目标/目标:
-检查它们是否重叠,一个包含另一个或是否相隔一定距离
边界条件:
-目前,我正在使用c#进行编码
目前为止的方法:
检查每个坐标方向(x,y,z):
if (a.Max.X < b.Min.X || b.Max.X < a.Min.X)
{
/*
* x x o o
* o o x x
* */
}
else if ((b.Min.X < a.Max.X && b.Max.X > a.Max.X) ||
(a.Min.X < b.Max.X && a.Max.X > b.Max.X))
{
/*
* x o x o
* o x o x
*/
}
else if((b.min.X < ...........
不幸的是,我不确定这是否是最干净,最快的选择。在我看来,我想必须有一些聪明的数学策略来解决我的问题,但到目前为止,我还是没能做到。