我尝试使用Triangle library细分带孔的多边形。细分三角形将由OpenGL呈现。
我的多边形有一个外环和多个内环。我只有所有环的x,y坐标。为了使用Triangle lib进行镶嵌,我必须将孔列表和孔数传递给Triangle lib到其triangulateio结构成员:holelist
和numberofholes
struct triangulateio {
REAL *pointlist; /* In / out */
REAL *pointattributelist; /* In / out */
int *pointmarkerlist; /* In / out */
int numberofpoints; /* In / out */
int numberofpointattributes; /* In / out */
int *trianglelist; /* In / out */
REAL *triangleattributelist; /* In / out */
REAL *trianglearealist; /* In only */
int *neighborlist; /* Out only */
int numberoftriangles; /* In / out */
int numberofcorners; /* In / out */
int numberoftriangleattributes; /* In / out */
int *segmentlist; /* In / out */
int *segmentmarkerlist; /* In / out */
int numberofsegments; /* In / out */
REAL *holelist; /* In / pointer to array copied out */
int numberofholes; /* In / copied out */
REAL *regionlist; /* In / pointer to array copied out */
int numberofregions; /* In / copied out */
int *edgelist; /* Out only */
int *edgemarkerlist; /* Not used with Voronoi diagram; out only */
REAL *normlist; /* Used only with Voronoi diagram; out only */
int numberofedges; /* Out only */
};
孔由孔内一个点的坐标表示。我的问题是:我可以在不指定孔的情况下进行镶嵌(仅使用内部环)吗?或者,如果我必须列出孔,我怎样才能快速找到孔内的一个点?这个过程对时间至关重要。
答案 0 :(得分:0)
如果不指定孔,则无法进行镶嵌。 在孔内找到一个点的一种可能的方法是对它进行三角测量,好像它是一个简单的环(在其中没有孔)并采取例如其中一个输出三角形的质心。我希望它有所帮助。