一条线段可以由一对点定义。有众所周知的算法可以找到在2D空间中两条线段是否相交。但如果我们通过给线段添加宽度使其变得更加棘手呢?想象一下,你有一条由一对点和一个宽度定义的线段。你最终得到的是一个矩形,其边不一定与坐标轴对齐。(因此您不能使用标准的“矩形重叠”函数。)确定两个这样的线段是否重叠的最佳方法是什么?
一条带宽度的线可以看作是两条平行线,它们之间相隔你所说的宽度。因此,每条带有宽度的线对应着四条线。只需计算这4条线中是否有任何交点,就完成了,不是吗?更新:有评论指出这将忽略重叠的平行线。我认为这是它会忽略的所有情况,因此可以将其作为特殊情况处理。