DE talk:ÖPNV Editor
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)