Le problème en question fait partie d'une simulation scientifique portant sur la croissance 2D dans l'espace 3D. La forme 2D se développe en ajoutant des segments (triangulaires) à la forme précédemment développée.Comment calculer l'intersection entre un polyèdre convexe et un autre polyèdre?
Notez que les segments réels en 3D ont une épaisseur, donc, mon code fonctionne en fait avec des prismes triangulaires.
À un moment donné, ces formes 2D (quelle que soit l'orientation et la position relatives) entrent en collision.
Si l'un des nouveaux prismes triangulaires croise des segments précédemment insérés, je veux seulement insérer la "partie" d'un segment qui ne recoupe pas les segments précédemment insérés. Comme indiqué ci-dessous pour les segments étiquetés T1 et T2.
Dans la première étape, je calcule toutes les intersections des bords de faces. J'ai ensuite utilisé le package CGAL Delaunay Triangulation en 3D pour mailler l'ensemble de points résultant dans un maillage tétraédrique. En dernier lieu, je rejette tous ces tétraèdres qui se croisent avec des segments précédemment insérés. Cela fonctionne magnifiquement dans la plupart des cas - mais je suis convaincu maintenant que l'idée ne peut pas fonctionner pour des raisons fondamentales.
Quel est un moyen plus fiable de calculer cela?
Je vais réfléchir à votre approche. Cependant, deux choses: 1. Je ne cherche pas l'intersection, je cherche en fait le complément du nouveau segment à l'ensemble de tous (bien sûr seulement ceux dans le voisinage) des segments précédemment insérés. Si j'ai l'intersection je dois encore le soustraire du nouveau segment. – Merlin