Ho provato le tipiche equazioni fisiche per questo, ma nessuno di loro funziona davvero perché le equazioni si occupano di un'accelerazione costante e il mio dovrà cambiare per funzionare correttamente. Fondamentalmente ho una macchina che può andare a una vasta gamma di velocità e ha bisogno di rallentare e fermarsi su una determinata distanza e tempo mentre raggiunge la fine del suo percorso.Come calcolare la decelerazione necessaria per raggiungere una certa velocità su una certa distanza?
Così, ho:
V0
, o la velocità corrente
Vf
, o la velocità voglio raggiungere (in genere 0)
t
, o la quantità di tempo che voglio prendere per raggiungere la fine del il mio percorso
d
, o la distanza che voglio andare come cambio da V0 a Vf
voglio calcolare
a
, o l'accelerazione necessaria per andare da V0 a Vf
Il motivo per cui questa domanda diventa specifica della programmazione è che lo a
deve essere ricalcolato ogni singolo timestep mentre la macchina continua a fermarsi. Quindi, V0
viene modificato costantemente per essere V0
dall'ultimo timestep plus
il a
che è stato calcolato all'ultimo timestep. Quindi in sostanza inizierà a fermarsi lentamente, poi alla fine si fermerà più bruscamente, un po 'come una macchina nella vita reale.
MODIFICHE:
Va bene, grazie per le grandi risposte. Un sacco di ciò di cui avevo bisogno era solo un po 'di aiuto a pensarci. Vorrei essere più specifico ora che ho qualche idea in più da tutti voi:
Ho una macchina c
che è 64 pixels
dalla sua destinazione, quindi d=64
. Sta guidando allo 2 pixels per timestep
, dove uno timestep is 1/60 of a second
. Voglio trovare l'accelerazione a
che lo porterà alla velocità di 0.2 pixels per timestep
quando ha viaggiato d
.
d = 64 //distance
V0 = 2 //initial velocity (in ppt)
Vf = 0.2 //final velocity (in ppt)
Anche perché questo avviene in un ciclo di gioco, una variabile delta
viene passato attraverso ogni azione, che è il multiple of 1/60s that the last timestep took
. In altre parole, se ci sono voluti 1/60s, quindi delta
è 1.0, se ci sono voluti 1/30s, quindi delta
è 0,5. Prima che l'accelerazione venga effettivamente applicata, viene moltiplicata per questo valore delta. Allo stesso modo, prima che l'auto si muova di nuovo, la sua velocità viene moltiplicata per il valore delta. Questo è roba abbastanza standard, ma potrebbe essere ciò che sta causando problemi con i miei calcoli.
Scusa, penso che la tua comprensione della fisica sia confusa. F = ma ti dice che un'accelerazione mutante ha a che fare con una forza che cambia. Una macchina non si ferma "più bruscamente" nella vita reale a meno che non si aumenti la forza frenante premendo più a fondo il pedale. – duffymo
@duffymo: tecnicamente, ti senti quel cretino alla fine della decelerazione quando le cose vanno dal lento all'arresto, mentre l'attrito dinamico cede il passo all'attrito statico; l'attrito statico è maggiore dell'attrito dinamico. –
... Ma se vuoi ottenere questo dettaglio, dovrai modellare la trasmissione e l'elasticità tra strada e pneumatici e tra pneumatici e telaio. –