Hallo
Eine Grund-Idee wäre, eine Klothoide (A, R) zu nehmen und dann die y-Werte durch einen Faktor f anzupassen an die Y-Koordinate des Endpunktes YE. Das heisst also XLL = f * XL, YLL = f * YL. Dadurch wird eine direkte Verkleinerung/Vergrößerung der Klothoide vorgenommen, die Steigung bleibt erhalten, die Klothoide zeigt weiterhin eine lineare Vergroesserung der Krümmung mit zunehmender Länge.
Eine Idee ist es, den Wert für die Länge der Klothoide im Endpunkt XE,YE in Abhängigkeit von R des Kreis-Radius zu berechnen: L(XE) = A^2/R => l = L / A / ((pi)^{1/2})
=> Y(L(XE)) = A * (pi)^{1/2} * ∫ ( 0, L/A/(pi)^1/2 ) sin (1/2 (L/A)^2) d l
Dann ergibt sich der Faktor f zu f = YE / Y(L(XE))
Im 2. Schritt wird dann die X-Koordinate des Ursprungs der Klothoide durch Abziehen ermittelt. Alle Koordinaten der Klothoide XK können in Abhängigkeit von L wie folgt in die Zielkoordinaten XLL, YLL transformiert werden:
YLL = f * Y(L) XLL(L) = XE +f * XK(L) -f * X(L(XE))
=> X(L(XE)) = A * (pi)^{1/2} * ∫ ( 0, L/A/(pi)^1/2 ) cos (1/2 (L/A)^2) d l
Bei Wikipedia findet man unter "Klothoide" reichlich Information zur Mathematik der Klothoide.
Eine Umsetzung von zusätzlichen Versetzungs- und Drehungs-Arbeiten (Stützpunkt im 1. Quadranten; Gerade hat Steigung) kann ebenfalls berücksichtigt werden:
1) Versetzen Stützpunkt zum Koordinaten-Ursprung X' = X -Sx Y' = Y -Sy
2) Drehen von Gerade und Kreis um den Ursprung im Uhrzeigersinn. Gerade hat die Steigung tan phi = Vy/Vx
X'' = X' * cos phi +Y' * sin phi
Y'' = - X' * sin phi + Y' * cos phi
Das ist so, weil mit der Rotation gilt
cos(X +phi) = cosx*cosphi -sinx*sinphi
sin(X +phi) = sinx*cosphi +cosx*sinphi
3) Klothoiden-Koordinaten berechnen
YLL = f * YL XLL(L) = XE +f * XK(L) -f * X(L(XE))
für L = 0 ergibt sich der Ursprung der Klothoide XLL(0) = XE -f * X(L(XE))
4) Drehen von Gerade und Kreis und Klothoide um den Ursprung im Gegen-Uhrzeigersinn (= positiver Drehsinn)
XLL' = XLL * cos phi -YLL * sin phi
YLL' = XLL * sin phi + YLL * cos phi
5) Versetzen von Gerade, Kreis, Klothoide und Stützpunkt in den 1. Quadranten
XLL'' = XLL' + Sx
YLL'' = YLL' + Sy
DIe Mathematik von Versetzungen (Translation), Drehungen (Rotation) sowie Maßstabsanpassungen
(Skalierung) findet man in Newman/Sproull Grundzüge der interaktiven Computergrafik.
6) Ausschnitt von PB bis PE aus der Klothoide wählen