我在工作中遇到了一个任务,我需要使用Python在几个不同的多边形中创建三角形网格。虽然多边形是凸壳的分段,但每个分段本身都是凹形的。当我尝试使用scipy.spatial.Delaunay()时,该算法似乎假设多边形是凸的,并最终在凹壳区域之外生成三角形。代码和结果图如下所示。
for i in range(len(mp)):
dtri = np.array(mp[i])
plt.scatter(dtri[:,0],dtri[:,1])
plt.plot(np.array(fdc_seg[i])[:,0],np.array(fdc_seg[i])[:,1])
我尝试使用来细分带有孔的多边形。细分的三角形将由OpenGL渲染。我的多边形有一个外环和多个内环。我只知道所有环的x,y坐标。为了使用三角库进行镶嵌,我必须将孔列表和孔的数量传递给三角库的三角形结构成员:holelist和numberofholes
struct triangulateio {
REAL *pointlist; /* In / out */
REAL *pointattributelist; /* In /
给定一个表示为二维点的数组的路径:
Point[] path = new Point[4]
{
new Point(0,0),
new Point(10,0),
new Point(10,10),
new Point(0,10),
};
..。给你,一个盒子。
什么是最好的方法来转换成一个三角形列表(填充路径),以便在3D应用程序中使用?考虑到这只是一个简单的示例,并且实际中的路径可能相当复杂。框架中有没有什么东西可以对此有所帮助,比如System.Drawing或者WPF?
编辑:(在Samuel的评论之后)理想情况下,我希望能够同时处理凸多边形和凹多边形,否