我正在尝试使用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()
但是我不要这个。我想在图像范围内进行网格划分。另外,我不想在孔内啮合。我可以控制覆盖一个表面的三角形的数量吗?是否有其他方法可以做到这一点?
谢谢。
您可以使用Polygon.IsPointInside(tCentroid)
轻松删除其他三角形,其中tCentroid
是三角形质心。 IsPointInside()
可以由此导出:http://geomalgorithms.com/a03-_inclusion.html。
Triangle程序满足了这两个需求:将三角形精修到指定的大小,并删除多边形外部或孔中的三角形。似乎有python interface浮动:API描述了如何指定孔和最大三角形面积。