我在stackoverflow上看过很多帖子,正在讨论这个话题.我从stackoverflow中找到了一个解决方案,但我找不到帖子.这就是说:如果两条线相交,那么交叉产品会为左侧和右侧产生两种不同的结果.一个积极和一个消极.否则两者都有相同的标志.到目前为止还可以.使用的公式是,其中AB是一行而CD是另一行.
dotproductleft =(Bx-Ax)(Cy-By) - (By-Ay)(Cx-Bx)
dotproductright =(Bx-Ax)(Dy-By) - (By-Ay)(Dx-Bx)
如果我为以下给定的GPS坐标计算得到这个,我得到一个交叉点,在没有交叉点的情况下.
答:x:15.4433917 y:47.0697272
B:x:15.4433661 y:47.0697722
C:x:15.4434363 y:47.0696776
D:x:15.442966 y:47.0700098
如果我在谷歌地图引擎上绘制它,我可以看到这些线之间肯定没有交集.
dotproductleft的结果:-7.372399999828474E-10和dotproductright:1.1921940000328E-8
它非常适合其他例子,但在这里我看到它不能正常工作.但我无法发现公式中的任何错误.
