Der nähest gelegene Punkt auf einer Geraden.

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Error042
User
Beiträge: 1
Registriert: Donnerstag 25. März 2021, 12:57

Moin,

ich bin gerade dabei auszurechnen wann der Abstand zu einem Laufweg am geringsten war. Also ich habe eine CSV Datei mit Koordinaten diese ist wie folgt aufgebaut:

Number,X,Y
1,12.3...,51.4...
2,12.3...,51.4...
etc.

Dann habe ich einen Punkt gegeben mit einem X und Y Wert.
Nun habe ich erstmal erfolgreich berechnet, welcher der Punkte aus der CSV Datei den geringsten Abstand zu dem gegeben Punkt hat.
Jetzt stehe ich aber vor einer Herausforderung, wo ich leider nicht weiter weiß. Wie nah bin ich dem Punkt gekommen, wenn ich nicht nur die gemessenen Punkte berücksichtige, sondern auch annehme, dass ich mich geradlinig zwischen den einzelnen Punkten bewegt habe? Nun will ich dort herausfinden welche X und Y Werte der gesuchte Punkt Z hat und wie weit dieser davon entfernt ist, kann ich dann ja selber wieder ausrechnen.
Ich hoffe dies war nicht zu aufwendig erklärt. :)

Hier noch eine Skizze die ich schnell erstellt habe, falls dies hilft.
Bild
Benutzeravatar
Dennis89
User
Beiträge: 1121
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

für das Verständnis: Du hast abgesehen von A-I noch den Punk X gegeben? Dann hast du, wie in deinem Beispiel skizziert, berechnet dass der Punk X am nächsten zu Punk F liegt?
Wie hängt jetzt die Strecke zu Punkt Z mit X zusammen?

Berechnest du die zwei Punkte die am nächsten zu X liegen und suchst du dann auf der Strecke FG den Punkt an senkrecht eine weitere Strecke den Punk X schneidet?

Wenn du einen Schnittpunkt zweier Geraden suchst, dann stellst du die Gleichungen auf, setzt beide Gleichungen gleich und löst nach der verbleibenden Variablen auf. Diese setzt du dann in eine der beiden Funktionen ein und du hast die Koordinaten deines Schnittpunkts.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 12984
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Error042: Du müsstest für jedes Segment schauen ob/wo der Senkrecht zu X liegende Punkt ist, und welches Segment den am nächsten liegenden Punkt hat. Achtung: An diesem Segment muss der am nächsten liegende Wegpunkt *nicht* beteiligt sein! Deswegen muss man alle Segmente prüfen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten