Como calcular a desaceleração necessária para atingir uma determinada velocidade a uma certa distância?
Eu tentei as equações físicas típicas para isso, mas nenhuma delas realmente funciona porque as equações lidam com aceleração constante e as minhas precisarão mudar para funcionar corretamente. Basicamente, eu tenho um carro que pode estar indo em uma grande variedade de velocidades e precisa diminuir a velocidade e parar em uma determinada distância e tempo, uma vez que atinge o final de seu caminho.
Então eu tenho:V0
ou a velocidade atualVf
ou a velocidade que desejo atingir (normalmente 0)t
, ou a quantidade de tempo que eu quero levar para chegar ao fim do meu caminhod
, ou a distância que eu quero ir quando eu mudar de V0 para Vf
Eu quero calculara
, ou a aceleração necessária para ir de V0 para Vf
A razão pela qual isso se torna uma questão específica de programação é porquea
precisa ser recalculado a cada intervalo de tempo enquanto o carro continua parando. Assim,V0
constantemente é alterado para serV0
do último momentoplus
aa
que foi calculado por último timestep. Então, essencialmente, ele vai começar a parar devagar, então acabará por parar mais abruptamente, como um carro na vida real.
EDITES:
Tudo bem, obrigado pelas ótimas respostas. Muito do que eu precisava era de alguma ajuda pensando nisso. Deixe-me ser mais específico agora que tenho mais algumas ideias de todos vocês:
Eu tenho carroc
isso é64 pixels
do seu destino, entãod=64
. Ele está dirigindo2 pixels per timestep
, onde umtimestep is 1/60 of a second
. Eu quero encontrar a aceleraçãoa
que vai trazê-lo para uma velocidade de0.2 pixels per timestep
no momento em que viajoud
.d = 64 //distance
V0 = 2 //initial velocity (in ppt)
Vf = 0.2 //final velocity (in ppt)
Também porque isso acontece em um loop de jogo, uma variáveldelta
é passado para cada ação, que é omultiple of 1/60s that the last timestep took
. Em outras palavras, se levou 1 / 60s, entãodelta
é 1.0, se levou 1 / 30s, entãodelta
é 0,5. Antes que a aceleração seja realmente aplicada, ela é multiplicada por esse valor delta. Da mesma forma, antes que o carro se mova novamente, sua velocidade é multiplicada pelo valor delta. Isso é bastante normal, mas pode ser o que está causando problemas com meus cálculos.