Calculer la position d'une accélération du corps après un certain temps
Comment puis-je calculer la position d'une accélération de l'organisme (par exemple, une voiture) après un certain temps (par exemple 1 seconde)?
Pour un corps en mouvement qu'il accélère pas, c'est une relation linéaire, donc je suppose que pour une accélération du corps, il implique une place quelque part.
Des idées?
- Cette question semble être hors-sujet parce que c'est à propos des Maths, pas de programmation.
Vous devez vous connecter pour publier un commentaire.
L'équation est: s = ut + (1/2)une t^2
où s est la position, u est la vitesse à t=0, t est le temps et a est une constante accélération.
Par exemple, si une voiture commence stationnaire, et accélère pendant deux secondes, avec une accélération de 3m/s^2, il se déplace (1/2) * 3 * 2^2 = 6m
Cette équation provient de l'intégration de analytiquement les équations indiquant que la vitesse est le taux de variation de la position et de l'accélération est le taux de variation de la vitesse.
Habituellement dans un jeu de programmation de la situation, on utilise une formulation légèrement différente: pour chaque image, les variables de vitesse et de position sont intégrés pas de manière analytique, mais numériquement:
où dt est la durée d'un cadre (mesurée à l'aide d'un chronomètre: 1/60e de seconde ou plus). Cette méthode a l'avantage de l'accélération peuvent varier dans le temps.
Modifier Un couple de personnes qui ont noté que la droite d'Euler de la méthode d'intégration numérique (comme illustré ici), mais le plus simple de démontrer avec la, a assez mauvaise précision. Voir Velocity Verlet (souvent utilisés dans les jeux), et 4e ordre de Runge-Kutta ("standard" de la méthode pour des applications scientifiques) pour l'amélioration des algorithmes.
s += vt + (at^2)/2
vous l'avez mentionné dans votre première ligne. De même pour la Vitesse, qui est aussi le même que d'Euler.Eh bien, cela dépend de si oui ou non l'accélération est constante. Si c'est c'est tout simplement
Si a n'est pas constante, vous devez numérique intégré. Maintenant, il ya une variété de méthodes et aucun d'eux va la battre, faire cela à la main pour plus de précision, car ils sont tous en fin de compte approximatif des solutions.
La méthode la plus simple et la moins précise, est La méthode d'Euler . Ici vous diviser le temps en petits morceaux discrets appelle pas de temps, et d'effectuer
n
est index,t
est de la taille d'un pas de temps. La Position est également mis à jour. Ce n'est vraiment bon pour les cas où la précision n'est pas importante. Une version spéciale d'Euler la méthode donnera une solution exacte pour un projectile de mouvement (voir wiki), alors que cette méthode est brut, il peut être idéal pour certains suituations.Le plus commun de l'intégration numérique de la méthode utilisée dans les jeux et dans certaines simulations de chimie est Velocity Verlet, qui est une forme spéciale de la plus générique méthode de Verlet. Je vous le recommande si Euler est trop brut.
v[n] = v[n-1] + t * a[t]
. Let*a[t]
composant est ajouté précédent vitesse, pas multiplié.Vous pouvez google. J'ai trouvé ceci: http://www.ugrad.math.ubc.ca/coursedoc/math101/notes/applications/velocity.html
Mais si vous ne voulez pas lire, c'est:
où
En supposant que vous avez affaire avec une accélération constante, la formule est:
distance = (initial_velocity * temps) + (accélération * heure * heure) /2
où
distance est la distance parcourue
initial_velocity est la vitesse initiale (zéro si le corps est d'abord au repos, de sorte que vous pouvez déposer ce terme dans ce cas)
temps est le temps
accélération est l' (constante) accélération
Assurez-vous d'utiliser le bon unités de calcul, c'est à dire le mètre, la seconde et ainsi de suite.
Un très bon livre sur le sujet est La physique pour les Développeurs de jeux.
En supposant que la constante de l'accélération et de la vitesse initiale v0,