Я пытаюсь найти способ получить линию (две точки в трехмерном пространстве) пересечения между двумя прямоугольниками.
Я столкнулся с этим вопросом: Пересечение между двумя прямоугольниками в 3D
Но это не моя проблема.В этом вопросе прямоугольник рассматривается только как границы (периметр), в то время как я ищу прямоугольник в целом (подумайте о картинной рамке против самой картинки).
Я понялчто в каждом случае будет либо линия пересечения (две точки), либо пересечения вообще не будет.Если пересечение было только на границах, то есть просто точка, в моем случае это можно рассматривать как пересечение без *. 1009 *
Мой сценарий состоит в том, что один из этих прямоугольников представляет собой «статическую» поверхность, которая не может двигаться илименять.Другая представляет собой «динамическую» поверхность, которую я должен адаптировать, чтобы избежать пересечения
Пример:
Как только я получуp1 и p2, которые являются точками в трехмерном пространстве, моя цель состоит в том, чтобы преобразовать динамический прямоугольник в трехмерный многоугольник, который больше не будет пересекать статический прямоугольник, например:
Итак, вы можете понять, почему «пересечения краев» не имеют отношения к моей ситуации.Я превращаю «настоящие» пересечения в пересечения ребер, поэтому любое пересечение ребер не требует от меня ничего с этим делать.
Я только ищу формулу, начиная с двух наборов из 4 точек (прямоугольники), что даст мне две точки линии их пересечения или скажет, что пересечения нет (релевантного).
Каждая формула, найденная мной на этом сайте или другими, не подходитмои потребности, или я не могу вводить произвольные прямоугольники (например, я не могу решить мою проблему с помощью формулы, которая использует плоскости или обрабатывает прямоугольник как просто 4 строки)
Я, конечно,, пытаясь закодировать его (в C #), поэтому любой кодовый ответ является большой помощью, но я уверен, что даже математического ответа мне было бы достаточно, чтобы получить код из него, поэтому я приму ответ, который толькосоставлены из псевдокода или математических формул, если они либо достаточно просты, либо достаточно хорошо объяснены, чтобы я мог понять, что происходитИнж.