DE talk:ÖPNV Editor

From OpenStreetMap Wiki
Jump to: navigation, search

Abstand Haltestelle/Straße

Also das abstandsproblem ist eher ein mathematisches als ein grafisches:

Man hat im zweidimensionalen 3 Punkte gegeben:

Punkt Wert Bedeutung
A (x_A,y_A) Anfang Benachbarter Straßenabschnitt
B (x_B,y_B) Ende Benachbarter Straßenabschnitt
H (x_H,y_H) Haltestelle

Gesucht ist der Punkt P(x_P,y_P).

Zunächst muss man die zu A und B gehörende Geradengleichung der Form:

y = m*x + b

bestimmen.

m = (y_B-y_A) / (x_A-x_B) \* sollte entweder (y_B-y_A) oder (x_A-x_B) = 0 sein muss vorher abgebrochen werden, (der Punkt ergibt sich dann als P = ((x_A + x_B)/2 , (y_A + y_B)/2))*\

anschließend einen Punkt in die Geradengleichung einsetzen und damit b bestimmen.

b = y_A - m*x_A

Jetzt wird eine zweite Geradengleichung bestimmt, die den Punkt H enthält und die erste senkrecht schneidet.

y = n*x + c

Zur Bestimmung von n wird m in einen Winkel alpha umgerechnet und hierzu 90° addiert.

alpha = arctan(m)
n = tan(alpha + 90°) \*beim programmieren darauf achten das Grad und nicht Bogenmaß verwendet wird*\

Bestimmung von c analog zur Bestimmung von b

c = y_H - n*x_H

Anschließend setzt man die Beiden Gleichungen gleich

x_P*m + b = x_P*n + c
<=> x_P = (c-b) / (m-n)

Diesen wert in eine der beiden Geradengleichungen eingesetzt liefert den Wert von y_P.

Hoffe das hilft --C0jack 17:16, 1 September 2010 (BST)