【发布时间】:2016-03-12 15:28:48
【问题描述】:
如果给定 3d 空间中两个矩形棱柱的角点,其中一个以 (0,0,0) 为中心,一般来说,找到角点的优雅且有效的方法是什么重叠的直角棱镜,或者如果两个直角棱镜不重叠,什么都不返回?
【问题讨论】:
-
两个棱镜轴对齐吗?
标签: algorithm math 3d geometry overlap
如果给定 3d 空间中两个矩形棱柱的角点,其中一个以 (0,0,0) 为中心,一般来说,找到角点的优雅且有效的方法是什么重叠的直角棱镜,或者如果两个直角棱镜不重叠,什么都不返回?
【问题讨论】:
标签: algorithm math 3d geometry overlap
我假设“重叠的矩形棱镜”是指两个棱镜的交点。另外,我假设它们是轴对齐的。
让棱镜 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) 其中^ 表示“和”时,交集是非空的。
那么交点的下限和上限 x 由max(xmina, xminb) 和min(xmaxa, xmaxb) 给出,y 和 z 也是如此。
【讨论】: