begin process at 2012 05 29 09:59:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Intersection rayon -> triangle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Intersection rayon -> triangle

dimanche 23 juillet 2006 à 20:33:45 | Intersection rayon -> triangle

DarkBoss

'lu tout le monde.
Je vous explique la situation:
j' ai fais mon (petit) moteur 3d, mais j' aimerais rajouter une bonne gestion des collisions avec un lancer de rayon.
Mais voila toutes les articles/sources/théories que j' ai trouver sont assez vastes et pas precise comme je le voudrais.
Mon rayon partirais du vecteur position de ma caméra ( l' oeil du joueur )
Comme le titre l' indique j' aimerais savoir :
   -Si le rayon traverse un des triangles qui compose mes murs;
   -A quelle distance il le traverse pour pouvoir arreter le déplacement du joueur

je précise qu' avant de poster j' ai cherché mais que ce que j' ai trouvé n' étais pas assez complet, je ne suis pas un mathématicien , j' ai donc besoin d' un exemple concret pour en apprendre plus.

Merci pour vos réponses
DarkBoss
dimanche 23 juillet 2006 à 21:12:51 | Re : Intersection rayon -> triangle

cz1702

Sans formule mathématique ça risque d'être compliqué à faire ! Pour moi la solution serait d'utilisé des sinus et des cosinus et cela à plusieurs reprise ! Si ça t'intéresse je veux bien essayer de t'expliquer la méthode que j'utiliserai mais je veux pas me lancer dans de longues explication pour rien !
dimanche 23 juillet 2006 à 21:17:32 | Re : Intersection rayon -> triangle

DarkBoss

bah t' emmerde pas pour moi j' ai deja trouver des fonction complexe le probleme c' est qu' elles le sont trop....
mais si tu pouvais m' expliquer simplement comment on teste si un vecteur traverse un triangle sa serais cool

DarkBoss
dimanche 23 juillet 2006 à 21:27:35 | Re : Intersection rayon -> triangle

luhtor

Un vecteur par définition n'a pas de position donc tu peux pas tester s'il traverse un triangle puisque ca veut rien dire. :)


dimanche 23 juillet 2006 à 21:38:49 | Re : Intersection rayon -> triangle

cz1702

Ce site t'explquera mieux que moi je pense (je ne suis pas très pédagogue et sans dessin ça va être dur): http://texel3d.free.fr/opengl/collisions.htm PS: tout rayon qui se déplace peut être assimilé à une droite. Mais je vois pas trop un triangle en 3D.
mardi 25 juillet 2006 à 13:03:14 | Re : Intersection rayon -> triangle

lolo38550

Salut!

Il y a une méthode très simple. Tout ce dont tu as besoin c'est d'une fonction qui détermine l'équation de la droite support de ton vecteur (car effectivement, un vecteur est une entité mathématiques que tu peux déplacer où tu veux dans le plan, voire l'espace) ainsi que les droites supports des côtés de ton triangle. Ensuite, une fonction qui  calcul le point d'intersection entre deux droites, s'il existe. Il faut verifier que le croisement s'effectue dans les limites de longueur de ton vecteur (norme) et la longueur des côtés de ton triangle, la fonction te renvoie alors si oui ou non il y a une intersection (tu peut aussi faire en sorte qu'elle retourne les coordonnées du point d'intersection). S'il n'y a jamais d'intersection, il n'y en a pas !!

Voilà!

Si tu as des soucis d'implémentation, je dois avoir un algo qui peut t'aider (si je le retrouve!)
mercredi 26 juillet 2006 à 18:46:35 | Re : Intersection rayon -> triangle

dletozeun

Je veux pas tout casser mais...je pense pas que le test d'intersection demi-droite/triangle soit une methode efficace... Ca demande quand meme pas mal de calculs et cela pour un seul tiangle! Donc pour tous les triangles de la scene et a chaque frame (ou presque) ca va demander beaucoup au pc... Je dis ca comme ca...j'ai jamais essayé de faire ca... Tu peux detecter les collisions avec des bounding box aussi, c'est beaucoup plus simple. Un parallelépipede pour un mur, un cylindre pour le joueur suffit je pense dans une premiere approche. Apres on peut affiner le modele du joueur... En plus le calcul de collisions entre un parallelepipede et un cylindre c'est quand meme bcp plus simple et plus performant car dans chaque bounding box tu peux avoir des millions de polygones puisque ca n'entre pas en compte dans le calcul.
jeudi 27 juillet 2006 à 08:45:26 | Re : Intersection rayon -> triangle

