python中的三角网格

时间:2017-09-15 02:40:46

标签: python algorithm graph graph-algorithm

我在飞机上有分数。我希望每个点都是至少一个三角形的顶点。我还想填充限制在顶点内的平面,没有重叠的三角形。类似的东西:

enter image description here

请注意,对于任何三角形中的每对点,连接它们的线都包含在某些三角形中的点。

我想获得可以定义三角形的所有顶点三元组的列表。在图片中,将有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。在我的情况下,我明确省略了一些三胞胎。这个失败的一个例子可以在这个图中看到:

enter image description here

哪里有空白区域。相反,我希望所有的空间都没有重叠的三角形。知道怎么做到这一点?非常感谢!

0 个答案:

没有答案