我有类似于以下的多边形链...
...鉴于图像中的链,如何计算定义相同形状但没有交叉路径的链?
具体来说,在图像输入链的情况下,我想要的结果如下所示:
A1 ,
A2 ,
A2 和 A3 之间相交,
A3 和 A4 之间相交,
A4 ,
A5 ,
A3 和 A4 之间相交,
A3 ,
A3 和 A2 之间相交,
A6
我正在寻找一种算法来完成任何链条,但我不确定我想要做什么甚至被调用,这使搜索解决方案变得棘手。
如果有一个我正在尝试做的事情的名称,那么了解它会有很大的帮助。
感谢您的帮助!
答案 0 :(得分:3)
这是一个简单的算法:
for each line segment in the chain:
Identify any segments which cross this segment
If crossings > 0
Follow the branch to the right, if this doesn't lead back to the
current intersection follow the branch to the left
go to the next line segment
如果跟随分支在到达链的末尾之前没有返回到该交叉点,这意味着您已跳过循环,那么您需要选择另一个分支。
对于您的示例,运行此算法将生成
Start at segment A1-A2
No intersections, goto next
Segment A2-A3
Intersection A2-A3/A6-A5 choose right path and store the current intersection somewhere
Segment A6-A5
Intersection A6-A5/A4-A3 choose right path and store intersection
Segment A3-A4
A4-A5
A5-A6
Back at intersection A6-A5/A4-A3, go right again to be back on A4-A3
A3-A2
Back at intersection A2-A3/A6-A5, go right again
Finish