Có lẽ bạn nên nêu chi tiết mục tiêu của mình một chút, để tôi có thể cung cấp thêm câu trả lời có liên quan, nhưng hãy để tôi đề cập đến lần đầu tiên Triangle, công cụ thế hệ 2D Delaunay, được viết bằng C và có thể được sử dụng như một chương trình độc lập hoặc được gọi từ mã của riêng bạn.
Sau đó, khoảng CGAL, đây là một ví dụ nhỏ điển hình, trong trường hợp bạn vẫn xem xét nó:
#include <vector>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Delaunay_triangulation_2.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Delaunay_triangulation_2<K> 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;
}
Trong kích thước nào? – Camille
Bạn có cần nó là một thư viện, hoặc một chương trình độc lập có thể được chấp nhận không? – Camille
Một chương trình độc lập có thể sẽ không ổn. Tôi đang tìm cách tích hợp nó vào một công cụ phần mềm lớn hơn. –