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 mpltpathpolygon et points aléatoires
Polygon = [np.sin (x) 0.5, np. x dans np.linspace (0, 2 * np.pi, 100)]]
Ray Traçage Time Elapsed Time
POINTS = np.random.rand (10000, 2)
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)
Pre>
inside2 = path.contains_points (points)
print ("matplotlib contient_points Elapsed Time:" str (time () - start_time))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.
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