Den senkrechten Abstand zu einer Strecke kannst du im zweidimensionalen Raum über das Kreuzprodukt berechnen (s. Anhang).
[edit]
Sorry, habe wohl zu lange mit dreidimensionalen Vektoren hantiert... Das „Kreuzprodukt“ ist ja für den zweidimensionalen Raum nicht wirklich definiert. Was ich damit meinte ist:
Delphi-Quellcode:
function „Kreuzprodukt“ (A, B: TVec2): Single;
begin
Result := A.X*B.Y - A.Y*B.X;
end;
Es kommt, wie du siehst, auch kein Vektor heraus, sondern ein Skalar, aber mehr brauchen wir hier ja auch gar nicht

[/edit]
Btw, darf man fragen, was du programmierst? Deine Skizze erinnert mich nämlich extrem an den kleinen Sonic-Klon
(* nicht wirklich ein Klon, aber die Engine nachprogrammiert), den ich letztes Jahr geschrieben habe