Estoy buscando un algoritmo, una solución de alto nivel o incluso una biblioteca que pueda ayudarme a determinar si dos polígonos se cruzan, en Python.
Tengo los vértices de los dos polígonos (estos son polígonos de una sola parte sin agujeros) en dos matrices diferentes. Los polígonos son 2D (es decir, solo coordenadas X e Y)
Me gustaría hacer una función que devuelva un valor booleano que indique si estos dos polígonos se cruzan.
Tenga en cuenta que no puedo usar arcpy
ninguno de los arcgis
componentes de este.
¿Puedes sugerir un algoritmo o biblioteca para hacer esto?
fuente
Si conoce o está interesado en aprender R, tiene algunos paquetes espaciales útiles. http://cran.r-project.org/web/views/Spatial.html Hay un módulo de Python para interactuar con R (RPy *)
fuente
Sé que esta es una vieja pregunta, pero he escrito una biblioteca de Python para manejar colisiones entre polígonos cóncavos y convexos, así como círculos.
Es bastante simple de usar, ¡aquí tienes!
Ejemplo:
También puede hacer que genere una respuesta, que incluye:
https://github.com/QwekoDev/collision
fuente
si quieres saber el nivel puedes usar esto. Como argumento, puede dar una lista de polígonos. Y como valor de retorno obtienes una lista de niveles. En la lista de niveles están los polígonos.
fuente