IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

collision entre 2 objets à déterminer


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut collision entre 2 objets à déterminer
    Bonjour.

    Dans un plan orthonormé en 2D je cherches à calculer la collision la plus rapide entre 2 objets.

    • L'objet Target a une vitesse et direction constante, tous les 2 connus.
    • L'objet Missile cherche à rentrer en collision avec l'objet Target, sa vitesse est constante et connue.
      Sa direction est constante, par contre elle est à définir pour que la collision entre les 2 objets soit la plus rapide possible.
    • On considère que les 2 objets entrent en collision une fois que la distance qui les sépare est inférieure ou égale à RANGE, valeur constante et connue.
    • Les déplacements de ces objets est géré toutes les X secondes, c'est une valeur constante et connue.
    • La vitesse de Missile n'est pas forcément plus rapide que celle de Target, mais il y a un temps limite MAX_TIME, valeur constante et connue.
      Si il s'avère que le temps nécessaire pour obtenir une collision est supérieur à cette limite, alors Missile ne sera pas lancé.


    Je cherches à faire le moins de calculs possible, mais franchement je ne vois pas comment procéder ...

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,

    dans un premier temps tu peux faire plus simple et considérer l'impact direct (sans te soucier du rayon qui déclenche l'explosion...qui est moins trivial)

    Soient A et B les points de départs de tes deux projectiles.
    soientt v_A et v_b leur vitesse associée
    soient u et v les vecteurs normés donnant leur direction.
    soit t le temps...
    L'intersection s'écrit
    A+uv_a t=B+v v_b t
    developpant on a le systeme
    x_AB=t(v_bcos(alpha) - v_a u_x)
    yAB=t(v_b(sqrt(1-cos^2(alpha)) - v_a u_y)
    avec u_x et u_y que tu connais

    Il reste à resoudre ce systeme en fonction de t et alpha.
    Ensuite tu retrouves vb_x=acos(alpha) et vb_y=1-vb_x^2

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    Merci de cette réponse.

    Alpha est l'angle entre le point A et B au moment initial sans tenir compte de la direction du projectile Target déterminé à l'avance ?

    Juste au cas où je répète que la direction de Missile n'est pas connu, et je cherche à la déterminer pour obtenir une collision le plus tôt possible.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Alpha est l'angle entre le point A et B au moment initial sans tenir compte de la direction du projectile Target déterminé à l'avance ?
    non.
    v est le vecteur directeur normé qu'on cherche, on peut l'écrire
    [cos(alpha), sin(alpha)]

    j'ai en particulier rappelé v_x=acos(alpha) dans le poste précédent (c'est bien v_x et pas vb_x)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    Ok, mais comment déterminer cet angle ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    En essayant de résoudre un système de deux équations à deux inconnues. A tout hasard.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    J'en compte quatre.

    - les coordonnés du point d'intersection : x_AB et y_AB
    - l'angle alpha
    - le temps t

    Maintenant mon niveau en math et géométrie est très mauvais, peut être que je loupe quelque chose d'essentiel.

  8. #8
    Invité
    Invité(e)
    Par défaut
    t'as mal interprété.
    x_AB=x_B-x_A
    yAB=y_B-y_A

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    Ok merci.

    Que veux dire :

    v_a u_x

  10. #10
    Invité
    Invité(e)
    Par défaut
    soientt v_A et v_b leur vitesse associée
    soient u et v les vecteurs normés donnant leur direction.
    t'as deux missiles.
    leur départ c'est les points respectifs A et B.
    Par exemple A(0,0) pour le missile 1 et B(2,3) pour le missile B.

    Tu connais la direction du missile 1: c'est u.
    Par exemple u=(2,1)
    et tu connais la vitesse du missile 1, c'est v_A, par exemple v_A=10pixels/s.
    u_x représente la composante sur x du vecteur u. Donc u_x=2 et u_y=1

Discussions similaires

  1. Gestion de collisions entre objets mobiles?
    Par Benjilabu dans le forum Caml
    Réponses: 3
    Dernier message: 10/01/2011, 21h32
  2. Fonction pour tester la collision entre deux objets
    Par izissie dans le forum Newton
    Réponses: 1
    Dernier message: 22/09/2010, 20h56
  3. Collision entre souris et objet
    Par youp_db dans le forum SDL
    Réponses: 8
    Dernier message: 26/07/2006, 13h15
  4. GLScene et les collisions entre les objets
    Par HopeLeaves dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 13/06/2005, 19h45
  5. Réponses: 4
    Dernier message: 25/09/2004, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo