小编int*_*per的帖子

描述多边形的线段的排序和分组数组

我正在解析一些数据,这些数据以线段数组的形式给出,这些线段描述了几个闭合的任意形状/多边形。这些形状可以是凹形的。这是我正在查看的简化示例:

在此处输入图片说明

但是,我提供的数据具有任意顺序的段。根据示例,我的数据将类似于{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)

同样有效。

我没有遍历几何的经验,而我的基本尝试和粗略的在线搜索并没有提供任何快速解决方案。我调查了凹壳,但是鉴于数据已经知道这些点之间的联系,这似乎有些过分。

language-agnostic arrays sorting geometry line-segment

5
推荐指数
1
解决办法
443
查看次数