Tengo una lista de vértices de polígonos simples, y me gustaría comprobar si un polígono está o no totalmente contenido en otro polígono de la lista.
¿Es suficiente con hacer algo como:
Dejemos que p0 sea el polígono candidato.
Dejemos que ri, lei, ui, li denotan el vértice más a la derecha, el más a la izquierda, el más arriba y el más abajo del iésimo polígono de la lista.
Para todos los polígonos de la lista, si algún polígono tiene:
- ri(x)≥r0(x) Y
- lei(x)≤le0(x) Y
- ui(y)≥u0(y) Y
- li(y)≤l0(y)
donde por ejemplo ri(x) denota el x -coordenada del vértice más a la derecha del i -de un polígono, entonces podemos concluir que p0 está totalmente contenida en pi .
¿Tiene esto sentido, y hay algún contraejemplo para el que este algoritmo no funcione?
0 votos
¿Por casualidad hay que hacer esto en código? ¿En qué lenguaje si es así? Porque es casi seguro que esto está implementado por alguna biblioteca.
0 votos
@jpmc26 lo estoy haciendo en python, pero me gustaría escribir el código desde cero
0 votos
Esto comprueba si el AABB mínimo de un polígono contiene completamente el AABB mínimo del otro.
0 votos
La respuesta "simple" a esto es a) comprobar si los polígonos se intersecan (en cuyo caso es falso) y luego, si no, b) comprobar si algún vértice de un polígono está dentro del otro polígono. Por supuesto, comprobar si los polígonos se cruzan es bastante difícil...