Учитывая массив двумерных точек (#pts x 2) и массив из которых связаны с которыми (#bonds x 2 int array с индексами pts), как я могу эффективно возвращать массив многоугольников, образованных из связей?Полигоны из сети подключенных точек
Могут быть «оборванные» связи (как в левом верхнем углу изображения ниже), которые не закрывают многоугольник, и их следует игнорировать.
import numpy as np
xy = np.array([[2.72,-2.976], [2.182,-3.40207],
[-3.923,-3.463], [2.1130,4.5460], [2.3024,3.4900], [.96979,-.368],
[-2.632,3.7555], [-.5086,.06170], [.23409,-.6588], [.20225,-.9540],
[-.5267,-1.981], [-2.190,1.4710], [-4.341,3.2331], [-3.318,3.2654],
[.58510,4.1406], [.74331,2.9556], [.39622,3.6160], [-.8943,1.0643],
[-1.624,1.5259], [-1.414,3.5908], [-1.321,3.6770], [1.6148,1.0070],
[.76172,2.4627], [.76935,2.4838], [3.0322,-2.124], [1.9273,-.5527],
[-2.350,-.8412], [-3.053,-2.697], [-1.945,-2.795], [-1.905,-2.767],
[-1.904,-2.765], [-3.546,1.3208], [-2.513,1.3117], [-2.953,-.5855],
[-4.368,-.9650]])
BL= np.array([[22,23], [28,29], [8,9],
[12,31], [18,19], [31,32], [3,14],
[32,33], [24,25], [10,30], [15,23],
[5,25], [12,13], [0,24], [27,28],
[15,16], [5,8], [0,1], [11,18],
[2,27], [11,13], [33,34], [26,33],
[29,30], [7,17], [9,10], [26,30],
[17,22], [5,21], [19,20], [17,18],
[14,16], [7,26], [21,22], [3,4],
[4,15], [11,32], [6,19], [6,13],
[16,20], [27,34], [7,8], [1,9]])
Вы хотите Вороного Diagram (Tesselation), из которых имеются многочисленные примеры на этом сайте http://stackoverflow.com/questions/10650645/python-calculate-voronoi-tesselation-from-scipys-delaunay-triangulation -in-3d и его реализация может быть получена с использованием алгоритма Fortune в чистом питоне или с помощью других примеров кода, найденных на github и в другом месте –
Нет, Дэн, это не то, что я ищу. У меня уже есть тесселяция, но мои тесселяции вообще не связаны с какой-либо диаграммой ворона, в том смысле, что они не являются двойственными триангуляциями. Мой пример выше был сделан через voronoi, но в большинстве случаев это не так. – NPMitchell
Это могло бы помочь: http://cstheory.stackexchange.com/questions/3447/for-a-planar-graph-find-the-algorithm-that-constructs-a-cycle-basis-with-each?rq=1 , http://cstheory.stackexchange.com/questions/27586/finding-outer-face-in-plane-graph-embedded-planar-graph – liborm