对形成闭环的边进行排序

Sort edges which form a closed loop

我从我的网格中得到了一组独特的边 (n,2),每条边都包含它所属的顶点的索引。 我已经检查了边缘是否形成一个或多个闭环(使用 networkx),但现在我需要对它们进行排序以进一步研究边界环。

例如,这个数组有一个来自四个未排序边的闭环:

edges = ([[3, 2], [7, 3],[2, 6],[6, 7]])

现在我想创建一个边排序如下的新数组:

[3, 2] <-> [2, 6] <-> [6, 7] <-> [7,3])

此外,形成第一个闭环的边 shell 将从初始数组中删除,这样我就可以对下一个闭环(如果有的话)进行另一次排序。

已经有 another question 个这样的。长话短说,可能没有内置函数可以执行您想要的操作。但也许您可以根据您的需要调整建议的解决方案 - 尽管它没有被标记为正确)。