如果我给出了3d空间中两个矩形棱镜的角点,其中一个以(0,0,0)为中心,一般来说,这将是一种优雅而有效的方法来寻找重叠矩形棱镜的角点,如果两个矩形棱镜不重叠,则不返回任何内容?
答案 0 :(得分:1)
我假设“重叠矩形棱镜”是指两个棱镜的交点。另外,我认为它们是轴对齐的。
让棱镜A的下界由[xmina, ymina, zmina]
表示,棱镜B的下界由[xminb, yminb, zminb]
表示。同样,将上限表示为[xmaxa, ymaxa, zmaxa]
和[xmaxb, ymaxb, zmaxb]
。
当且仅当max(xmina, xminb) < min(xmaxa, xmaxb) ^ max(ymina, yminb) < min(ymaxa, ymaxb) ^ max(zmina, zminb) < min(zmaxa, zmaxb)
^
表示'和'时,交叉点才为空。
然后交叉点的下边界和上边界由max(xmina, xminb)
和min(xmaxa, xmaxb)
给出,类似于y和z。