找出线路中是否存在环路(互连)

Finding out presence of loops(interconnections) in a line

我有一组二维坐标。它可以是正数,也可以是负数,也可以是分数。所以要点就像,

50.2345,-23.452
1.345,-14.206

等等等等。现在我的问题是,如果我将这些坐标绘制在图表上,如何确定该线是否会相交形成一个环,或者它会保持为之字形线(不与自身相交)。

这可以用嵌套的 FOR 循环来计算。

假设我有5分: [0,0],[1,1],[2,1],[2,0],[0,1]

这给了我们 4 条边,最后一条将与第一条重叠。 edge([0,0],[1,1]) 将与 edge([2,0],[0,1] ).

遍历每条边(线段)并测试与所有其他线段的交集。

伪代码:

 for(edge1 in edges)
 {   
     for(edge2 in edges)
     {
        if ( testIntersect(edge1,edge2) ) return true;
     }
 }
 return false;