Je travaille avec une géométrie 3D. J'ai besoin de trouver l'intersection du triangle avec un autre triangle. P>
Quel algorithme pourrais-je utiliser? P>
3 Réponses :
Ce document décrit une implémentation: p>
http://knight.temple.edu/~lakaempper/ Cours / CIS350_2004 / etc / Moeller_triangle.pdf P>
Notez qu'il existe différentes techniques, selon que vous souhaitiez connaître le point / segment où l'intersection s'est produite ou indiquez simplement si un intersect est arrivé. Ce document vous donnera le segment de ligne représentant l'intersection. P>
Beaucoup de gens s'appuient apparemment sur une implémentation ( Lien vers le code source ) de la méthode décrite en 2006 dans le document suivant ( Lien vers PDF ):
TROPP, OREN, AYELLET TAL et ILAN Shimshoni. "Un triangle rapide à Test d'intersection de triangle pour la détection de collision. "Ordinateur Animation et mondes virtuels 17.5 (2006): 527-535. P> blockQuote>
Il existe cependant un problème avec ce code (à l'exception de l'adoption d'un ancien style de programmation, en utilisant des notations non conventionnelles et de perdre l'interprétation géométrique sous-jacente): "chose déterminante" ne rend pas nécessairement plus robuste, si fait de la mauvaise voie. p>
Je suggère d'utiliser la méthode de Moeller ( Lien vers pdf ) ou jeter un oeil au papier de Delliver ( Lien vers pdf) , implémenté dans la bibliothèque CGAL ( lien , "trianggle_3_triangle_3_do_intersect.h"). < / p>
un exemple fort>: la routine d'intersection implémentée ci-dessus indique que les triangles (P0, P1, P2) et (q0, q1, q2) définis par les points suivants p> < Pré> xxx pré> est pas em> intersection. Voici une image des triangles: p>
p>
Et voici le code de code (ajouter au code d'origine): p>
xxx pré> une note finale sur le nombre d'opérations arithmétiques: car la méthode prend en entrée vecteurs de bord pré-calculé, 12 +/- Les opérations doivent être ajoutées au tableau I. du papier. P>
dernier mais non le moindre: veuillez vérifier ce que j'écris à vous-même et donnez-moi des commentaires si vous pensez que j'ai mal compris quelque chose! < / p> p>
Je viens de trouver ce code, pourrait être utile pour une personne à la recherche d'une solution rapide et déjà mise en œuvre de la méthode Delliver: RAW.GITUBUSERContent.com/erich666/jgt-code/master/volume_08 / ...
Voir aussi triangle-triangle ici