我正在解析一些数据,这些数据以线段数组的形式给出,这些线段描述了几个闭合的任意形状/多边形。这些形状可以是凹形的。这是我正在查看的简化示例:
但是,我提供的数据具有任意顺序的段。根据示例,我的数据将类似于{V,E,D,X,U,A,Z,C,B,W,Y}。因此,绘制线段将显示正确的形状,但是对形状进行任何操作都不会变得容易。
我正在尝试对上面的数组进行排序,以使每个闭合形状的线段都按照连接顺序排列,并且每个形状的线段都组合在一起。
所以
{V,E,D,X,U,A,Z,C,B,W,Y}
Run Code Online (Sandbox Code Playgroud)
会成为
[ {A,B,C,D,E} , {X,Y,Z} , {U,V,W} ]
Run Code Online (Sandbox Code Playgroud)
每组线段的顺序对我来说都无关紧要,只是各个线段是按顺序排列的。我也不关心每组的特定开始部分。
以便
[ {Y,Z,X} , {C,D,E,A,B} , {W,U,V} ]
Run Code Online (Sandbox Code Playgroud)
同样有效。
我没有遍历几何的经验,而我的基本尝试和粗略的在线搜索并没有提供任何快速解决方案。我调查了凹壳,但是鉴于数据已经知道这些点之间的联系,这似乎有些过分。