determinar se um ponto está dentro de um polígono é uma tarefa frequente na geometria computacional. Encontrar um método eficiente para esta tarefa é vantajoso ao avaliar um grande número de pontos. Aqui, exploramos e comparamos dois métodos comumente usados: rastreamento de raios e path.contains_points function. O ponto em exame com as laterais do polígono. Ele conta o número de interseções e determina se o ponto está dentro do polígono com base em sua paridade. Objeto de caminho para representar o polígono. Ele verifica se o ponto fornecido está dentro do caminho definido. Essa função é frequentemente mais rápida que a abordagem de rastreamento de raios, como visto no snippet de código fornecido:
do tempo importar tempo importar matplotlib.path como mpltpathPolygon e Random Points
poligon = [[np.sin (x) 0,5, np.cos (x) 0,5] para x em np.linspace (0, 2*np.pi, 100)] pontos = np.random.rand (10000, 2)
rating rastred time timestart_time = time ()
dentro1 = [ray_tracing_method (ponto [0], ponto [1 ], Polygon) para pontos em pontos]
matplotlib )
print ("RAY Rasting Rastreou Time:" str (time () - start_time))
path = mpltpath.path (polygon)
insent2 = path.contains_points (pontos)print ("matplotlib >
O código acima relata tempos de execução significativamente mais rápidos para a abordagem de Matplotlib em comparação com o Ray Tracing.
Outras opções
Além desses métodos, o O pacote bem torneado projetado especificamente para operações geométricas fornece funções eficientes para verificações de ponto em poligon.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3