Проблема заключается в научном моделировании, связанном с 2D-ростом в трехмерном пространстве. Двумерная форма растет, добавляя (треугольные) сегменты к ранее выращенной форме.Как вычислить пересечение выпуклого многогранника с другим многогранником?
Обратите внимание, что фактические сегменты в 3D имеют толщину, таким образом, мой код на самом деле работает с треугольными призмами.
В какой-то момент эти 2D-формы (с любой относительной ориентацией и положением) сталкиваются.
Если одна из новых треугольных призм пересекается с ранее вставленными сегментами, я хочу только вставить «часть» сегмента, который не пересекается с ранее вставленными сегментами. Как показано ниже для сегментов, обозначенных T1 и T2.
В первом шаге, я вычислил все пересечения края для лица. Затем я использовал пакет триангуляции CGAL Delaunay в 3D для сетки результирующей точки, установленной в тетраэдрической сетке. В качестве последнего шага я выбрасываю все те тетраэдры, которые пересекаются с ранее вставленными сегментами. В большинстве случаев это прекрасно работает, но я убежден, что идея не может работать по фундаментальным причинам.
Что является более надежным способом вычислить это?
Я собираюсь задуматься о вашем подходе. Тем не менее, две вещи: 1. Я не ищу пересечения, я действительно ищу дополнение нового сегмента к набору всех (конечно, только тех, которые находятся поблизости) ранее вставленных сегментов. Если у меня есть пересечение, мне все равно придется вычесть его из нового сегмента. – Merlin