J'ai des fichiers de carte composés de `` polylignes '' (chaque ligne n'est qu'une liste de sommets) représentant des tunnels, et je veux essayer de trouver la `` ligne centrale '' du tunnel (représentée, en gros, en rouge ci-dessous).
J'ai eu un certain succès dans le passé en utilisant la triangulation de Delaunay, mais j'aimerais éviter cette méthode car elle ne permet pas (en général) de modifier facilement / fréquemment mes données cartographiques.
Avez-vous des idées sur la façon dont je pourrais faire cela?
Je travaille en C ++ assez brut.
Réponses:
Vous avez fait une bonne approximation de la transformation de l'axe médian. La triangulation de Delaunay offre en effet une bonne approche. (Le principal défi est que certaines parties du MAT sont des morceaux de paraboles, pas seulement des segments de ligne.)
J'ai parcouru des références au code de travail (généralement en C / C ++ je me souviens) dans la littérature académique. Effectuez une recherche sur Google Scholar et recherchez des articles plus anciens (les plus récents semblent se concentrer sur les calculs 3D).
la source
Il pourrait être utile de se pencher sur les "squelettes polygonaux".
Il existe un exemple de source C ++ sur http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Straight_skeleton_2/Chapter_main.html
la source