我想玩一些(2D)Delaunay三角测量,我正在寻找一个相当小的库来工作.我知道CGAL,但我想知道是否有一些相当简单和直接的东西.
我想做的事情:
创建任意点集的三角剖分
找到任意点所在的三角形,并获取顶点
创建三角测量的图像(可选)
建议?
您可能应该稍微详细说明一下您的目标,以便提供更多相关答案,但让我首先提一下Triangle,这是一个用C语言编写的2D Delaunay生成工具,既可以作为独立程序使用,也可以从你自己的代码.
然后,关于CGAL,这是一个典型的小例子,如果你仍然考虑它:
#include#include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Delaunay_triangulation_2 Delaunay; typedef K::Point_2 Point; void load_points(std::vector< Point >& points) { points.push_back(Point(1., 1.)); points.push_back(Point(2., 1.)); points.push_back(Point(2., 2.)); points.push_back(Point(1., 2.)); } int main() { std::vector< Point > points; load_points(points); Delaunay dt; dt.insert(points.begin(), points.end()); std::cout << dt.number_of_vertices() << std::endl; return 0; }