如何计算Delaunay三角形列表的邻居知道Python中每个三角形的顶点

时间:2015-08-20 20:34:07

标签: python scipy delaunay

我一直在研究这个问题。我有一个知道所有顶点的Delaunay三角形列表,现在我需要计算每个三角形的邻居。

我知道python在scipy.spatial中有模块Delaunay,它可用于计算单元和知道点列表的邻居。但是我如何计算给定所有单纯形的邻居。

三角形列表如下所示:

[[[634706.612442, 3086432.2967], [635268.645733, 3086636.61233],[634830.249107, 3087157.20293]]
[[634706.612442, 3086432.2967], [634830.249107, 3087157.20293], [634401.962216, 3086874.97886]]
[[656237.10083, 3061518.637755], [656776.863279, 3061883.38021], [656330.134218, 3062431.49804]]
[[656237.10083, 3061518.637755], [656330.134218, 3062431.49804], [655787.935768, 3061995.043438]]
[[656541.118122, 3060981.747767], [657223.592341, 3061335.26239], [656776.863279, 3061883.38021]]
[[656541.118122, 3060981.747767], [656776.863279, 3061883.38021], [656237.10083, 3061518.637755]]] 

给出每个顶点的x,y坐标。

2 个答案:

答案 0 :(得分:0)

您可以循环遍历三角形的所有边缘并测试它是否共享相同的边缘。

答案 1 :(得分:0)

我已经解决了这个问题。实际上,Python中有这样的模块,可以通过知道每个三角形的顶点来获得每个三角形的邻居。

这样的函数是 matplotlib.tri.Triangulation(x,y,triangles = None,mask = None) 此类有两个属性: edge neighbors ,可用于计算每个三角形的邻居。