lolo38550

Il est évident que ça demande pas mal au pc, mais c'est une solution que j'ai déjà personnellement expérimenté dans un prog qui simulait l'évacuation d'une foule dans un environement. Et à l'oeil, tu ne sens pas que ça ralentit!! mais c'est vrai que ça fait beaucoup de code à taper.
Pourrais-tu détailler ce qu'est une bounding box?
jeudi 27 juillet 2006 à 15:59:38 | Re : Intersection rayon -> triangle

dletozeun

Une bounding box c'est un objet simple comme: un cylindre, un cube, une sphere qui sert a englober un maillage plus ou moins complexe de facon plus ou moins precise; c'est a dire que tu peut utiliser plusieurs boundingbox pour un objet. Par exemple pour un homme : une sphere pour la tete, un paralellepipede pour le tronc et aussi pour les bras, les avant-bras, les cuisses et les jambes ( c'est deja un modele bien detaillé pour un perso) Ensuite pour detecter les collisions entre les bounding box c'est assez simple car c'est objets sont caractérisés de facon simple: Pour une sphere: son centre et son rayon. Un cube : sont centre et la longueur de son coté. etc... Et puis le tps de calcul depend de la scene. Si il y a bcp d'objets en ineraction ca risque d'etre lent avec la methode des triangles... Si tu veux encore plus de details il y a google qui te trouveras pleins de tutos la dessus.
jeudi 27 juillet 2006 à 16:07:40 | Re : Intersection rayon -> triangle

lolo38550

Ok! je vais me renseigner sur les possibilités de ces bounding box! Merci déjà de l'info!

1 2

Cette discussion est classée dans : rayon, intersection, triangle, traverse


Répondre à ce message

Sujets en rapport avec ce message

triangles et OPENGL [ par kapotman ] Bonjour a tousje cherche un source en c ou C++ pour visualiser un triangle dans une fenetre avec translation , rotation et changement d'echelle sans u intersection ligne-face (droite plein particulier) [ par Zyvon ] Salut,Je fais une gestion des collisions par arbre bsp et j'ai un problème pour coder une fonction il s'agit de :bool teste_segment_face ( const Face intersection droite cylindre [ par Zyvon ] Salut je cherche à coder une fonction dont on donne en parametre une droite et un cylindre et elle redonne true s'il y a intersection.Mais je ne sais chaos game 2 en c++ [ par clira82 ] coucou je recherche de l aide pour programmer un jeu en visual c++c'est un triangle de sierpinski en recursif:Il y a un point a chaque sommet du grand Comment mettre de la transparance dans un composant?? [ par OrsE ] Bon c pas vraiment de l'API, mais c un problème avec builder...En fait j'ai crée un composant qui dérive d'un TCustomControl, donc j'affiche des chose Objet Point et Triangle pb a la compilation [ par fatcat ] Salut a tousVoila mon petit pbJe dois créer un programme qui effectue une triangulation de delauanay a partir d un fichier de Point avec 2 "double" co Besoins d'aide pour faire un algorythme du triangle de pascal en C?? [ par Gokuan ] Hello tout le monde, Voilà, il faut que je fasse l'algorythme qui me permet de calculé le triangle de Pascal, mais j'essai mais je n'y arrive pas, al probleme avec rayon R et r dans code torus JCDjcd [ par jfk20004 ] J'ai un prob avec le code du torus:je l'ai modifié pour faire une sphere et je n'utilise pas R.ça fonctionne mais lorsque je veux utiliser ton codeave au ras des paquerettes en C++ [ par raro ] bonjour à ceux qui liront cette demande.j'ai 48 ans et j'ai décidé d'apprendre le langage C++ depuis une semaine.j'ai un (petit) probleme à vous soume Intersection triangles [ par goutbouyo ] Salut,Comment faire pour savoir si dans un plan 2D, 2 triangles se coupent ???Ca me serait utile pour tester des champs de vision mais je trouve pas c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales