Cómo mejorar un algoritmo para pseudo triangular un polígono

He tenido que hacer variaciones de esto en el pasado, por lo que despierta muchos recuerdos de los años setenta y ochenta.

Ahora, usted dice “mejorar un algoritmo” pero no especifica qué algoritmo está utilizando o en qué idioma está trabajando. Por lo tanto, comenzaré desde cero.

He pegado un par de enlaces a continuación que se relacionan con hacer esto, no solo con un polígono, sino con cualquier colección de puntos / vértices. Pero no estoy seguro si quieres una solución tan complicada. Tal vez solo esté buscando el centro de gravedad (enlace a continuación).

Triangulación de Delaunay – Wikipedia

Diagrama de Voronoi – Wikipedia

Centro de masas – Wikipedia

O tal vez desee el punto interior más alejado de todos los vértices. Para obtener la última solución, hay varias formas. Uno se conoce como el algoritmo Saab, donde dibujas bisectrices para cada ángulo interior, incluso si ese ángulo es mayor de 180 grados. Si esas bisectrices se cruzan, deténgalas en esa intersección y dibuje una bisectriz de esas bisectrices. Para cualquier cadena cerrada (como un polígono), todas las bisectrices se encontrarán en un punto, el punto más alejado de todos los vértices. La matemática para esto se complica para algunos tipos de formas porque muchas de las bisectrices no serán líneas, sino parábolas u otras curvas. Eso no te afectará cuando uses solo un polígono. Aquí hay otra forma de hacer esto: encontrar un punto más alejado de $ k $ puntos en un polígono

O tal vez desee el punto interior más alejado de todos los lados. Este es el centro del círculo más grande que cabe en el polígono. La solución es iterativa y creo que es la única forma de hacerlo. Aquí hay una discusión al respecto en stackoverflow: círculo más grande dentro de un polígono no convexo

Buena suerte.

More Interesting

¿Cómo podemos transferir datos digitales binarios a un canal físico?

¿Qué estructura de datos usa internamente un objeto en los lenguajes OOP? ¿Qué algoritmo se usa para la búsqueda de propiedades en un objeto?

¿Cuál es el mejor algoritmo para un conjunto de datos con muchas características correlacionadas, débiles y ruidosas?

¿Cómo funciona la recursividad en el árbol de búsqueda binaria en orden? ¿Cómo se pueden explicar las llamadas recursivas, sin resumirlas como llamadas de pila?

¿Es mejor aprender primero los algoritmos y luego buscar problemas o simplemente elegir un problema aleatorio y luchar?

¿Qué algoritmo se usa en el juego Fifa 13?

Cómo hacer que los algoritmos sean eficientes

¿Es una mala idea usar Python para aprender algoritmos y programación competitiva?

Dada una cadena, ¿cuál es su subcadena más corta, la concatenación de una o más copias de sus resultados en la cadena original?

¿Podría haber un límite superior en la 'inteligencia' de una IA?

Dada una lista de palabras, ¿encuentra cuántas veces aparece cada palabra en los 20000 archivos dados?

¿Por qué la búsqueda de Breadth-first (y otros algoritmos relacionados) se consideran parte del campo de IA?

¿Qué es un algoritmo para generar todas las combinaciones posibles de un conjunto dado de letras (por ejemplo, 'a', 'b', 'c', 'd', 'e')?

¿Qué tan difícil sería para un novato la 'Introducción a los algoritmos' de Thomas H. Cormen?

Cómo hacer un robot que pueda resolver un laberinto de líneas