Estou procurando um algoritmo, uma solução de alto nível ou mesmo uma biblioteca que possa me ajudar a determinar se dois polígonos se cruzam, em Python.
Eu tenho os vértices dos dois polígonos (estes são polígonos de peça única, sem orifícios) em duas matrizes diferentes. Os polígonos são 2D (ou seja, apenas coordenadas X e Y)
Eu gostaria de criar uma função que retorne um valor booleano indicando se esses dois polígonos se cruzam.
Por favor, note que não posso usar arcpy
, ou qualquer arcgis
componente deste.
Você pode sugerir um algoritmo ou biblioteca para fazer isso?
fonte
Se você conhece ou está interessado em aprender R, existem alguns pacotes espaciais úteis. http://cran.r-project.org/web/views/Spatial.html Existe um módulo Python para interagir com o R (RPy *)
fonte
Sei que essa é uma pergunta antiga, mas escrevi uma biblioteca python para lidar com colisões entre polígonos côncavos e convexos, além de círculos.
É bem simples de usar, aqui está você!
Exemplo:
Você também pode gerar uma resposta, que inclui:
https://github.com/QwekoDev/collision
fonte
se você quiser saber o nível, você pode usar isso. Como argumento, você pode dar uma lista de polígonos. E como valor de retorno, você obtém uma lista de níveis. Na lista de níveis, existem os polígonos.
fonte