Aquí es una solución simple ...
Comience con cualquiera de los tres puntos para formar un triángulo. Agregue cada punto adicional al polígono con la siguiente operación:
Divida los bordes en dos rutas continuas, donde en una ruta la línea de cada borde separa el punto que se agregará del resto del polígono (llamémoslo "separación de ruta") y en la otra ruta, la línea de cada borde tiene el punto en el mismo lado que el polígono.
(Nota: el tiempo que su forma se mantiene convexa, que debe, estos dos caminos será continua y formar la forma completa)
Si la ruta de separación no tiene bordes, el punto es el interior del polígono y debe ser ignorado; de lo contrario, elimine la ruta de separación del polígono. Reemplácelo con dos segmentos, conectando cada punto final de la ruta de separación al nuevo punto.
Ta-da! :)
Hola, Necesito implementar misma funcionalidad en mi solicitud. Por favor comparte algoritmo conmigo? –
Utilicé QuickHull. Referencia aquí: https://en.wikipedia.org/wiki/Quickhull –