Dites que j'ai un objet à côté de moi à mon bureau en ce moment, et un objet Java dans le programme sur lequel je travaille. Si je devais laisser tomber l'objet réel, il accélèrerait vers le bas à une vitesse de 9,81 m/s (sans tenir compte de la résistance au vent), donc la vitesse serait de 9,81 m/s/s et la position globale serait de (-) 9,81 m/s/s/s par rapport à l'endroit où il a commencé.Simuler la gravité
Maintenant, si je l'ai écrit un programme java avec mon objet java simulant ce que je ferais comme telle
public class HypotheticalObjectClass(){
double position = 0, velocity = 0;
tick(){
velocity += 9.81;
position += velocity;
}
}
Ce programme est précis aussi longtemps que je l'ai appeler tick() une fois par seconde, mais si ça s'appelle plusieurs fois par seconde la position monte en flèche à cause du calcul ou autre ... J'ai l'intention de faire cocher ce programme plusieurs fois par seconde, alors comment je corrigerais le calcul donné uniquement aux valeurs instantanées (vitesse, position, rotation, etc. ...) et, si ce n'est pas possible, quel système dois-je ajouter pour le rendre possible?
Désolé si cette question a déjà été adressée sur ce site, je n'ai aucune idée de comment je la trouverais, et je vous remercie pour votre aide.
J'ai un système pour chronométrer les appels ailleurs dans le programme, mais le problème actuel est beaucoup plus confus et difficile à voir. Si je devais le faire cochez 30 fois par seconde, la première fois cela ajouterait 1/30ème de 9.81m/s à la vélocité, puis ajouterait la vélocité à la position, ce qui est génial. Mais la deuxième fois que ça s'appelle ça ajoute 1/30ème de 9.81 à la vélocité, puis 2/30ème à la position, qui est alors déjà aux 3/30ème de 9.81, à la 8ème coche elle a déjà atteint la bonne position et continuera à dépasser radicalement. Il perd sa précision à cause de la rapidité avec laquelle la position s'accumule. – jotnova
L'intégration numérique n'est jamais précise à 100%. Lisez l'article donné si vous avez besoin de quelque chose de mieux. – Rames
Oh, désolé, j'ai complètement raté la dernière partie. – jotnova