【发布时间】:2015-10-16 06:16:28
【问题描述】:
我想检查两条线是否相交。我知道如何检查两条线之间的交点的算法,但就我而言,我有一些不同的问题。为了解释我的问题,我在这里附上图片。
用于绘制的数据:
第 1 行:
起始坐标:-121.001525, 632.378285
结束坐标:-125.106805, 625.773505
半径:1
第 2 行:
起始坐标:-121.116355, 632.866595
结束坐标:-133.183055, 631.490825
半径:2.5
我如何绘制这张图片:
在图像中,您可以看到中心线为黑色。并用这个半径画出图像的轮廓。
现在进入正题,视觉上我们可以看到图像是相交的,但线没有相交。如果线相交,那么我们可以很容易地找到线是否相交。但在我的情况下,线条不相交,但图像相交,所以如何检查两个图像是否相交?
任何建议如何解决这个问题?
【问题讨论】:
-
如何检查两个线段是否相交?
-
我已经开发了算法来找到两条线之间的交点。这不是问题。
-
您需要创建一些虚拟线 - 偏移 1/2 半径的垂直于每条真实线的线。这些线由包围图片中红色区域的直线段表示。如果任何真实线或虚拟线之间存在交叉点,则您有一个交叉点。
-
我不能这样做。我有理由。如果我要创建一条虚拟线,那么我必须为两条线创建 4 条虚拟线。然后我必须对所有它们相交或不相交的线都降低性能,这就是为什么我试图以这种方式与中心线相交。
-
@ShiladittyaChakraborty:不管你喜不喜欢,如果你想要一个精确的解决方案来解决这个问题,你必须有一个你无法避免的最低成本。这个成本在有利的情况下大致等于两个线-线相交操作,在其他情况下您必须添加两个圆线相交。
标签: math geometry line intersection