Ok, então considere que temos um veículo como o que descrevi na minha resposta a esta pergunta , com uma posição 2D, velocidade, velocidade angular e arrasto / fricção. Ele pode acelerar e quebrar em uma quantidade variável, mas não parar instantaneamente ou atingir a velocidade máxima instantaneamente. Como posso fazer com que ele se mova para um ponto específico e pare - no menor tempo possível - sem ultrapassar ou oscilar?
Eu estava pensando em algo como:
- vire para a posição alvo.
- acelerar
- olhe 1 marca à frente, perguntando "Se eu aplicasse os intervalos na próxima marca, ultrapassaria o alvo?"
- Se exceder, aplique as quebras agora de alguma forma.
Tenho certeza de que este é um problema resolvido e provavelmente existe um método melhor do que o que descrevi.
Usando o cálculo, se você souber sua velocidade e taxa de desaceleração máxima, poderá saber sua distância mínima de parada. Com isso em mente, você pode saber exatamente quando precisa aplicar os freios (deixando de lado os erros de arredondamento / quantização) para parar em um determinado ponto.
Agora, espero que alguém melhor em matemática do que eu publique a fórmula real ...
fonte
finalPositionDelta = -0.5 * sqr(currentSpeed) / maximumDeceleration
No entanto, isso pressupõe que sua desaceleração é constante, o que, dependendo da profundidade da sua simulação, pode não ser o caso. Eu iria com a solução de Ranieri. (whoops Desculpe é de desaceleração DIV, não mul)É um problema de controle. Você precisa variar suas entradas proporcionalmente a algum tipo de medida de "erro", como a distância do alvo. Veja também as respostas para esta pergunta.
Rastreamento de alvo: quando acelerar e desacelerar uma torre rotativa?
fonte
Às vezes, no desenvolvimento de jogos, você precisa usar atalhos. O atalho aqui é chamado de impulso, que, fisicamente, é uma força muito grande aplicada em um tempo muito curto. Em vez de integrá-lo ao longo do tempo, basta aplicá-lo ao parâmetro como uma mudança direta: defina a velocidade como 0.
A questão é: você deseja usar o atalho ou não?
fonte