I Случай компланарных треугольников (расстояние от каждой вершины T1 до П2 (в которой лежит T2) равно нулю)
Проверять все ребра Т1 на пересечение со всеми Т2, если хотя бы одно пересеклось (задача пересечения отрезков из 35 главы, вроде 800 страница Кормена) то соответсвенно треугольники пересекаются.
Если ни одна пара ребер не пересекается то проверить лежит ли один треугольник внутри другого (это задача проверки принадлежности точки треугольнику)
II Случай, когда расстояние от каждой вершины T1 до П2 (в которой лежит T2) не равно нулю и одного знака.
В этом случае за счет того что расстояния от вершин до плоскости одного знака T1 лежит на одной стороне П2 и, следовательно, пересечение невозможно. Поэтому необходимо найти растоянние от точек Т1 до плоскости П2, для этого воспользуемся формулой:
Далее просто проверим знаки каждого расстояния, то есть если все положительные или отрицательные, то теругольники точно не пересекаются.
Optimization: Причем II случай не требует выполнения для обоих треугольников, если II выполнен хотя бы для T1, то пересечения треугольников уже абсолютно точно не будет, поэтому не имеет смысла проверять для треугольника T2.
Пишем уравнение линии пересечения П1 и П2: L = O + t * D
Из II следует, что оба треугольника гарантированно пересекают L.
Эти пересечения образуют интервал на L
Если эти интервалы пересекаются, то треугольники тоже пересекаются.
Таким образом нужно найти пересечение между ребрами V10V11 и V11V12.
Аналогичную величину нужно найти и для T2. Таким образом если эти отрезки в одномере пересекаются, то и треугольники в пространстве пересекаются.
С помощью данной формулы находим точку в которую опускается перепендикуляр из точек треугольника на прямую L:
Optimization: Можно перенести вектора в начало координат и тогда отбросить начальную точку O
Далее мы находим значение параметра t, в точках пересечения треугольника с прямой L:
Следующим шагом мы анологично проводим такие же вычесления для другого треугольника и сравниваем эти точки. То есть если одна точка пересечения лежит в промежутке между двумя другими, то можно сделать вывод, что треугольники однозначно перескаются.