Ich habe einige Kartendateien, die aus 'Polylinien' bestehen (jede Linie ist nur eine Liste von Eckpunkten), die Tunnel darstellen, und ich möchte versuchen, die 'Mittellinie' des Tunnels zu finden (unten ungefähr in Rot dargestellt).
Ich hatte in der Vergangenheit einige Erfolge mit der Delaunay-Triangulation , möchte diese Methode jedoch vermeiden, da sie (im Allgemeinen) keine einfache / häufige Änderung meiner Kartendaten ermöglicht.
Irgendwelche Ideen, wie ich das schaffen könnte?
Ich arbeite in ziemlich rohem C ++.
Antworten:
Sie haben eine gute Annäherung an die mediale Achsentransformation gezogen. Die Delaunay-Triangulation bietet in der Tat einen guten Ansatz. (Die Hauptherausforderung besteht darin, dass Teile des MAT Parabelstücke sind, nicht nur Liniensegmente.)
Ich bin in der akademischen Literatur auf Verweise auf Arbeitscode gestoßen (normalerweise in C / C ++, wie ich mich erinnere). Führen Sie eine Suche in Google Scholar durch und suchen Sie nach älteren Artikeln (die neueren scheinen sich auf 3D-Berechnungen zu konzentrieren).
quelle
Ein Blick in "Polygonskelette" könnte sich lohnen.
Unter http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Straight_skeleton_2/Chapter_main.html finden Sie einige C ++ - Quellcode-Beispiele
quelle