Два отрезка могут иметь различные положения на плоскости относительно друг друга. Поскольку отрезок ограниченная с двух сторон линия, данная геометрическая фигура предлагает больше вариантов расположения в сравнении с прямой и лучом.
Из вариантов пересечения или непересечения можно выделить несколько особых случаев, например: начала и концы отрезков совпадают, отрезки параллельны и не лежат друг на друге, начало или конец одного отрезка лежит на другом отрезке, совпадают только начальные или конечные точки.
Расположение отрезка в координатной системе и его геометрия, также как прямой и луча, может описываться параметрическими уравнениями. Параметрическое уравнение отрезка(прямой, луча) представляет из себя выражение включающее координату начала, вектор направления и параметр задающий множество точек отрезка(прямой, луча).
Параметр может иметь ограничения или не иметь их.
система из параметрических уравнений:
| x = x0 + vt
| y = y0 + wt
где v и w координаты (x, y) вектора направления
v = x1 - x0
w = y1 + y0
при 0 ≤ t ≤ 1 - уравнения описывают отрезок,
при 0 ≤ t < +∞ - уравнения описывают луч,
при -∞ < t < +∞ - уравнения описывают прямую
Система из 4-х параметрических уравнений позволяет найти точку пересечения двух отрезков. Нахождение точки пересечения отрезков аналогично описанному для двух лучей.
Дано: отрезок AB с координатами начальной и конечной точек - A(2;2) и B(7;3), отрезок CD с координатами - C(4;1) и D(5;6). Найти возможную точку пересечения отрезков AB и CD.
Отрезки имеют точку пересечения если оба параметра отрезков больше или равно нулю и меньше или равно единице.
| x = 2 + (7 - 2)tab | x = 2 + 5tab
| y = 2 + (3 - 2)tab => | y = 2 + tab
| x = 4 + (5 - 4)tcd | x = 4 + tcd
| y = 1 + (6 - 1)tcd | y = 1 + 5tcd
Чтобы узнать есть ли точка пересечения отрезков AB и CD вычислим их параметры:
Отсутствие точки пересечения двух отрезков, безусловно, также подтверждается вычислением.
Дано: отрезок AB с координатами начальной и конечной точек - A(5;4) и B(10;5), отрезок CD с координатами - C(3;3) и D(7;6). Определить: отрезки пересекаются или не пересекаются. Если отрезки не пересекаются, найти мнимую точку пересечения.
Отрезки не пересекаются если хотя бы один из параметров отрицательный или больше единицы. Для вычисления используем систему из параметрических уравнений.
| x = 5 + (10 - 5)tab | x = 5 + 5tab
| y = 4 + (5 - 4)tab => | y = 4 + tab
| x = 3 + (7 - 3)tcd | x = 3 + 4tcd
| y = 3 + (6 - 3)tcd | y = 3 + 3tcd
Чтобы узнать пересекаются отрезки или нет вычислим их параметры, вычисление будет происходит аналогично случаю пересечения описанному выше.
К странице приложен исходник приложения на языке C#. Приложение демонстрирует вычисление точки пересечения двух отрезков. Графика приложения создает различные положения отрезков на плоскости окна. Управление начальными и конечными точками мышью и служебными клавишами.