Hi!
Ich habe gerade kein LV hier zur Verfügung, aber einen Fehler konnte ich direkt feststellen: Du wirst niemals in 20,5 Sekunden von 165 auf 85 km/h reduzieren, da du einen Rechenfehler machst...
Ich hab jetzt mal die Einheiten weggelassen, da die für die Steigung unerheblich sind.
dy = 165 - 85 = 80
dx = 23 - 2,5 = 20,5
Steigung m = dy/dx = 80 / 20,5 = 3,9
Da du mit Millisekunden rechnest, änderst du die Skalierung an x.
-> m = 80 / 20500 = 0,0039
Die Formel einer Gerade lautet ja bekanntlich: y(x) = m*x + C
Daher ist C = y(x)-m*x = 165 - 0,0039 * 2500 = 155,2439
Also lautet deine Formel: y(x) = 0,0039 * x + 155,2439 {für x >= 2500 ms}
Nachdem du m und C zur Laufzeit berechnest, solltest du lediglich diese Werte und dein x_start = 2500ms an die While-Schleife übergeben und entsprechend die Punkte der Geraden berechnen.
Als Zähler für x kannst du dann das i der Schleife nehmen und mit x_start addieren. Du kannst über die manipulation vom i auch somit deine Auflösung der Geraden (Anzahl Stützpunkte) verändern, aber das findest du bei bedarf schon alleine heraus....
Ich hoffe, auch ohne LV geholfen zu haben.
Edit: Man kann es natürlich auch einfach machen, wie von Lucki vorgeschlagen. Allerdings finde ich, man sollte sowas mindestens einmal "zu Fuß" gemacht haben, damit man auch verstanden hat, was da im Hintergrund abläuft.