Как рассчитать замедление, необходимое для достижения определенной скорости на определенном расстоянии?
Я попробовал типичные физические уравнения для этого, но ни одно из них на самом деле не работает, потому что уравнения имеют дело с постоянным ускорением, и мои должны будут измениться, чтобы работать правильно. По сути, у меня есть машина, которая может двигаться с большим диапазоном скоростей и должна замедляться и останавливаться на определенном расстоянии и времени, когда она достигает конца своего пути.
Так что я:
V0
или текущая скорость
Vf
или скорость, которую я хочу достичь (обычно 0)
t
или количество времени, которое я хочу потратить, чтобы достичь конца моего пути
d
или расстояние, которое я хочу пройти при изменении от V0 до Vf
Я хочу посчитать
a
или ускорение, необходимое для перехода от V0 к Vf
Причина, по которой это становится вопросом программирования, заключается в том, чтоa
необходимо пересчитывать каждый шаг, так как машина останавливается. Так,V0
постоянно меняется, чтобы бытьV0
с последнего временного шагаplus
a
это было рассчитано в последний раз. По сути, он начнет медленно останавливаться, а затем остановится более резко, как машина в реальной жизни.
редактирует:
Хорошо, спасибо за отличные ответы. Многое из того, что мне было нужно, было просто помочь подумать об этом. Позвольте мне быть более конкретным сейчас, когда у меня есть еще несколько идей от всех вас:
у меня есть машинаc
то есть64 pixels
от места назначения, такd=64
, Это вождение в2 pixels per timestep
, гдеtimestep is 1/60 of a second
, Я хочу найти ускорениеa
это приведет к скорости0.2 pixels per timestep
к тому времени, как он путешествовалd
.
d = 64 //distance
V0 = 2 //initial velocity (in ppt)
Vf = 0.2 //final velocity (in ppt)
Кроме того, потому что это происходит в игровом цикле, переменнаяdelta
передается каждому действию, которое являетсяmultiple of 1/60s that the last timestep took
, Другими словами, если это заняло 1/60, тоdelta
1,0, если это заняло 1/30 с, тоdelta
0,5. До фактического применения ускорения оно умножается на это значение дельты. Точно так же, прежде чем автомобиль снова начнет движение, его скорость умножается на значение дельты. Это довольно стандартная вещь, но это может быть причиной моих расчетов.