【发布时间】:2011-01-05 06:50:13
【问题描述】:
我正在尝试使用 CGAL 进行一些 Delaunay 三角测量。我使用其中一个 CGAL 样本来计算包含高度字段属性的三角剖分。
我遇到的问题是我不知道如何得到三角测量结果。我想出了如何获得 face_iterator,但我不知道从那里做什么。我希望得到的是每个三角形上 3 个点的点数组的索引。
我在浏览所有嵌套模板时遇到问题:
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Triangulation_euclidean_traits_xy_3.h>
#include <CGAL/Delaunay_triangulation_2.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_euclidean_traits_xy_3<K> Gt;
typedef CGAL::Delaunay_triangulation_2<Gt> Delaunay;
typedef K::Point_3 Point;
int main()
{
//initialize the points with some trivial data
std::vector<Point> pts;
pts.push_back(Point(1., 2., 3.));
pts.push_back(Point(2., 2., 3.));
pts.push_back(Point(1., 3., 3.));
pts.push_back(Point(4., 2., 3.));
//create a delaunay triangulation
Delaunay dt;
dt.insert(pts.begin(), pts.end());
//iterate through the faces
Delaunay::Finite_faces_iterator it;
for (it = dt.finite_faces_begin(); it != dt.finite_faces_end(); it++)
{
//What do I do here??
}
return 0;
}
【问题讨论】:
-
it.something ... 代码完成有帮助吗?
-
Visual Studio 2008 无法在此代码上执行完整的代码 :(
-
突出显示 Delaunay::Finite_faces_iterator 并转到定义。跟踪 .h 文件并查看可用的功能。会的。
-
您的代码的第一个问题是您使用 Delaunay_triangulation_2
而不是 Delaunay_triangulation_3 -
...如果您使用 Delaunay_triangulation_2
...则使用 2D 点...
标签: c++ computational-geometry triangulation cgal delaunay