gpt4 book ai didi

c++ - 如何在约束delaunay三角剖分中获取三角形的顶点?

转载 作者:行者123 更新时间:2023-11-28 07:27:11 30 4
gpt4 key购买 nike

我用cgal写了一个程序如下:

typedef CGAL::Exact_predicates_inexact_constructions_kernel       K;
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
typedef CGAL::Triangulation_face_base_with_info_2<FaceInfo2,K> Fbb;
typedef CGAL::Constrained_triangulation_face_base_2<K,Fbb> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb,Fb> TDS;
typedef CGAL::Exact_predicates_tag Itag;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS, Itag> CDT;
typedef CDT::Point Point;
typedef CGAL::Polygon_2<K> Polygon_2;

int main( )
{

//construct two non-intersecting nested polygons
Polygon_2 polygon1;
polygon1.push_back(Point(0,0));
polygon1.push_back(Point(2,0));
polygon1.push_back(Point(2,2));
polygon1.push_back(Point(0,2));
CDT cdt;
insert_polygon(cdt,polygon1);
CDT::Finite_faces_iterator t=cdt.faces_begin();

for (t = cdt.finite_faces_begin(); t != cdt.finite_faces_end(); t++)
{
//how can i achieve that?

}

}

我想从 cdt.finite_faces_begin() 获取三角形的顶点,在 for 循环的每次迭代中,t 指向那个三角形。

例如在循环的第一次迭代中,我得到了第一个三角形的顶点,在循环的第二次迭代中,我得到了第一个+第二个三角形的顶点,在第三个中,我得到了第一个+三角形的顶点第二个+第三个三角形等等。我怎样才能做到这一点?

最佳答案

如果在第 i 次迭代中您只需要面部的三个顶点,请使用 for(inti=0;i<3;++i){t->vertex(i);} , 或 t->vertex(i)->point() .

如果你不想得到一个你已经从以前的面得到的顶点,你必须使用 std::set<Vertex_handle>你在循环外声明。

关于c++ - 如何在约束delaunay三角剖分中获取三角形的顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563373/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com