Пусть даны два отрезка. Первый задан точками P1(x1;y1) и P2(x2;y2). Второй задан точками P3(x3;y3) и P4(x4;y4).
Взаимное расположение отрезков можно проверить с помощью векторных произведений:
Рассмотрим отрезок P3P4 и точки P1 и P2.
Точка P1 лежит слева от прямой P3P4, для нее векторное произведение v1 > 0, так как векторы положительно ориентированы.
Точка P2 расположена справа от прямой, для нее векторное произведение v2 < 0, так как векторы отрицательно ориентированы.
Для того чтобы точки P1 и P2 лежали по разные стороны от прямой P3P4, достаточно, чтобы выполнялось условие v1v2 < 0 (векторные произведения имели противоположные знаки).
Аналогичные рассуждения можно провести для отрезка P1P2 и точек P3 и P4.
Итак, если v1v2 < 0 и v3v4 < 0, то отрезки пересекаются.
Векторное произведение двух векторов вычисляется по формуле:
где:
ax, ay - координаты первого вектора,
bx, by - координаты второго вектора.
Уравнение прямой, проходящей через две различные точки, заданные своими координатами.
Пусть на прямой заданы две не совпадающие точки:P1 с координатами (x1;y1) и P2 с координатами (x2; y2). Соответственно вектор с началом в точке P1 и концом в точке P2 имеет координаты (x2-x1, y2-y1). Если P(x, y) – произвольная точка на прямой, то координаты вектора P1P равны (x - x1, y – y1).
С помощью векторного произведения условие коллинеарности векторов P1P и P1P2 можно записать так:
|P1P,P1P2|=0, т.е. (x-x1)(y2-y1)-(y-y1)(x2-x1)=0
или
(y2-y1)x + (x1-x2)y + x1(y1-y2) + y1(x2-x1) = 0
Последнее уравнение переписывается следующим образом:
ax + by + c = 0, (1)
где
a = (y2-y1),
b = (x1-x2),
c = x1(y1-y2) + y1(x2-x1)
Итак, прямую можно задать уравнением вида (1).
Как найти точку пересечения прямых?
Очевидное решение состоит в том, чтобы решить систему уравнений прямых:
ax1+by1=-c1
ax2+by2=-c2 (2)
Ввести обозначения:
Здесь D – определитель системы, а Dx,Dy - определители, получающиеся в результате замены столбца коэффициентов при соответствующем неизвестном столбцом свободных членов. Если D ≠ 0, то система (2) является определенной, то есть имеет единственное решение. Это решение можно найти по следующим формулам: x1=Dx/D, y1=Dy/D, которые называются формулами Крамера. Небольшое напоминание, как вычисляется определитель второго порядка. В определителе различают две диагонали: главную и побочную. Главная диагональ состоит из элементов, взятых по направлению от верхнего левого угла определителя в нижний правый угол. Побочная диагональ – из правого верхнего в нижний левый. Определитель второго порядка равен произведению элементов главной диагонали минус произведение элементов побочной диагонали.
Комментарии
Довольно странновато видеть векторное произведение на плоскости. Как это?
В данной статье рассматривается лишь направление вектора векторного произведения, т.е. рассчитывается значение координаты z и проверяется знак. Переводить при этом все вектора с плоскости в трехмерное пространство вовсе не обязательно, поскольку все построения остаются на плоскости.