Ich habe dein Anliegen nicht ganz verstanden.
Willst du von allen Orten, die in der Nähe (Distanz <= maximale Distanz [=Fangradius]) deiner Strecke ist, den nahesten Wegpunkt auf deiner Strecke bestimmen?
Falls ja, dann sollte das ganz einfach sein
Code:
- Iteriere über alle Wegpunkte (aktueller Wegpunkt = i)
-- erstelle eine Liste aller Orte, die in der Nähe (Nähe = Distanz <= Fangradius) vom Wegpunkt i sind (Liste = l)
-- iteriere alle Orte in der Liste l und update die Distanz, sofern die neue Distanz (vom aktuellen Wegpunkt i zu diesem Ort) kleiner ist
Dein Algorithmus hätte genau hier den Fehler
Zitat:
Bestimme den Abstand a. Liegt der Ort/Punkt beim nächsten Wegpunkt näher als beim vorherigen, dann ändere der Abstand kein neues hinzufügen
Das ist logisch nicht ganz korrekt!
Hier berücksichtigst du nur benachbarte Wegpunkte (nächster Wegpunkt). Es sollte aber global gültig sein (alle Wegpunkte)!