使用Delaunay方法创建三角形网格

问题描述 投票:1回答:2

我正在尝试使用python创建三角形网格。据我了解边界点,我认为delaunay方法更合适。我尝试使用scipy。代码很简单

from scipy.spatial import Delaunay
pixelpoints = np.transpose(np.nonzero(binaryImage))
tri = Delaunay(pixelpoints)
import matplotlib.pyplot as plt
plt.triplot(pixelpoints[:,0], pixelpoints[:,1], tri.simplices.copy())
plt.plot(pixelpoints[:,0], pixelpoints[:,1], 'o')
plt.show()

“输出三角剖分”但是我不要这个。我想在图像范围内进行网格划分。另外,我不想在孔内啮合。我可以控制覆盖一个表面的三角形的数量吗?是否有其他方法可以做到这一点?

谢谢。

python numpy scipy triangulation delaunay
2个回答
0
投票

您可以使用Polygon.IsPointInside(tCentroid)轻松删除其他三角形,其中tCentroid是三角形质心。 IsPointInside()可以由此导出:http://geomalgorithms.com/a03-_inclusion.html


0
投票

Triangle程序满足了这两个需求:将三角形精修到指定的大小,并删除多边形外部或孔中的三角形。似乎有python interface浮动:API描述了如何指定孔和最大三角形面积。

© www.soinside.com 2019 - 2024. All rights reserved.