2009-09-18 14 views
19

Chciałbym się bawić z trójkątnymi delaunajami (2D) i szukam małej biblioteki do pracy. Jestem świadomy CGAL, ale zastanawiałem się, czy było coś dość prostego i prostego.Lekka biblioteka triangiacyjna Delaunaya (dla C++)

Co chciałbym zrobić:

  • stworzyć triangulacji dowolnego zbioru punktów
  • znaleźć trójkąt dowolnym punktem jest, i sprowadzić wierzchołki
  • utworzyć obraz triangulacji (opcjonalnie)

Sugestie?

+0

W jakim wymiarze? – Camille

+0

Czy potrzebujesz go do biblioteki, czy też samodzielny program może być w porządku? – Camille

+0

Samodzielny program prawdopodobnie nie byłby w porządku. Szukam zintegrowania tego w większe narzędzie oprogramowania. –

Odpowiedz

11

Powinieneś chyba szczegółowo cele trochę, tak że bardziej stosowne odpowiedzi mogą być przewidziane, ale pozwól mi najpierw wspomnieć Triangle, narzędzie generacji 2D Delaunay, który jest napisany w C, i może być używany zarówno jako samodzielny program lub wywołane z własnego kodu.

Następnie o CGAL, tutaj jest to typowy mały przykład, w przypadku, gdy nadal uważają go:

#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

Dziękuję za skierowanie mnie do Trójkąta. Jest bardzo prosty i łatwy w użyciu. –

+0

Czy któreś z tych podejść można zastosować w natywnej aplikacji na iPada? – Andre

+0

@AndrewProck użyłeś go jako biblioteki? ponieważ nie znajduję żadnego przykładu kodu przy użyciu tego trójkąta lib – jokoon