找出一行中存在的循环(互连)

时间:2015-10-10 04:01:55

标签: python math multidimensional-array coordinates coordinate-systems

我有一组2D坐标。它可以是正面的,也可以是负面的,也可以是分数。所以分数就像,

50.2345,-23.452
1.345,-14.206
等等等等。现在我的问题是,如果我在图表上绘制这些坐标,如何确定线是否相交以形成一个循环,或者它是否保持为曲折线(不相交)。

1 个答案:

答案 0 :(得分:0)

这可以使用嵌套的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;