Document sans nom  

Collision Sphère / Plan

Détection de la collision

            Une fois le calcul des nouvelles positions des objets effectué, il est nécessaire de détecter s'il collisionne avec un autre objet. Dans le cas de la collision Sphère / Plan cette détection ce fait aisément en comparant la distance du centre de la sphère au plan avec le rayon de la sphère :

 

        

            La condition de collision est   , avec R rayon de la sphère

 

Gestion de la collision

 

            Une première idée pour gérer la collision entre deux corps rigides est d'appliquer une force de réaction aux objets. Cependant cette force ne va pas arrêter les objets immédiatement et ne va donc pas empêcher leur interpénétration, car elle ne pourra pas changer instantanément le sens des vitesses.

            Une force va mettre trop de temps à inverser les vitesses or les corps sont déjà en contact, il faut donc agir immédiatement sur leur vitesse. C'est pourquoi nous allons calculer la vitesse réfléchie par rapport à la normale de la collision (la normale du plan dans ce cas) . Celle-ci remplacera ensuite l'ancienne vitesse.

 

            La vitesse réfléchie peut être obtenue grâce à la relation suivante:

 

Recalage au point de contact exact

           

            Du fait que le calcul des positions ne peut se réaliser de manière continue (il s'effectue à chaque frame donc tous les Dt secondes), au moment où l'on détecte la collision, les objets vont s'être déjà interpénétrés.

            Il est alors nécessaire de replacer les objets au point de contact exact pour être certain qu'à la frame suivante, les deux objets se seront bien séparés. En effet si l'on ne réalise pas ce recalage, il est possible que les objets n'aient pas eu le temps de compenser l'interpénétration à la frame suivante (notamment si le Dt suivant est faible). Dès lors, le moteur va détecter de nouveau une collision etc.



            On recale l'objet dans la direction de sa vitesse au moment ou l'on détecte la collision. On cherche en fait à « remonter dans le temps » afin de trouver le point de collision exact. On calcule dans un premier temps la pente de la vitesse (représentée par des pointillés bleus sur le schéma ci-dessus).

            On a alors      

or,           d'où,           et donc finalement,

            Connaissant  on peut alors aisément replacer la sphère à la bonne position.

            Dans le cas ou la sphère entre en collision avec plusieurs objets (par exemple avec deux plans), on calcule, pour chacune des collisions, la distance  nécessaire au recalage de la sphère. Finalement, on garde le plus grand  pour recaler physiquement la sphère et ainsi éviter toute interpénétration avec les autres objets :



La collision Sphère / Sphère

 

Détection de la collision

 

            La détection de la collision Sphère / Sphère est relativement simple. Soient deux sphères :

·       de centre  et de rayon

·       de centre  et de rayon

 

            On forme le vecteur  et l’on pose . Ensuite, il suffit de vérifier que  pour s’assurer de la collision.


             

 

Gestion de la collision

 

            Notre gestion de la collision va prendre en compte l’inertie des deux objets. En effet, une boule de bowling lancée a grande vitesse ne sera pas influencée par le contact avec une balle de ping-pong.


 

 

            Tout d’abord, on se place dans le repère local défini par l’axe de direction et l’axe perpendiculaire. Seule la composante des vitesses suivant l’axe  sera modifiée. On donnera ici la solution sans démonstration. On pose donc :

 

             et l’on a            .

 

            De même,

 

             et l’on a            .

 

            On remarquera dans ces formules que si les sphères sont de masses égales et si les vitesses au point de rencontre sont les mêmes alors on a . On retrouve alors le calcul classique d’un vecteur réfléchi par rapport à une normale (suivant ) soit .

 

Recalage au point de contact

 

            Pour les mêmes raisons que précédemment (voir recalage Sphère / Plan) on va chercher à recaler les deux sphères.

            Dans le cas de cette collision on va reculer les deux sphères suivant la direction de leur vitesse respective jusqu'au moment où elles ne possèdent plus qu'un seul point d'intersection, leur point de contact.


   

On a         avec  ( resp. ), pente de la vitesse de l’objet 1 ( resp. 2).

 

et de plus il faut que  pour être au point exact de contact. Donc,

On a donc un système à deux équations et deux inconnus que l'on peut résoudre aisément par les méthodes classiques. On arrive alors a

                               

il faudra donc reculer la sphère 1 de et la sphère 2 de .

 

            Rem : Suite à la présentation orale du projet, une question nous a permis de voir une limite dans cette méthode. En effet, la variable « b », posée ainsi, suppose que les vitesses sont coplanaires, ce qui n’est pas forcément vrai.

            Il faudrait donc trouver la démonstration dans le cas général, en distinguant les variables  et .