Partage
  • Partager sur Facebook
  • Partager sur Twitter

Collision entre deux cubes

    4 novembre 2006 à 18:12:25

    Bonjour,

    Je cherche simplement à savoir comment je pourrai faire pour detecter si il y a collision ou non entre deux cubes.


    Merci d'avance,
    SeyZ.
    • Partager sur Facebook
    • Partager sur Twitter
      4 novembre 2006 à 18:25:52

      <joke>tu regarde si ils se touchent</joke>
      Un petit bout de code pour voir comment tes cubes sont définis ?

      A priori le plus simple est de voir si l'un des sommets de l'un des cubes est contenu dans l'autre. La manière de faire ça dépend de la manière dont tes cubes sont définis.
      • Partager sur Facebook
      • Partager sur Twitter
        4 novembre 2006 à 19:20:23

        çà dépend si tes cubes sont parallèles aux axes du répère ou pas.
        • Partager sur Facebook
        • Partager sur Twitter
          4 novembre 2006 à 19:25:31

          Tu peut aussi calculer la distance entre les deux cubes ! Si elle est trop faible alors il y a collision !
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            4 novembre 2006 à 19:30:09

            Oui mais dans ce dernier cas ça ne marcherait que si les arrêtes des deux cubes sont parralèles / Perpendiculaires. Cette méthode marcherait bien pour une sphère XT95, mais pour les cubes ça dépend des cas.
            • Partager sur Facebook
            • Partager sur Twitter
              4 novembre 2006 à 19:46:50

              Ouai mais c'est surement moins couteux que faire un calcul pour chaque polygon par exemple pour un personnage autant faire une sphere nn ?

              Je poste la formule au cas ou ^^ :

              #include <maths.h>
              ....
              dist = sqrt(pow((cube1.X-cube2.X),2)+pow((cube1.Y-cube2.Y),2)+pow((cube1.Z-cube2.Z),2));

              • Partager sur Facebook
              • Partager sur Twitter
                5 novembre 2006 à 15:43:13

                Ok enfaite après reflexion je voudrai faire la collision entre deux cylindres. J'arrive à la faire si mes cylindres sont verticaux sur l'axe x, y et z. Maintenant il faudrait que je réussisse à faire la collision entre ces deux cylindres si par exemple je fait un glRotated(-45,0,1,0) à mon premier cylindre et detecter si il y a collision ou non avec le deuxième que je laisse vertical (pour l'instant).
                • Partager sur Facebook
                • Partager sur Twitter
                  5 novembre 2006 à 15:57:44

                  ça c'est du calcul mathématiques pur. Il faut que tu connaisse les équations des droites génératrices de tes deux cylindres, à partir de là tu calcule la distance minimale entre ces deux droites et tu regarde si cette distance est inférieure ou non à la somme des rayons des cylindres. Cela suppose par contre que tes cylindres soient infinis, ce qui n'est surement pas vrai. Tu peux rajouter des conditions pour vérifier avec des cylindres finis, mais je vois pas vraiment lesquelles...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 novembre 2006 à 16:11:29

                    Par hazard vous n'auriez pas un site qui donne quelques algorithmes ou des sources sur des collisions entre deux cylindres (merci d'éviter les réponses totalement inutile du genre: google est ton amis !). Merci d'avance.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 novembre 2006 à 16:15:05

                      La détection de collision est une chose, la réponse aux collisions en est une autre. Pour faire les choses correctement intégralement j'utiliserai à ta place un moteur physique comme Newton Game Dynamics, simple d'utilisation et très efficace (cf exemples du SDK).
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 novembre 2006 à 16:21:44

                        En faite j'essaye de ne pas utiliser d'autre chose déjà codé, je voudrai faire un maximum moi même à partir de la SDL et l'openGL.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Collision entre deux cubes

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown