Wie finde ich den Schnittpunkt von zwei Liniensegmenten?

Angenommen, wir haben zwei finite-line-Segmente definiert, die jeweils durch zwei Punkte (zwei-Raum). Ich möchte einen Weg finden, wie man den Schnittpunkt dieser beiden Linien. Schließlich habe ich mich erweitern möchte, um diese Arbeit auf eine Gruppe von verbundenen Liniensegmenten.

Habe ich eine gute Lösung gefunden hier: Python - matplotlib: finden Sie Schnittpunkt von lineplots. Jedoch, diese stützt sich auf die scipy, die ich glauben, verlangt BLAS, die für die getrennte Gründe, die ich gerne vermeiden möchte.

matplotlib hat ein Modul namens Pfad, der hat ein intersects_path () - Funktion ( http://matplotlib.org/api/path_api.html#matplotlib.path.Path.intersects_path ), die true oder false zurückgibt, die für die Existenz einer Kreuzung, aber nicht die spezifische Position, die ich brauche.

Kennt jemand einen sauberen Ansatz zu diesem?

Jede Lösung, die ich kommen mit ist langwierig, und wenn eine Lösung bereits vorhanden ist, würde ich wirklich lieber nicht, das Rad neu zu erfinden.

Dank!

  • Das sollte trivial sein, nicht? 1) Mit den Endpunkten, lösen Sie für die slope und y-intercept jeder Zeile segment. 2) Lösen Sie für den Schnittpunkt sobald Sie wissen, die Gleichung, die jeder Zeile 3) Prüfen Sie, ob dieser Schnittpunkt liegt auf beiden Linien (und nicht außerhalb des Segments)
  • Wie Cyber sagte, dies sollte ziemlich trivial. Schauen Sie hier und sehen Sie, wenn Sie verstehen stackoverflow.com/questions/4543506/...
  • formschöne können, tun dies sehr schnell, pypi.python.org/pypi/Shapely
  • Formschöne ist genau das Rad wollte ich nicht neu erfinden. Tolles Paket. Danke!
InformationsquelleAutor Sergiy | 2014-03-15
Schreibe einen Kommentar