如何判断两个宽度非零的线段是否相交

时间:2013-05-24 00:00:12

标签: language-agnostic geometry collision-detection

线段可以由一对点定义。存在众所周知的用于发现2D空间中的两个线段是否相交的算法。但是,如果我们通过在线上添加宽度来使它变得有点棘手呢?

想象一下,您有一个由一对点定义的线段宽度。你最终得到的是一个矩形,其边不一定与坐标轴对齐。(所以你不能使用标准的“矩形重叠”函数。)什么是最好的确定方法如果两个这样的线段重叠?

2 个答案:

答案 0 :(得分:0)

我建议使用The Method of Separating Axes来确定旋转的矩形(粗线段)是否重叠。这种方法快速而简单。

答案 1 :(得分:0)

具有宽度的线可以视为两条平行线,以您正在谈论的宽度分隔。因此,每条宽度对应的两条线对应于四条线。只要弄清楚这四条线中的任何一条是否相交,你就完蛋了,不是吗?

更新:评论指出这将错过重叠的平行线。我认为这一切都会错过,所以这个案子可以作为一个特例来处理。