我想将现有的顶点和边的数据分成两个或多个未连接的图形。我想举以下例子:

想象两个六边形彼此重叠,但是它们位于不同的Z中。

六边形1具有以下顶点A(0,0,1),B(1,0,2),C(2,1,2),D(1,2,1),E(0,2,1) ,F(-1,2,1)。连接如下:A-B,B-C,C-D,D-E,E-F,F-A。图1的这一部分,因为所有顶点都连接在该层中。

Hexagon2具有以下顶点A1(0,0,6),B1(1,0,7),C1(2,1,7),D1(1,2,8),E1(0,2,7), F1(-1,2,6)。连通性如下:A1-B1,B1-C1,C1-D1,D1-E1,E1-F1,F1-A1。这是图2的一部分

我的数据采用以下形式:顶点列表和可以与之形成图形的边列表。我想消除图2,仅将图1的顶点和连通性提供给算法的多边形确定部分。我的真实数据包含大约1000个连接的多边形(作为图1)和大约100个(面积更大)的多边形(作为图2)。我想消除图2。

最佳答案

您正在描述的问题与connected components有关。

Python Networkx模块具有处理此类图形问题的功能。您正在寻找返回所有组件的connected_components函数,然后可以选择适当的组件(可以通过顶点数量)。

关于python - 根据连通性和坐标分离两个图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13067000/

10-10 02:14