Tengo algunos archivos de mapa que consisten en 'polilíneas' (cada línea es solo una lista de vértices) que representan túneles, y quiero tratar de encontrar la 'línea central' del túnel (que se muestra, aproximadamente, en rojo a continuación).
He tenido cierto éxito en el pasado usando la triangulación de Delaunay, pero me gustaría evitar ese método ya que (en general) no permite la modificación fácil / frecuente de los datos de mi mapa.
¿Alguna idea sobre cómo podría hacer esto?
Estoy trabajando en C ++ bastante crudo.
Respuestas:
Has dibujado una buena aproximación a la Transformación del Eje Medial. La triangulación de Delaunay de hecho ofrece un buen enfoque. (El principal desafío es que partes de la MAT son piezas de parábolas, no solo segmentos de línea).
Me he encontrado con referencias al código de trabajo (generalmente en C / C ++, según recuerdo) en la literatura académica. Realice una búsqueda en Google Académico y busque documentos más antiguos (los más nuevos parecen centrarse en cálculos 3D).
fuente
Podría valer la pena mirar en "esqueletos poligonales".
Hay algunos ejemplos de fuentes de C ++ en http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Straight_skeleton_2/Chapter_main.html
fuente