Moteur physique - Rebonds d'une balle
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Moteur physique - Rebonds d'une balle



  1. #1
    invitecef522d7

    Moteur physique - Rebonds d'une balle


    ------

    Bonjour, je suis en train d'essayer de coder mon propre, et modeste, moteur physique pour un jeu video. Pour l'instant j'ai juste implémenté la gravité à l'aide de la seconde loi de Newton, maintenant j'essaye de simuler le rebond.

    Dans mon simulateur, j'ai une balle à laquelle je donne une position initiale, une vitesse initiale, une masse, un rayon, une élasticité ainsi que le milieu dans lequel elle trouve. Son élasticité, qui est une valeur comprise entre 0 et 1, va influer sur l'amplitude des rebonds : plus c'est proche de 1, plus les rebonds vont être importants.
    Ce que je fais concrètement pour l'instant, c'est que lorsque je détecte une collision avec le sol, je réinitialise les conditions initiales comme suit :
    - pos0 = position actuelle
    - speed0.x = vitesse en x actuelle
    - speed0.y = -(vitesse en y actuelle) * élasticité
    - t0 = 0

    C'est la vitesse initiale ici qui me permet de déclencher le rebond. Alors ça marche très bien en y, seul problème pour l'instant, comme je n'ai que le poids qui s'applique, me balle ne s'arrête jamais en x !
    Il faut encore implémenter les frottements du sol (pour l'instant je néglige ceux de l'air). C'est là que je commence à sécher un peu. Voici un petit schéma :

    Nom : schema.png
Affichages : 219
Taille : 15,0 Ko

    Déjà j'aimerais savoir si j'ai bien représenté la Réaction ? Et ensuite est-ce bien cela qui va permettre de décroitre progressivement Vx ? Comme c'est une force ponctuelle ça me perturbe un peu... Aussi comment calculer le vecteur R ? Rn est-il toujours égal à P ?
    Tout ce que je sais c'est que Rt = k*Rn, avec k dépendant de la nature des matériaux.

    Enfin voila, si vous avez des indications/conseils à me donner pour terminer cette histoire de rebonds, je suis preneuse ^^

    -----

  2. #2
    LPFR

    Re : Moteur physique - Rebonds d'une balle

    Bonjour et bienvenue au forum.
    Votre approche du rebond est correcte.
    En première approximation, la vitesse en 'x' ne change pas pendant les rebonds. Ce n'est qu'une fois les rebonds terminés, que la balle roule et ralentit à cause des frottements. Ces frottements se traduisent par une force constante en direction opposée à la vitesse, mais qui disparait quand la vitesse tombe à zéro. Car, si non, votre balle repart en arrière.
    Remarquez que le nombre de rebonds est infini, mais ils se produisent dans un temps fini (oui, c'est surprenant).
    Pour éviter de calculer un nombre infini de rebonds (ce qui demande un temps infini), il faut décider que les rebonds s'arrêtent quand la vitesse devient trop petite (1/1000 ème de la vitesse initiale, par exemple).

    La situation réelle est plus compliquée car la rotation de la balle entre en jeu lors des rebonds et modifie la composante horizontale de la vitesse en plus ou en moins. Mais ça sera pour plus tard.
    Au revoir.
    Dernière modification par LPFR ; 15/07/2012 à 15h04.

  3. #3
    invitecef522d7

    Re : Moteur physique - Rebonds d'une balle

    C'est exactement les indications qu'ils me fallait ! En ce qui concerne les rotations se sera effectivement au programme mais plus tard oui ^^
    Merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/03/2011, 20h10
  2. Logiciel de traitement d'image dans le cas des rebonds d'une balle
    Par invitec35a5bd3 dans le forum TPE / TIPE et autres travaux
    Réponses: 4
    Dernier message: 27/06/2010, 17h36
  3. 1ereS: rebonds de balle
    Par invite8260f9e3 dans le forum TPE / TIPE et autres travaux
    Réponses: 4
    Dernier message: 17/01/2010, 22h09
  4. Petite question physique : vitesse d'une balle
    Par invite21edff1c dans le forum Physique
    Réponses: 2
    Dernier message: 22/02/2009, 16h12
  5. Origine physique des rebonds ?
    Par toinou dans le forum Électronique
    Réponses: 9
    Dernier message: 13/07/2005, 15h43