找出线路中是否存在环路(互连)
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;
我有一组二维坐标。它可以是正数,也可以是负数,也可以是分数。所以要点就像,
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;