Frage

Ich mag mit einigen (2D) Delaunay Triangulation spielen, um und bin auf der Suche nach einer recht kleinen Bibliothek zu arbeiten. Ich bin mir dessen bewusst CGAL, aber ich frage mich, ob es etwas ziemlich einfach und unkompliziert da draußen war.

Dinge, die ich tun möchte:

  • erstellen eine Triangulierung eines beliebigen Punktes
  • finden Dreieck ein beliebiger Punkt ist in, und holen die Eckpunkte
  • Erstellen eines Bildes der Triangulation (optional)

Verbesserungsvorschläge?

War es hilfreich?

Lösung

Sie sollten wahrscheinlich Detail Ihre Ziele ein wenig, so dass mehr relevante Antworten zur Verfügung gestellt werden können, aber lassen Sie mich zunächst a href erwähnen <= „http://www.cs.cmu.edu/~quake/triangle.html“ rel = "noreferrer"> Triangle , eine Generation Werkzeug 2D Delaunay, die in C geschrieben ist, und kann sowohl als eigenständiges Programm oder von Ihrem eigenen Code aufgerufen werden.

Dann, etwa CGAL, hier ist ein typisches kleines Beispiel, falls Sie es noch berücksichtigen:

#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;
}

Andere Tipps

Siehe auch poly2tri, es sieht nett aus: https://github.com/greenm01/poly2tri

Ich habe die Gnu Triangulierte Oberflächenbibliothek für 2D-Delaunay-Triangulation verwendet und es hat gut funktioniert. Etwas seltsam zu nennen, weil es verwendet, dass OOP-in-C GLib Stil, aber es kann leicht sein, verpackt .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top