Jak obliczyć opóźnienie potrzebne do osiągnięcia określonej prędkości w określonej odległości?

Wypróbowałem w tym celu typowe równania fizyki, ale żaden z nich naprawdę nie działa, ponieważ równania radzą sobie ze stałym przyspieszeniem, a moje będą musiały zmienić się, aby działać poprawnie. Zasadniczo mam samochód, który może jeździć z dużym zakresem prędkości i musi zwolnić i zatrzymać się w danej odległości i czasie, gdy osiągnie koniec swojej ścieżki.

Więc mam:
V0lub bieżąca prędkość
Vflub prędkość, którą chcę osiągnąć (zazwyczaj 0)
tlub ilość czasu, którą chcę poświęcić, aby dotrzeć do końca mojej ścieżki
dlub odległość, którą chcę pokonać, zmieniając V0 na Vf

Chcę obliczyć
alub przyspieszenie potrzebne do przejścia z V0 do Vf

Powodem tego staje się pytanie specyficzne dla programowania, ponieważa musi zostać ponownie obliczony za każdym razem, gdy samochód zatrzymuje się. Więc,V0 ciągle się zmieniaV0 od ostatniego znacznika czasuplus a to zostało obliczone w ostatnim czasie. Zasadniczo zacznie się powoli zatrzymywać, po czym w końcu zatrzyma się nagle, trochę jak samochód w prawdziwym życiu.

EDYTOWANIE:
W porządku, dziękuję za wspaniałe odpowiedzi. Wiele z tego, czego potrzebowałem, to tylko pomoc w tym zakresie. Pozwól, że będę bardziej szczegółowy teraz, gdy mam więcej pomysłów od wszystkich:

mam samochódc to jest64 pixels od miejsca przeznaczenia, takd=64. On jedzie na2 pixels per timestep, gdzietimestep is 1/60 of a second. Chcę znaleźć przyspieszeniea to doprowadzi ją do prędkości0.2 pixels per timestep do czasu podróżyd.
d = 64 //distance
V0 = 2 //initial velocity (in ppt)
Vf = 0.2 //final velocity (in ppt)

Również dlatego, że dzieje się to w pętli gry, zmiennadelta jest przekazywane do każdej akcji, która jestmultiple of 1/60s that the last timestep took. Innymi słowy, jeśli zajęło to 1 / 60sdelta wynosi 1.0, jeśli zajęło to 1 / 30sdelta wynosi 0,5. Zanim przyspieszenie zostanie faktycznie zastosowane, jest mnożone przez tę wartość delta. Podobnie, zanim samochód ruszy ponownie, jego prędkość jest mnożona przez wartość delta. To dość standardowe rzeczy, ale może to być przyczyną problemów z moimi obliczeniami.

questionAnswers(6)

yourAnswerToTheQuestion