CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Phys] Simulation chute newtonienne

Pseudo supprimé
Pseudo supprimé 31 mars 2014 à 22:07:09

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, :noel:

katk
katk
Niveau 10
01 avril 2014 à 23:34:44

Oui vdd

saleGauss
saleGauss
Niveau 9
02 avril 2014 à 06:30:47

Au niveau de ta modélisation, je ne vois pas d'erreur. Je n'a pas vérifié chaque ligne, mais partir de la seconde loi de Newton est bon pour tirer l'équa diff du mouvement est bon.
Concernant la manière d'approcher numériquement la solution, ça dépendra aussi des forces que tu voudras ajouter par la suite (frottement, etc), mais pour l'instant ça semble raisonnable.

Concernant ton problème d’échelle, je ne vois pas d'autre solution que d’expérimenter. Ce sont des choses qui sont affichées sur un écran, du coup, je ne vois pas de moyen direct de voir une correspondance avec notre monde réel.
Vois ce qui te semble réaliste au niveau des échelles :).

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment