【发布时间】:2013-07-16 15:07:32
【问题描述】:
我有一个二维点列表,它描述了一个简单的多边形。由于 CGAL,我计算了 Delaunay 约束。
Polygon_2 polygon;
//Create a polygon from a vector
for(int j=0; j < (*itVectorPoint2D).size(); j++) {
polygon.push_back(Point((*itVectorPoint2D)[j].x,(*itVectorPoint2D)[j].y));
}
//Insert the polygon into a constrained triangulation
CDT cdt;
insert_polygon(cdt,polygon);
//Mark facets that are inside the domain bounded by the polygon
mark_domains(cdt);
for (CDT::Finite_faces_iterator fit=cdt.finite_faces_begin(); fit!=cdt.finite_faces_end();++fit)
{
if (fit->info().in_domain()) {
std::cout << (*(fit->vertex(0))) << ";" << (*(fit->vertex(1))) << ";" << (*(fit->vertex(2))) << std::endl;
}
}
我的问题是我想从初始向量中检索具有索引三元组的每个三角形。例如,对于由 0 定义的正方形:(0,0) 1:(1,0) 2:(1,1) 和 3:(0,1),我要检索 (0强>、1、2)和(0、2、3) .我可以检索当前顶点的坐标并将它们与向量中的每个点进行比较,但我认为它丑(而且效率低下,可能是问题的根源?)。
有办法吗?
【问题讨论】:
-
您是否需要索引来匹配插入顺序,或者如果索引与三角剖分中顶点的顺序匹配,您是否可以?
-
@sloriot : 我想检索我在第一个循环中使用的 j,所以是输入顺序。
标签: c++ geometry computational-geometry cgal