"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quelle méthode est la plus efficace pour la détection ponctuelle en polygone: traçage des rayons ou path.contains_points de Matplotlib \?

Quelle méthode est la plus efficace pour la détection ponctuelle en polygone: traçage des rayons ou path.contains_points de Matplotlib \?

Publié le 2025-04-23
Parcourir:367

Which Method is More Efficient for Point-in-Polygon Detection: Ray Tracing or Matplotlib\'s path.contains_points?

détection efficace de ponctuel en polygone dans python

déterminer si un point se trouve dans un polygone est une tâche fréquente en géométrie de calcul. Trouver une méthode efficace pour cette tâche est avantageuse lors de l'évaluation d'un grand nombre de points. Ici, nous explorons et comparons deux méthodes couramment utilisées: le traçage des rayons et la fonction path.contains_points de Matplotlib. Il compte le nombre d'intersections et détermine si le point se trouve à l'intérieur du polygone en fonction de sa parité.

Matplotlib's Path.ConTains_points La fonction

Matplotlib's Path.Contains_point La fonction utilise un objet de trajet pour représenter le polygon. Il vérifie si le point donné se situe dans le chemin défini. Cette fonction est souvent plus rapide que l'approche de traçage des rayons, comme on le voit dans l'extrait de code fourni:

  à partir du temps d'importation de temps  matplotlib.path comme mpltpath  

polygon et points aléatoires

Polygon = [np.sin (x) 0.5, np. x dans np.linspace (0, 2 * np.pi, 100)]]
POINTS = np.random.rand (10000, 2)

Ray Traçage Time Elapsed Time

start_time = time ()

inside1 = [ray_traçage_method (Point [0], Point [1], Polongon) pour le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point dans le point de Points]

print ("Ray Tracing Elapsed Time:" str (time () - start_time)))

matplotlib contient_points Elapsed Time

start_time = time ()

path = mpltpath.path (polygon)
inside2 = path.contains_points (points)
print ("matplotlib contient_points Elapsed Time:" str (time () - start_time))

Pre>

Le code ci-dessus rapporte des temps d'exécution significative OPTIONS



En plus de ces méthodes, le package galbée spécialement conçu pour les opérations géométriques fournit des fonctions efficaces pour les vérifications ponctuelles en polygon.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3