三角形没有长三角形

时间:2013-09-12 15:10:19

标签: python matplotlib triangulation

在python中,对于一组点,使用

import matplotlib.tri as tri
triang = tri.Triangulation(x, y)

如何制作遮罩以消除长边三角形?

1 个答案:

答案 0 :(得分:3)

最后我解决了这个问题:

import matplotlib.tri as tri

def long_edges(x, y, triangles, radio=22):
    out = []
    for points in triangles:
        #print points
        a,b,c = points
        d0 = np.sqrt( (x[a] - x[b]) **2 + (y[a] - y[b])**2 )
        d1 = np.sqrt( (x[b] - x[c]) **2 + (y[b] - y[c])**2 )
        d2 = np.sqrt( (x[c] - x[a]) **2 + (y[c] - y[a])**2 )
        max_edge = max([d0, d1, d2])
        #print points, max_edge
        if max_edge > radio:
            out.append(True)
        else:
            out.append(False)
    return out

triang = tri.Triangulation(x, y)
mask = long_edges(x,y, triang.triangles)
triang.set_mask(mask)
plt.triplot(triang)