Comment puis-je trouver l'intersection de deux segments de ligne?
Supposons que nous avons deux finis les segments de droite définie par deux points (dans l'espace à deux). Je voudrais trouver un moyen d'obtenir le point d'intersection de ces deux lignes. Finalement, je voudrais prolonger ce travail sur les ensembles de segments connectés.
J'ai trouvé une bonne solution ici: Python - matplotlib: intersection de lineplots. Toutefois, cela repose sur la scipy, qui, je crois, nécessite BLAS, qui, pour des raisons distinctes, je voudrais éviter.
matplotlib a un module appelé Chemin, qui a un intersects_path() fonction (http://matplotlib.org/api/path_api.html#matplotlib.path.Path.intersects_path) qui retourne true ou false pour l'existence d'une intersection, mais pas l'emplacement précis, que j'exige.
Personne ne sait d'une propre approche?
Toute solution je suis venue, c'est long, et si une solution existe déjà, je préférerais vraiment de ne pas ré-inventer la roue.
Merci!
slope
et y-intercept
de chaque segment de ligne. 2) Résoudre l'intersection une fois que vous savez l'équation de chaque ligne 3) Vérifier que cette intersection se trouve le long de deux lignes (et non à l'extérieur du segment)Comme les Cyber dit cela devrait être assez trivial. Prendre un coup d'oeil ici et de voir si vous comprenez stackoverflow.com/questions/4543506/...
galbées pouvez le faire très rapidement, pypi.python.org/pypi/Shapely
Shapely est exactement la roue, je n'ai pas envie de réinventer. Grand paquet. Merci!
OriginalL'auteur Sergiy | 2014-03-15
Vous devez vous connecter pour publier un commentaire.
Pour le bien de la fin, je pensais que j'allais poster la dernière solution que j'ai utilisé.
À l'aide de Galbées ( https://pypi.python.org/pypi/Shapely ), le code peut regarder aussi simple que cela:
Retourne:
La bonne chose à ce sujet est qu'il va traiter seul point d'intersection, et l'intersection des segments de façon transparente, et la même technique peut être appliquée à beaucoup plus compliqué objets.
OriginalL'auteur Sergiy