В геометрии кривая пересечения — это кривая , общая для двух геометрических объектов. В простейшем случае пересечение двух непараллельных плоскостей в евклидовом 3-пространстве — это линия . В общем случае кривая пересечения состоит из общих точек двух трансверсально пересекающихся поверхностей , что означает, что в любой общей точке нормали к поверхности не параллельны. Это ограничение исключает случаи, когда поверхности соприкасаются или имеют общие части поверхности.
Аналитическое определение кривой пересечения двух поверхностей легко только в простых случаях; например: а) пересечение двух плоскостей, б) плоское сечение квадрики ( сферы, цилиндра, конуса и т. д.), в) пересечение двух квадрики в частных случаях. Для общего случая в литературе приводятся алгоритмы, позволяющие вычислить точки кривой пересечения двух поверхностей. [1]
Точку линии пересечения можно определить, пересекая заданные плоскости плоскостью , перпендикулярной и . Подстановка параметрического представления в уравнения и дает параметры и .
Пример:
Нормальные векторы и направление линии пересечения . Для точки , получаем из формулы выше Следовательно
представляет собой параметрическое представление линии пересечения.
Замечания:
В особых случаях определение линии пересечения методом исключения Гаусса может быть более быстрым.
Если одна (или обе) плоскости заданы параметрически с помощью , то получим нормальный вектор и уравнение будет иметь вид: .
Кривая пересечения плоскости и квадрики
В любом случае кривая пересечения плоскости и квадрики (сферы, цилиндра, конуса,...) является коническим сечением . Подробности см. в [2]. Важное применение плоских сечений квадрик — контурные линии квадрик. В любом случае (параллельная или центральная проекция) контурные линии квадрик являются коническими сечениями. См. ниже и Umrisskonstruktion.
Кривая пересечения цилиндра или конуса и квадрики
Определить точки пересечения прямой с квадрикой (т.е. прямой-сферой ) — простая задача; нужно только решить квадратное уравнение. Так, любая кривая пересечения конуса или цилиндра (они порождены прямыми) с квадрикой состоит из точек пересечения прямых и квадрики (см. рисунки).
На рисунках показаны возможности, возникающие при пересечении цилиндра и сферы:
В первом случае существует только одна кривая пересечения.
Во втором случае показан пример, когда кривая пересечения состоит из двух частей.
В третьем случае сфера и цилиндр касаются друг друга в одной особой точке. Кривая пересечения является самопересекающейся.
Если цилиндр и сфера имеют одинаковый радиус, а середина сферы расположена на оси цилиндра, то кривая пересечения состоит только из особых точек (окружности).
Пересечение сферы и цилиндра: одна часть
Пересечение сферы и цилиндра: две части
Пересечение сферы и цилиндра: кривая с одной особой точкой
Пересечение сферы и цилиндра: касание по особой кривой
Общий случай: маршевый метод
В общем, нет никаких специальных возможностей для использования. Одной из возможностей определения многоугольника точек кривой пересечения двух поверхностей является метод марша (см. раздел Ссылки). Он состоит из двух основных частей:
Первая часть — это алгоритм точки кривой , который определяет начальную точку в окрестности двух поверхностей в точке на кривой пересечения. Алгоритм в основном зависит от представления данных поверхностей. Простейшая ситуация — когда обе поверхности неявно заданы уравнениями , поскольку функции предоставляют информацию о расстояниях до поверхностей и показывают через градиенты путь к поверхностям. Если одна или обе поверхности заданы параметрически, то преимущества неявного случая отсутствуют. В этом случае алгоритм точки кривой использует трудоемкие процедуры, такие как определение точки основания перпендикуляра на поверхности.
Вторая часть метода марширования начинается с первой точки на кривой пересечения, определяет направление кривой пересечения с помощью нормалей поверхности, затем делает шаг с заданной длиной шага в направлении касательной линии, чтобы получить начальную точку для второй точки кривой, ... (см. рисунок).
Подробности алгоритма марша см. [3] .
Метод марша создает для любой начальной точки многоугольник на кривой пересечения. Если кривая пересечения состоит из двух частей, алгоритм должен быть выполнен с использованием второй удобной начальной точки. Алгоритм довольно надежен. Обычно особые точки не являются проблемой, поскольку вероятность встретить именно особую точку очень мала (см. рисунок: пересечение цилиндра и поверхности ).
Пересечение с цилиндром: две части
Пересечение с цилиндром: одна часть
Пересечение с цилиндром: одна особая точка
Применение: контурная линия
Точка контурной линии неявной поверхности с уравнением и параллельной проекцией с направлением должна удовлетворять условию , поскольку должна быть касательным вектором, что означает, что любая контурная точка является точкой пересечения кривой двух неявных поверхностей
.
Для квадрики всегда линейная функция. Следовательно, контурная линия квадрики всегда является плоским сечением (т.е. коническим сечением).
Контур поверхности (см. рисунок) был прочерчен маршевым методом.
Замечание: Определение контурного многоугольника параметрической поверхности требует построения неявной кривой в плоскости параметров. [4]
Условие для точек контура: .
Кривая пересечения двух многогранников
Кривая пересечения двух многогранников представляет собой многоугольник (см. пересечение трех домов). Отображение параметрически заданной поверхности обычно выполняется путем отображения прямоугольной сетки в 3-пространство. Пространственные четырехугольники почти плоские. Поэтому для пересечения двух параметрически заданных поверхностей можно использовать алгоритм пересечения двух многогранников. [5] См. изображение пересекающихся торов.