请注意,对于任何三角形中的每对点,连接它们的线都包含在某些三角形中的点。
我想获得可以定义三角形的所有顶点三元组的列表。在图片中,将有6个这样的三元组。
我的尝试就是这个:
indices = range(locs.shape[0])
visited = []
ind_list = []
for ind in indices:
if ind not in visited:
visited.append(ind)
nearest_idx = np.argsort(distances[ind])[1:3]
for ni in nearest_idx:
visited.append(ni)
ind_list.append([ind]+list(nearest_idx))
其中locs
是包含每个顶点的(x,y)坐标的Nx2数组,distances
是NxN矩阵,其i,j分量是第i个顶点和第i个顶点之间的欧氏距离。第j个顶点。请注意,ind_list
是一个索引列表,允许我按locs[ind_list]
获取顶点。我想要的是正确的ind_list
。在我的情况下,我明确省略了一些三胞胎。这个失败的一个例子可以在这个图中看到:
哪里有空白区域。相反,我希望所有的空间都没有重叠的三角形。知道怎么做到这一点?非常感谢!