Probablemente deberías detallar tus objetivos un poco, para que se puedan proporcionar respuestas más relevantes, pero déjame mencionar por primera vez Triangle, una herramienta de generación de Delaunay 2D, escrita en C, que se puede usar como un programa independiente , o llamado desde su propio código.
Luego, sobre CGAL, aquí está un pequeño ejemplo típico, en caso de que todavía tenemos en cuenta que:
#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;
}
En qué dimensión? – Camille
¿Necesita que sea una biblioteca, o podría ser un programa independiente? – Camille
Un programa independiente probablemente no estaría bien. Estoy buscando integrar esto en una herramienta de software más grande. –