У меня есть две четырехмерные фигуры: многогранник, состоящий из двух треугольников, каждая сторона которого соединена с соответствующей стороной другого треугольника (представьте себе треугольную призму, но не обязательно прямую), и отрезок прямой.
Мне не нужно знать, где они пересекаются, достаточно знать, пересекаются они или нет. Как я могу это проверить?
Вы имеете в виду два тетраэдра с соединенными гранями?
Ваш выпуклый многогранник ограничен несколькими гиперплоскостями уравнения ax+by+cz+dw+e = 0
. Рассматривая точку внутри многогранника, вы можете настроить знаки так, чтобы все внутренние точки проверяли ax+by+cz+dw+e ≥ 0
для всех гиперплоскостей.
Теперь отрезок линии будет иметь параметрические уравнения, такие как
x = (1-t)x'+tx''
y = (1-t)y'+ty''
z = (1-t)z'+tz''
w = (1-t)w'+tw''
и вы можете найти точки встречи линии P'P''
с каждой гиперплоскостью. Вы отбросите те, что t
не находится в [0,1]
, и отбросите те, которые не находятся в положительной стороне других гиперплоскостей. Если вы найдете подходящую точку встречи, то многогранник и отрезок действительно пересекаются.
Как найти точку внутри многогранника, чтобы скорректировать знаки коэффициентов?
Не могли бы вы описать этот многогранник математически? Это действительно похоже на 3D-объект.