Tir balistique

Tendez l'élastique, visez, renversez les cibles. Chaque grandeur affichée sort des mêmes équations que le moteur.

Niveau 1Premier tir
Tirs restants
Score0
Record0

Glissez n'importe où dans la scène pour tendre l'élastique, puis relâchez. Au clavier : ← → angle, ↑ ↓ tension, Entrée.

Projectile
Lancement
En vol
Impacts
Modèle physique et approximations

Échelle et unités

1 m est représenté par 40 px ; la scène mesure 35 m × 17,5 m. Le temps avance par pas fixes Δt = 1/60 s, indépendamment de la fréquence d'affichage de l'écran (le ralenti réduit seulement le nombre de pas calculés par seconde réelle). Le monde est plan : chaque objet est un prisme d'épaisseur e = 0,2 m, de masse m = ρ·A·e, où A est l'aire de sa section et ρ sa masse volumique.

Lancement

L'élastique est un ressort idéal (loi de Hooke) de raideur k = 10 000 N/m, tendu d'un allongement x ≤ 3 m. La conservation de l'énergie donne :

½ k x² = ½ m v₀²  ⇒  v₀ = x √(k/m)

Hypothèses : élastique sans masse, travail du poids pendant la détente négligé, projectile libéré au point d'ancrage O (marqué d'une croix, à 3 m du sol). Les deux projectiles sont en pierre (ρ = 2 500 kg/m³) ; le lourd a un rayon de 0,50 m contre 0,35 m, soit une masse (0,50/0,35)² ≈ 2,04 fois plus grande. À allongement égal, il part donc √2,04 ≈ 1,43 fois moins vite, avec la même énergie cinétique mais une quantité de mouvement p = √(2mE) 1,43 fois plus grande.

Vol sans frottement

L'accélération est constante, a = g (vers le bas). La solution exacte est une parabole : x(t) = x₀ + v₀ cos θ · t et h(t) = h₀ + v₀ sin θ · t − ½ g t². Pour un retour à la hauteur de départ, la portée vaut R = v₀² sin 2θ / g, maximale à θ = 45° ; à v₀ fixé, elle est inversement proportionnelle à g.

Le moteur n'utilise pas cette formule : il intègre pas à pas avec le schéma d'Euler semi-implicite (symplectique), vn+1 = vn + g Δt puis xn+1 = xn + vn+1 Δt. En sommant, on obtient exactement hn = h₀ + v₀ sin θ · t − ½ g t² − ½ g Δt · t : la trajectoire calculée passe sous la parabole exacte d'un écart ½ g Δt · t, soit environ 16 cm après 2 s sur Terre. Cochez « Parabole exacte » pour le voir.

Pour la même raison, l'énergie mécanique Em = ½ m v² + m g h n'est pas conservée exactement par le schéma ; on montre qu'elle varie de ΔEm = ½ m g Δt (vy − vy0), où vy est la composante verticale (positive vers le haut). C'est la quantité Em − ½ m g Δt · vy qui est conservée. Le tableau « En vol » affiche la variation mesurée et la variation prévue : elles coïncident jusqu'au premier contact.

La trajectoire prédite (pointillés) applique exactement le même schéma que le moteur : elle est donc exacte, au sens où elle reproduit le calcul du moteur, jusqu'au premier obstacle.

Frottement de l'air (option)

Le moteur Matter.js propose un frottement linéaire : à chaque pas, v ← v (1 − c) avec c = 0,004. Cela équivaut à une force F = −m β v avec β = −ln(1 − c)/Δt ≈ 0,240 s⁻¹, donc une décroissance exponentielle de la vitesse (en l'absence de gravité). C'est un modèle simplifié : à ces vitesses et à ces tailles, le nombre de Reynolds est de l'ordre de 10⁵ à 10⁶ et la traînée réelle est quadratique, F = ½ ρair Cx S v². Le frottement s'applique aussi sur la Lune dans le jeu, ce qui est non physique puisqu'elle n'a pratiquement pas d'atmosphère. Avec frottement, les formules analytiques affichées ne s'appliquent plus ; la prédiction pointillée, elle, reste exacte.

Collisions et dégâts

Le moteur résout les contacts par impulsions itératives, avec un coefficient de restitution et un frottement de Coulomb propres à chaque matériau, plus des corrections de position pour empêcher l'interpénétration. Ces corrections ne sont pas physiques ; elles expliquent les légers tassements des structures au chargement.

L'énergie d'un impact est estimée juste avant le contact par E = ½ mr vn², avec mr = m₁m₂/(m₁ + m₂) la masse réduite (égale à la masse du corps mobile si l'autre est fixe, comme le sol) et vn la composante de la vitesse relative selon la normale au contact. C'est l'énergie cinétique associée au mouvement relatif normal dans le référentiel du centre de masse ; la part réellement dissipée vaut (1 − e²) E, où e est la restitution. La rotation des corps est ignorée dans ce calcul. Chaque corps impliqué reçoit E comme dommage et se brise quand le cumul dépasse son seuil. C'est une règle de jeu, pas un modèle de mécanique de la rupture. Les dégâts sont désactivés pendant les 1,2 premières secondes d'un niveau, le temps que les structures se posent.

Matériauρ (kg/m³)FrottementRestitutionSeuil de rupture

Gravités

Terre 9,81 m/s² ; Lune 1,62 m/s² ; Mars 3,71 m/s² ; Jupiter 24,79 m/s². Jupiter n'a pas de sol solide : sa valeur est celle du niveau de pression 1 bar, et le terrain est ici un cas d'école. Sur Jupiter, le point de chute le plus lointain possible (à 3 m de hauteur de départ, sans frottement) est à x ≈ 25,9 m avec le projectile léger et x ≈ 16,0 m avec le lourd, contre 54,8 m et 30,2 m sur Terre. Plusieurs niveaux y sont donc hors de portée : c'est la physique, pas un défaut du jeu.