Yop,
je cherche à modéliser en C avec SDL et OpenGL, la chute libre d'un corps soumis à son poids P = m.g et la résistance de l'air F = - k.v, car je suis tombé sur ce genre de problème en physique (je suis en TS).
Donc mon raisonnement physique est le suivant,
∑F = m.a (2ème loi de Newton)
<=>
mg - kv = ma <=>
g - kv/m = a
Du coup j'obtiens une équation différentielle sur v :
dv/dt = g - kv/m
Je sais à peu près résoudre cette équation différentielle du premier ordre, mais puisque je souhaite faire une simulation numérique je préfère autant m'en passer théoriquement donc je me dis dv/dt représente la variation infime de v dans un intervalle de temps dt, d'où je tire (je crois que ça s'appelle une différentielle)
J'ai dv = (dv/dt) * dt et numériquement je tire ça :
∆v = g∆t - k*∆t*v/m
Et du coup si je prends un axe, on va dire que l'objet chute verticalement, j'ai :
d²y/dt = a, dy/dt = v
d'où
∆v = g*∆t - k*∆t*v/m
∆y = v*∆t
Du coup en c ça donne :
v += g*dt -k*v*dt/m;
y += v*dt;
Le problème est le suivant, première je n'ai aucune idée de l'échelle à laquelle je représente mes données, car en OpenGL j'ai des axes sur [-1,1] en X et Y, et la simulation donne des résultats qui ont l'air réalistes (vitesse et position) mais aucune idée des échelles de temps et d'espace.
Ensuite est-ce que mon raisonnement est à peu près correct ?
Merci, 