Al tener un conjunto de puntos (2D) de un archivo GIS (un mapa de la ciudad), necesito generar el polígono que define el 'contorno' para ese mapa (su límite). Sus parámetros de entrada serían los puntos establecidos y una 'longitud de borde máxima'. Luego emitiría el polígono correspondiente (probablemente no convexo).¿Existe un algoritmo eficiente para generar un casco cóncavo 2D?
La mejor solución que encontré hasta ahora fue generar los triángulos Delaunay y luego eliminar los bordes externos que son más largos que la longitud máxima del borde. Después de que todos los bordes externos son más cortos que eso, simplemente elimino los bordes internos y obtengo el polígono que quiero. El problema es que esto consume mucho tiempo y me pregunto si hay una mejor manera.
Usted dice que tiene un archivo SIG - no estás utilizando una aplicación de mapas GIS/software? Sé que el servidor ArcGIS consumirá felizmente cualquier cantidad de puntos y dibujará un mapa superpuesto con el polígono resultante. – Ian
Sí, tengo un archivo GIS pero necesito escribir el algoritmo (en C o C++, probablemente), esto se debe colocar dentro de un programa ya existente y no debe usar herramientas externas (como ArcGIS) para hacer eso, necesita ser autónomo. –
En realidad, no creo que ArcGIS tenga un algoritmo incorporado para hacer lo que quiera.ArcGIS tiene la capacidad de hacer cascos convexos, pero los cóncavos son considerablemente más complicados. –