2017-08-23 17 views
1

问题:假设您传递了包含2D线段的大小为n的列表。每个线段由2个点(X1,Y1)和(X2,Y2)组成。提出一种算法和结构,将这些线条分组为连续多段线(链)。 注意:连续多段线就是一串实体。想象一个包含4条线的正方形,并且它们被链接在一起以在广场上移动。从线段查找多义线的算法

我的初始解决方案:创建顶点类和线类。每行有数据成员指向开始和结束顶点。然后,算法遍历每个顶点以查找是否有任何线段具有共同的顶点,然后对它们进行分组。 我不知道这是否是一种有效的做到这一点

+1

发布您的“我的初始解决方案”。 –

+0

在C++中,使用BOOST **多边形**库。 – Prune

回答

1

做一个传过来细分列表,反引用的每个顶点指向具有它作为一个端点每个段。您现在有了一个双向图(顶点和段),并且可以高效地应用已知算法来查找图中节点的闭合。每个闭包都是多段线。