我有一组2D坐标。它可以是正面的,也可以是负面的,也可以是分数。所以分数就像,
50.2345,-23.452
1.345,-14.206
等等等等。现在我的问题是,如果我在图表上绘制这些坐标,如何确定线是否相交以形成一个循环,或者它是否保持为曲折线(不相交)。
答案 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;