Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mécanique du point

19 avril 2020 à 1:27:46

Bonjour à tous,

J'ai un petit problème de méca sur un jeu que je suis en train de coder. En gros le curseur doit taper dans une balle, j'ai les coordonnées de la balle et de la souris, j'ai un pseudo vecteur vitesse qui est en fait le déplacement du curseur depuis la derniere frame. Je me doute que pour faire rebondir la balle, il faut qu'elle prenne le projeté du vecteur vitesse sur la droite entre les 2 balles, mais clairement j'ai aucune idée de comment faire..

merci d'avance

  • Partager sur Facebook
  • Partager sur Twitter
1 mai 2020 à 11:16:14

Bonjour PfisterAntoine,

En supposant que la collision est élastique et que la grosse boule reste immobile, toute l'énergie cinétique est restituée à la petite boule. Je pense que le vecteur vitesse (flèche rouge) doit devenir le symétrique par rapport à la normale au point de contact (droite pointillée bleu).

J'imagine que tu doit implémenter cela avec les coordonnées cartésiennes (x,y). Je ne sais pas trop comment les variables sont codées dans ton programme. Tu pourrais par exemple soustraire le vecteur vitesse rouge par 2 fois le vecteur en vert pointillé (en dirigeant ce vecteur vers la "gauche") pour obtenir le symétrique par rapport à la droite pointillée bleue.

Tu peux reconstruire ce vecteur vert pointillé en remarquant qu'il s'agit effectivement de la projection du vecteur rouge sur une perpendiculaire à la droite bleue (ou bien à la parallèle la tangente à au cercle en ce point)

Enfin, j'avoue ne pas être familier au codage informatique de simulation cinématique... Peut-être que d'autres utilisateurs seront plus aptes à t'aider!

Très bonne journée à toi,

L'utilisateur masqué.

  • Partager sur Facebook
  • Partager sur Twitter
3 mai 2020 à 15:54:48

Salut,

Dans le cas d'un collision dans laquelle on néglige toute dissipation d'énergie (donc une collision élastique comme l'a souligné l'utilisateur masqué, deux grandeurs sont conservées : la quantité de mouvement et l'énergie mécanique totale du système constitué des deux boules.

Dans ta modélisation, tu dois donc impérativement attribuer à chaque boule une masse, à moins qu'elles n'aient toutes la même masse.

Dès lors, tu obtiens un système de 2 équations à 2 inconnues.

Pour mes calculs, je me suis inspiré de cet article : http://www.physagreg.fr/mecanique/m24/M24-systeme-isole-a-2-corps.pdf

Je ne sais pas comment insérer des calculs, donc je vais le faire en textuel, désolé par avance^^

On définit donc la collision entre 2 sphères des masses m1 et m2. A l'instant initial, on a uniquement la sphère de masse m1 qui est en mouvement à un vitesse v.

On définit l'angle A (je sais pas faire de têta ici^^) comme l'angle entre le vecteur vitesse et la tangente aux sphères au point d'impact de ces sphères.

On note v1 et v2 les vitesses après l'impact et on a alors d'après la conservation de la quantité de mouvement du système {m1 + m2}:

v =v1 + m2/m1 * v2

Et d'après la conservation de l'énergie mécanique :

||v||² = ||v1||² + ||v2||²

On déduit de ces deux égalités que les vecteurs v1 et v2 sont orthogonaux (car leur produit scalaire est nul).

De plus on a :

v1.v = v1.(v1+ m2/m1 * v2) = ||v||.||v1||.cosA, donc ||v1|| = ||v||.cosA

Et par le même raisonnement on obtient ||v2|| = m2/m1 * ||v||.sinA

Normalement je ne me suis pas trompé, à vérifier.

Tu peux graphiquement retrouver les valeurs de cosA, cf le cours que j'ai mis en lien (il faut alors introduire un paramètre d'impact).

Voilà normalement tu es bon pour programmer tout ça !

Si tu souhaites prendre en compte le caractère inélastique de la collision, regarde la fin du pdf que je t'ai envoyé. Néanmoins, dans un jeu, à moins que tes sphères ne soient dans des matières toutes molles, le joueur ne sera pas trop interloqué par la conservation totale de l'énergie mécanique ;-)

-
Edité par BouloukaouzeOulouzek 3 mai 2020 à 16:10:24

  • Partager sur Facebook
  • Partager sur Twitter