2013-10-14 2 views
0

У меня есть два треугольника копланера в трехмерном мире, и мне нужно найти многоугольник, который является пересечением между ними. Однако треугольники не всегда расположены вдоль осей, но они всегда будут копланарными. Какой алгоритм можно использовать для поиска этого многоугольника? Я изо всех сил пытаюсь найти ресурс, который получает это. Предпочитаемый C++.3D-треугольник-треугольник Пересечение многоугольника

+0

Вместо этого вы должны задать вопрос о [Mathematrics] (http://math.stackexchange.com/). – Vallentin

ответ

0

Если они лежат в одной плоскости, все они на плоскости в 3D, как это:

р = р0 + p1 * с + p2 * т

Все вершины треугольника на этой плоскости можно выразить как только s и t. Вы можете выбрать p0 как одну из треугольных вершин, а p1 и p2 - как ребра одного треугольника. Тогда решим для s и t для каждого p, являющегося вершиной треугольника. Затем выполняем задачу в 2d с s, t координатами. Как только вы закончите, вы можете просто использовать результат s и t, чтобы вернуться к 3d.

Смежные вопросы