2009-09-18 17 views
19

Me gustaría jugar con algunas triangulaciones (2D) de Delaunay, y estoy buscando una biblioteca razonablemente pequeña para trabajar. Soy consciente de CGAL, pero me preguntaba si había algo bastante simple y directo.Biblioteca ligera de triangulación de Delaunay (para C++)

cosas que me gustaría hacer:

  • crear una triangulación de un conjunto arbitrario de puntos
  • hallazgo triángulo de un punto arbitrario está en, y buscar a los vértices
  • crear una imagen de la triangulación (opcional)

Sugerencias?

+0

En qué dimensión? – Camille

+0

¿Necesita que sea una biblioteca, o podría ser un programa independiente? – Camille

+0

Un programa independiente probablemente no estaría bien. Estoy buscando integrar esto en una herramienta de software más grande. –

Respuesta

11

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; 
} 
+1

Gracias por indicarme Triangle. Es muy sencillo y fácil de usar. –

+0

¿Se puede utilizar alguno de estos enfoques en una aplicación nativa de iPad? – Andre

+0

@AndrewProck ¿lo usaste como lib? porque no encuentro ningún ejemplo de código usando este triángulo lib – jokoon

Cuestiones relacionadas