Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Detection de collision [ Algorithme / Maths ] (goast_tu)

vendredi 30 juin 2006 à 22:49:16 | Detection de collision

goast_tu

Salut
Je suis en train de créer un programme dans le quel je doit implémenter la detection de collision entre deux boites. La difficulté c'est que les boites peuvent etre orienté suivant differents angles.
Est ce que quelqu'un sais comment le faire, puisque la je suis vraiment desesperé.

Merci.

vendredi 30 juin 2006 à 23:21:54 | Re : Detection de collision

mondrone

Membre Club
ca ne change peut être pas complètement la donne, mais 2D ou 3D ? Et d'ailleurs tant qu'on y est des boîtes... rectangulaires ?


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!


samedi 1 juillet 2006 à 01:57:33 | Re : Detection de collision

Galmiza

Je te conseille très vivement d'utiliser un moteur physique. Ils sont très performants, utilisent des techniques qu'on est loin de pouvoir imaginer si on est pas un dieu dans le domaines des multiplicateurs de Lagrange et sont bien documentés. Essai PhysX (Novodex) de Ageia, il est gratuit.
Tu vas te prendre la tête sinon avant d'être dégouté d'avoir pondu un algo lent et pas très stable.
Perso j'en avais commencé un avec des connaissances de bases de physique et mécanique (la terminale S suffit amplement pour faire un algo potable) mais la stabilité (car j'imagine que tu ne t'arretes pas qu'aux collisions) est extrêmement difficile à allier avec la vitesse. J'ai embrayé avec PhysX dont je suis très satisfait.

samedi 1 juillet 2006 à 12:57:51 | Detection de collision

goast_tu

Salu!
J'aurai du peut etre dir les parallelpipedes. Donc c'est en 3d.
Je ne m'interesse qu'aux collisions simples (je veux juste savoir si 2 boites sont en collision ou non).
Merci pour ta reponce Galimza je vais voir ce moteur physique, mais je doit faire un algorithme directement dans mon programme sans utilisation de librairies.

goast_tu

samedi 1 juillet 2006 à 13:43:27 | Re : Detection de collision

Galmiza

Tu peux proceder ainsi:
Tu calcules les AABB (axis aligned bounding boxes, regarde sur le net il y a des dessins très bien fait pour les définir)
Tu vérifies si les AABB se touchent
NON -> pas de collisons -> exit
Tu vérifies que chaque sommet d'un parallelepipede ne se situe pas à l'intérieur de l'autre parallelepipede.
OUI -> la direction du contact est la normale à la face touchées (si tu en a plusieurs, tu fais une moyenne de ces normales) -> ~exit
NON -> ca ne veut pas dire qu'il n'y a pas de collision
Tu vérifies si chaque arête d'un parallelepipede ne se situe pas derrière une arête de l'autre parallelepipede (derrière a un sens car les arêtes sont orientées ver l'extérieur ).
OUI -> direction contact = produit vec des arètes
NON -> pas de collisions -> exit

Ce n'est pas rigoureux mais ça ne peut que t'aider.

Bonne chance !


samedi 1 juillet 2006 à 14:58:44 | Re : Detection de collision

mondrone

Membre Club
je n'aurais pas dit mieux, les méthodes auqelles je pensais rejoignent les tiennes !


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!


dimanche 2 juillet 2006 à 22:41:04 | Re : Detection de collision

luhtor

Bas si ces que des cubes, t'as juste besoin de faire des produits scalaires...



lundi 3 juillet 2006 à 07:09:46 | Re : Detection de collision

maladedede

Membre Club
slt peut tu m'en dire plus sur PhysX stp
Il est gratuit ? parceque sur le site j'ai pas trouvé le lien il parlai de licence!

Et je vois pas comment on fait pour combiné un détecteur de colision avec openGL mais vrement pas.

Peux-tu m'en dire un plus stp en 3-4 lignes 

MaLaDeDeDe 97one


mercredi 5 juillet 2006 à 15:31:04 | Re : Detection de collision

Galmiza

Salut,

Effectivement, la derniere version n'est plus disponible gratuitement !
La derniere version disponible pour le public est la 2.3.3.

Regarde ce topic, j'y explique tres brievement les grand principes de l'implantation d'un moteur physique dans un moteur graphique.

http://www.cppfrance.com/infomsg_COMMENT-TESTER-COLLISIONS-AVEC-SDL_653331.aspx#6

Malheureusement le lien vers AGEIA ne propose plus la version 2.3.1.


mercredi 5 juillet 2006 à 16:50:47 | Re : Detection de collision

maladedede

Membre Club
ok mici

1/1MaLaDeDeDe 97one1/1 




Cette discussion est classé dans : boites, detection, collision


Répondre à ce message

Sujets en rapport avec ce message

Collision Detection Spheres Dynamiques [ par ionstorm356 ] Salut tout le monde, je suis actuellement entrein de programmer un moteur physique en directx et c++ et j'aimerai savoir comment on teste l'intersecti Detection de collision C++ [ par handmousemaster ] Bonjour à tous, Dans le cadre d'un projet informatique, j'ai besoin de faire de la detection de collisions en C++. Cependant je veux la faire de mani Maximisation de boites de dialogue et contrôles [ par morganitos ] Lorsque l'on maximise un boite de dialogue grace à SW_MAXIMIZE, la boite de dialogue passe en mode plain écran, c'est bien.Mais si l'on veut que les c detection de configuration du materiel d'un pc [ par halwas ] bonne programationbonjour ,je veux programmer un logiciel similaire à SisoftSandra mais je n'ai pas arrivé .Pouvez-vous m'a collison 3D [ par cppdupdup34 ] voila j'ai un petit souci dans mes detections de collision.le test de collision entre un point et un pavé orienté n'importe comment dans l'espace s'ef Chgt du design des boites de dial [ par Djule01 ] Bonjour :) Comment faire pour changer le design des boites de dialogues creer a partir de visual c++. J'aimerais creer des boites de dialogues un peu communication entre boites de dialogues [ par cashroc ] salut à tous, je développe une application en mfc avec vc++ 6.0 basée sur une boite de dialogue. La boite de dialogue mère lance une boite de dialogu detection touches de clavier [ par CoyoteVsBeepBeep ] Hello,j'ai un soucis pour capter l'appui d'un touche dans une classe CDialog.je crée une boite de dialogue dial.DoModal();et j'ai beau ajouter les mes boites de dialogues communes [ par spiky31 ] Bonjour Peut on créer une boite de dialogue commune telle que "getOpenFileName" mais pour recuperer le nom d'un dossier ? (du style de "rechercher da Collision HeightMap [ par DarkBoss ] Salut,J' aimerais savoir si l' on peut calculer les collisions avc le "sol" qui dans mon cas est une heightmap ?Je précise, j' ai déjà essayer d' enre


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.