На чтение 9 мин Просмотров 1.6к.
Содержание
- 2 ответа
- Точка пересечения двух прямых на плоскости
- Точка пересечения двух прямых в пространстве
Добрый день, возник такой вопрос: есть плоскость, в моем случае y = 0, положение точки 1: (x1, y1, z1), и положение точки 2 (x2, y2, z2). Как найти точку пересечения вектора, направленного от точки 1 к точке 2, и плоскости? Затем нужно посчитать расстояние до этой точки пересечения (но это уже не сложно).
задан 20 Май ’14 14:10
@сергей111: одно замечание по поводу терминологии. Обычно не говорят о пересечении вектора и плоскости. Задачу можно рассматривать в трёх вариантах, проводя либо прямую, либо луч, либо отрезок. В принципе, все они решаются однотипным способом.
@сергей111, Если вы получили исчерпывающий ответ, отметьте его как принятый.
2 ответа
Стандартный способ решения таких задач – использовать параметрическую запись прямой, заданной направляющим вектором и точкой: $$eginx=mt+x_0,y=nt+y_0,z=pt+z_0.end$$ Здесь $%(m,n,p)$% – координаты вектора от одной точки до другой, а $%(x_0,y_0,z_0)$% – координаты одной из точек. Подставляете эти значения в уравнение плоскости, откуда находите параметр $%t$%. По этому параметру находите $%(x,y,z)$%.
Введение
Задача
Даны два отрезка, каждый из которых задан двумя точками: (v11, v12), (v21, v22). Необходимо определить, пересекаются ли они, и если пересекаются, найти точку их пересечения.
Решение
Для начала необходимо определить, пересекаются ли отрезки. Необходимое и достаточное условие пересечения, которое должно быть соблюдено для обоих отрезков следующее: конечные точки одного из отрезков должны лежать в разных полуплоскостях, если разделить плоскость линией, на которой лежит второй из отрезков. Продемонстрируем это рисунком.
На левом рисунке (1) показаны два отрезка, для обоих из которых условие соблюдено, и отрезки пересекаются. На правом (2) рисунке условие соблюдено для отрезка b, но для отрезка a оно не соблюдается, соответственно отрезки не пересекаются.
Может показаться, что определить, с какой стороны от линии лежит точка — нетривиальная задача, но у страха глаза велики, и всё не так сложно. Мы знаем, что векторное умножение двух векторов даёт нам третий вектор, направление которого зависит от того, положительный или отрицательный угол между первым и вторым вектором, соответственно такая операция антикоммутативна. А так как все вектора лежат на плоскости X-Y, то их векторное произведение (которое обязано быть перпендикулярным перемножаемым векторам) будет иметь ненулевой только компоненту Z, соответственно и отличие произведений векторов будет только в этой компоненте. Причем при изменении порядка перемножения векторов (читай: угла между перемножаемыми векторами) состоять оно будет исключительно в изменении знака этой компоненты.
Поэтому мы можем умножить попарно-векторно вектор разделяющего отрезка на векторы направленные от начала разделяющего отрезка к обеим точкам проверяемого отрезка.
Если компоненты Z обоих произведений будет иметь различный знак, значит один из углов меньше 0 но больше -180, а второй больше 0 и меньше 180, соответственно точки лежат по разные стороны от прямой. Если компоненты Z обоих произведений имеют одинаковый знак, следовательно и лежат они по одну сторону от прямой.
Если один из компонент Z является нулём, значит мы имеем пограничный случай, когда точка лежит аккурат на проверяемой прямой. Оставим пользователю определять, хочет ли он считать это пересечением.
Затем нам необходимо повторить операцию для другого отрезка и прямой, и убедиться в том, что расположение его конечных точек также удовлетворяет условию.
Итак, если всё хорошо и оба отрезка удовлетворяют условию, значит пересечение существует. Давайте найдём его, и в этом нам также поможет векторное произведение.
Так как в векторном произведении мы имеем ненулевой лишь компоненту Z, то его модуль (длина вектора) будет численно равен именно этой компоненте. Давайте посмотрим, как найти точку пересечения.
Длина векторного произведения векторов a и b (как мы выяснили, численно равная его компоненте Z) равна произведению модулей этих векторов на синус угла между ними (|a| |b| sin(ab)). Соответственно, для конфигурации на рисунке мы имеем следующее: |AB x AC| = |AB||AC|sin(α), и |AB x AD| = |AB||AD| sin(β). |AC|sin(α) является перпендикуляром, опущенным из точки C на отрезок AB, а |AD|sin(β) является перпендикуляром, опущенным из точки D на отрезок AB (катетом ADD’). Так как углы γ и δ — вертикальные углы, то они равны, а значит треугольники PCC’ и PDD’ подобны, а соответственно и длины всех их сторон пропорциональны в равном отношении.
Имея Z1 (AB x AC, а значит |AB||AC|sin(α) ) и Z2 (AB x AD, а значит |AB||AD|sin(β) ), мы можем рассчитать CC’/DD’ (которая будет равна Z1/Z2), а также зная что CC’/DD’ = CP/DP легко можно высчитать местоположение точки P. Лично я делаю это следующим образом:
Px = Cx + (Dx-Cx)*|Z1|/|Z2-Z1|;
Py = Cy + (Dy-Cy)*|Z1|/|Z2-Z1|;
Вот и все. Мне кажется что это действительно очень просто, и элегантно. В заключение хочу привести код функции, реализующий данный алгоритм. В функции использован самодельный шаблон vector , который является шаблоном вектора размерностью int с компонентами типа typename. Желающие легко могут подогнать функцию к своим типам векторов.
Если точка M, является точкой пересечения двух прямых, то она должна принадлежать этим прямым, а ее координаты удовлетворять уравнения этих прямых.
Точка пересечения двух прямых на плоскости
Если система уравнений:
- имеет единственное решение, то прямые пересекаются;
- имеет бесконечное множество решений, то прямые совпадают;
- не имеет решений, то прямые не пересекаются (прямые параллельны между собой)
Решение: Для вычисления координат точки пересечения прямых, решим систему уравнений:
y = 2 x – 1 y = -3 x + 1
Вычтем из первого уравнения второе
y – y = 2 x – 1 – (-3 x + 1) y = -3 x + 1 => 0 = 5 x – 2 y = -3 x + 1
Из первого уравнения найдем значение x
5 x = 2 y = -3 x + 1 => x = 2 5 = 0.4 y = -3 x + 1
Подставим значение x во второе уравнение и найдем значение y
x = 0.4 y = -3·(0.4) + 1 = -1.2 + 1 = -0.2
Ответ. Точка пересечения двух прямых имеет координаты (0.4, -0.2)
Решение: Для вычисления координат точки пересечения прямых, решим систему уравнений:
y = 2 x – 1 x = 2 t + 1 y = t
В первое уравнение подставим значения x и y из второго и третьего уравнений.
t = 2·(2 t + 1) – 1 x = 2 t + 1 y = t => t = 4 t + 1 x = 2 t + 1 y = t =>
-3 t = 1 x = 2 t + 1 y = t => t = – 1 3 x = 2 t + 1 y = t
Подставим значение t во второе и третье уравнение
t = – 1 3 x = 2·(- 1 3 ) + 1 = – 2 3 + 1 = 1 3 y = – 1 3
Ответ. Точка пересечения двух прямых имеет координаты ( 1 3 , – 1 3 )
Решение: Для вычисления координат точки пересечения прямых, решим систему уравнений:
2 x + 3 y = 0 x – 2 3 = y 4
Из второго уравнения выразим y через x
2 x + 3 y = 0 y = 4· x – 2 3
Подставим y в первое уравнение
2 x + 3·4· x – 2 3 = 0 y = 4· x – 2 3 => 2 x + 4·( x – 2) = 0 y = 4· x – 2 3 =>
2 x + 4 x – 8 = 0 y = 4· x – 2 3 => 6 x = 8 y = 4· x – 2 3 =>
x = 8 6 = 4 3 y = 4· x – 2 3 => x = 8 6 = 4 3 y = 4· 4/3 – 2 3 = 4· -2/3 3 = – 8 9
Ответ. Точка пересечения двух прямых имеет координаты ( 4 3 , – 8 9 )
Решение: Обе прямые заданы уравнениями с угловым коэффициентом. Так как k 1 = k 2 = 2, то прямые параллельны. Так как эти прямые не совпадают то точек пересечения нет.
Решим также эту задачу используя систему уравнений:
y = 2 x – 1 y = 2 x + 1
Вычтем из первого уравнения второе
y – y = 2 x – 1 – (2 x + 1) y = -3 x + 1 => 0 = -2 y = -3 x + 1
В первом уравнении получили противоречие (0 ≠ -2), значит система не имеет решений – отсутствуют точки пересечения прямых (прямые параллельны).
Ответ. Прямые не пересекаются (прямые параллельны).
Решение: Подставим координаты точки N в уравнения прямых.
Ответ. Так как оба уравнения превратились в тождества, то точка N – точка пересечения этих прямых.
Точка пересечения двух прямых в пространстве
Если система уравнений:
- имеет единственное решение, то прямые пересекаются;
- имеет бесконечное множество решений, то прямые совпадают;
- не имеет решений, то прямые не пересекаются (прямые параллельны или скрещиваются между собой)
Решение: Составим систему уравнений
x – 1 = a y – 1 = a z – 1 = a x – 3 -2 = b 2 – y = b z = b => x = a + 1 y = a + 1 z = a + 1 x – 3 -2 = b 2 – y = b z = b =>
Подставим значения x , y , z из 1, 2, 3 уравнений в 4, 5, 6 уравнения
x = a + 1 y = a + 1 z = a + 1 a + 1 – 3 -2 = b 2 – ( a + 1) = b a + 1 = b => x = a + 1 y = a + 1 z = a + 1 a – 2 -2 = b 1 – a = b a + 1 = b
К шестому уравнению добавим пятое уравнение
x = a + 1 y = a + 1 z = a + 1 a – 2 -2 = b 1 – a = b a + 1 + (1 – a ) = b + b => x = a + 1 y = a + 1 z = a + 1 a – 2 -2 = b 1 – a = b b = 1
Подставим значение b в четвертое и пятое уравнения
x = a + 1 y = a + 1 z = a + 1 a – 2 -2 = 1 1 – a = 1 b = 1 => x = a + 1 y = a + 1 z = a + 1 a – 2 = -2 a = 0 b = 1 =>
x = a + 1 y = a + 1 z = a + 1 a = 0 a = 0 b = 1 => x = 0 + 1 = 1 y = 0 + 1 = 1 z = 0 + 1 = 1 a = 0 a = 0 b = 1
Ответ. Прямые пересекаются в точке с координатами (1, 1, 1).
Решение: Составим систему уравнений заменив во втором уравнении параметр t на a
x = 2 t – 3 y = t z = – t + 2 x = a + 1 y = 3 a – 2 z = 3
Подставим значения x , y , z из 1, 2, 3 уравнений в 4, 5, 6 уравнения
x = 2 t – 3 y = t z = – t + 2 2 t – 3 = a + 1 t = 3 a – 2 – t + 2 = 3 => x = 2 t – 3 y = t z = – t + 2 2 t = a + 4 t = 3 a – 2 t = -1 =>
Подставим значение t из шестого уравнения в остальные уравнения
x = 2·(-1) – 3 y = (-1) z = -(-1) + 2 2·(-1) = a + 4 -1 = 3 a – 2 t = -1 => x = -5 y = -1 z = 3 a = -6 a = 1 3 t = -1
Ответ. Так как -6 ≠ 1 3 , то прямые не пересекаются.
Содержание:
Векторная алгебра
Векторная алгебра – это раздел векторного исчисления, изучающий линейные операции с векторами и их геометрические свойства; часть линейной алгебры, занимающаяся векторными пространствами; различные векторные алгебры XIX века (например, кватернионов, бикватернионов, сплит-кватернионов).
Векторы и линейные операции над ними
Займемся теперь таким важным как в самой математике, так и в ее многочисленных приложениях, понятием вектора.
Определение: Вектором, на плоскости или в пространстве называется отрезок прямой с заданным на нем направлением, т. е. одна из его граничных точек считается начальной, а вторая – конечной.
Обозначать векторы мы будем строчными латинскими буквами
Длина отрезка, изображающего вектор называется его длиной и обозначается через Вектор с совпадающими начальной и конечной точками называется нуль-вектором. Для него используется обозначение
По определению, два вектора считаются равными, если один из них можно преобразовать в другой с помощью параллельного переноса.
Учитывая приведенное определение, всюду в дальнейшем мы без специальных оговорок будем перемещать вектор параллельным переносом в любую удобную для нас точку.
Два вектора называются коллинеарными (обозначение ), если отрезки их изображающие параллельны.
Аналогично, векторы а и b называются ортогональными (обозначение ), если соответствующие отрезки перпендикулярны.
Три вектора называются компланарными, если после приведения их общему началу, они будут расположены в одной плоскости.
Углом между векторами приведенными к общему началу, называется меньший из двух углов между соответствующими отрезками. Обозначать угол мы будем строчными греческими буквами … или через
Два ненулевых вектора мы будем считать одинаково направленными, если и противоположно направленными, если
Введем теперь линейные операции над векторами.
а) Умножение числа на вектор.
Произведением действительного числа на векторназывается вектор длина которого равна а направление его совпадает с направлением вектора если и имеет противоположное с ним направление, если Если или
В частности, вектор обозначается через и называется вектором, противоположным вектору
Если то произведение мы будем иногда записывать в виде
Из приведенного определения сразу же следует, что коллинеарные векторы линейно связаны, т. е. существует константа такая,что В качестве такой константы следует
взять число Если то В частности, если то вектором единичной длины с направлением данного вектора является вектор
b) Сложение векторов.
Суммой двух векторов называется вектор который находится по правилу треугольника
или по равносильному ему правилу параллелограмма
Вектор называется разностью векторов
Свойства линейных операций над векторами аналогичны соответствующим свойствам действительных чисел.
Проекцией вектора на вектор называется число
Геометрически очевидны следующие свойства проекции:
Пример №1
Пусть Е и F – середины сторон AD и ВС соответственно выпуклого четырехугольника ABCD. Доказать, что
Доказательство. Из четырехугольников EDCF и EABF по правил}’ сложения векторов получим:
Сложив данные равенства и учитывая, что будем иметь:
что и требовалось.
Базис и декартова система координат
Определение: Базисом на плоскости называется упорядоченная пара неколлинеарных векторов. Базисом в пространстве называется упорядоченная тройка некомпланарных векторов.
Обозначение: — базис на плоскости, — базис в пространстве. Всюду в дальнейшем, не оговаривая это особо, будем рассматривать только положительно ориентированные базисы, т. е. базисы, у которых кратчайший поворот от вектора к вектору совершается против часовой стрелки, если наблюдение ведется со стороны вектораСформулируем теперь фундаментальное свойство базиса.
Теорема. Любой вектор единственным образом разлагается по базису, т. е. представляется в виде где действительные числа – координаты вектора в базисе
Приведем геометрическое доказательство этого утверждения.
Вектор можно единственным образом представить как большую диагональ параллелепипеда, ребра которого, параллельны базисным векторам. Тогда по правилу сложения векторов В виду коллинеарности векторов соответствующим базисным векторам, мы можем записать, что — некоторые действительные числа. Отсюда и следует искомое разложение.
Если базис зафиксирован, то факт, что вектор а в этом базисе имеет координаты коротко записывается как
Из доказанной теоремы следует, что при выполнении линейных операций над векторами точно также преобразуются и их координаты, т. е. если если Отсюда, в частности, следует, что два вектора коллинеарны тогда и только тогда, когда их координаты пропорциональны, т. е.
Рассмотрим теперь ортонормированный базис т.е. базис, в котором все векторы имеют единичную длин}’ и попарно ортогональны. Векторы этого базиса мы будем называть ортами. Пусть в этом базисе
Как видно из чертежа, координаты вектора в ортонормированном базисе представляют собой проекции этого вектора на соответствующие орты. т. е.
Величины т. е. косинусы углов, которые образует данный вектор с ортами к соответственно, называются направляющими косинусами вектора Единичный вектор имеет координаты
Очевидно также, что
Свяжем теперь с ортонормированным базисом декартову (прямоугольную) систему координат. Для этого поместим начала ортов в некоторую точку О, ось Ох (абсцисс) направим вдоль орта ось (ординат) — вдоль орта наконец, ось (аппликат) направим вдоль орта
В выбранной системе координат координаты радиуса-вектора мы будем называть координатами точки М и записывать
Если известны координаты начальной и конечной точек вектора, то из равенства слезет, что его координаты равны
и, значит, расстояние между точками вычисляется по формуле
Найдем теперь координаты точки М, делящей отрезок с концами в точках в данном
отношении Так как Отсюда, переходя к координатам получим:
Следовательно, координаты искомой точки вычисляются по формулам:
Найдем, в частности, координаты середины отрезка. Здесь А = 1, поэтому
Пример №2
Треугольник задан координатами своих вершин Найти координаты точки пересечения его медиан. Решение.
Пусть – середина отрезка – точка пересечения медиан. Тогда
По известному свойству точки пересечения медиан и потому
Подставив сюда найденные координаты точки ползучим:
Таким образом, координаты точки пересечения медиан треугольника равны средним арифметическим соответствующих координат его вершин.
Замечание. Базисом n-мерного пространства называется упорядоченная совокупность n векторов
обладающая тем свойством, что любой вектор единственным образом представляется в виде линейной комбинации базисных векторов (1), т.е. существуют действительные числа (координаты векторав базисе (1)) такие, что
В качестве базиса в мы можем взять, например, векторы
так как, очевидно, любой вектор однозначно представляется в виде (2).
Скалярное произведение векторов
Определение: Скалярным произведением векторов называется число
Из этого определения сразу же следует, что
и таким образом, если один из векторов имеет единичную длину, то их скалярное произведение равно проекции второго вектора на единичный.
Отметим основные свойства скалярного произведения.
Первые два и последнее свойства немедленно следуют из определения скалярного произведения, а третье и четвертое – из сформулированных в §1 свойств проекции.
Найдем теперь представление скалярного произведения в координатах. Пусть в орто-нормированном базисе векторы имеют координаты Заметив, что по свойствам 1) и 5) скалярного произведения
перемножим векторыскалярно, используя свойства 2) – 4):
Таким образом, скалярное произведение в ортонормированном базисе равно сумме произведений соответствующих координат векторов.
Пример №3
Разложить вектор на две ортогональные составляющие, одна из которых коллинеарна вектору
Решение.
Из чертежа следует, что – искомое разложение. Найдем векторы Составляющая коллинеарная вектору равна, очевидно, вектору проекции и, следовательно,
Тогда вторая ортогональная составляющая вектора равна
В заключение параграфа рассмотрим одно простое приложение скалярного произведения в механике. Пусть под действием постоянной силы материальная тотп<а переместилась по прямой из положения В в положение С.
Найдем работу этой силы. Для этого разложим вектор силы на две ортогональные составляющие. одна из которых коллинеарна вектору перемещения Тогда
Составляющая работы не совершает, следовательно, работа силы равна работе составляющей и, таким образом,
Окончательно, работа силы, под действием которой материальная точка перемещается по отрезку прямой из положения В в положение С, вычисляется по формуле:
Замечание. Скалярным произведением векторов n-мерного пространстваназывается число равное произведению первого вектора, записанного строкой, на второй вектор, записанный столбцом. Таким образом, если
то
Несложной проверкой мы можем убедиться в том, что таким образом определенное скалярное произведение в обладает свойствами 2) — 4) скалярного произведения векторов на плоскости или в пространстве.
Длиной вектора называется число
Векторы называются ортогональными, если Векторы
составляют ортонормированный базис пространства , так как каждый из этих векторов имеет единичную длину и все они попарно ортогональны.
Любой вектор мы можем рассматривать как точку
n-мерного пространства с координатами
Взяв еще одну точку соответствующую вектору мы под расстоянием между точками М и N будем понимать длину вектора т. е. число
Таким образом переопределенное пространство с расстоянием (2) между точками мы будем называть евклидовым пространством, сохранив для него то же обозначение.
Совокупность точки О(0.0,…, 0) и ортонормированного базиса (1) называется декартовой системой координат евклидова пространства R”. Точка 0(0,0,… ,0) называется, естественно, началом координат.
Векторное произведение векторов
Определение: Векторным произведением некоялинеарных векторов называется вектор такой, что
Из этого определения следует, что площадь параллелограмма, построенного на векторах и равна длине векторного произведения , т. е.
Сформулируем основные свойства векторного произведения.
Первые два свойства очевидным образом следуют из определения векторного произведения. Доказательство третьего ввиду его громоздкости мы приводить не будем.
Найдем формулу для вычисления векторного произведения в координатах. Пусть векторы и в ортонормированном базисе имеют координаты Учитывая, tito по определению векторного произведения
раскроем скобки в векторном произведении принимая во внимание свойства 1) – 3):
Полученный вектор мы можем записать в виде следующего символического определителя.
вычислять который удобно разложением по первой строке.
Пример №4
Найти составляющую вектора , ортогональную плоскости векторов .
Решение.
Из чертежа видно, что искомая составляющая представляет собой вектор проекции данного вектора на векторное произведение и, следовательно.
Переходим к вычислениям:
Тогда
Среди многочисленных приложений векторного произведения отметим его применение в механике при вычислении момента силы.
Итак, пусть сила приложена к материальной точке В. Моментом этой силы относительно неподвижной точки С называется вектор
Смешанное произведение векторов
Определение: Смешанным произведением трех векторов называется число
Выясним геометрический смысл смешанного произведения для тройки некомпланарных векторов.
По определению смешанного произведения
Поскольку – площадь параллелограмма, построенного на векторах (§4)
-высота параллелепипеда построенного на векторах то
– объем параллелепипеда. Таким образом, абсолютная величина смешанного произведения трех векторов равна объему параллелепипеда, построенного на этих векторах.
Если векторы заданы своими координатами в ортонормированном базисе , т.е. то учитывая формулы для вычисления скалярного и векторного произведений (§3, §4), получим:
Следовательно (глава I. §2, пункт 3, свойство 7)), в координатах смешанное произведение вычисляется по формуле:
Докажем, пользуясь этой формулой, некоторые свойства смешанного произведения.
что следует из свойства 4) определителя (глава I. §2, пункт 3). Таким образом, в смешанном произведении можно менять местами знаки скалярного и векторного произведения, и поэтому для него используется более короткое обозначение . которым мы и будем пользоваться в дальнейшем.
Эти свойства смешанного произведения также являются прямыми следствиями соответствующих свойств определителя.
Докажем еще одно, геометрическое свойство смешанного произведения.
Теорема. Три вектора компланарны тогда и только тогда, когда их смешанное произведение равно нулю.
Доказательство. Докажем необходимость условия теоремы. Пусть векторы компланарны. Очевидно, что, если хотя бы один из них равен нулю, то и их смешанное произведение равно нулю. Если же все они ненулевые, то, ввиду их компланарности, векторное произведение ортогонально вектору с и, следовательно, . Аналогично проверяется достаточность условия теоремы.
Следствие. Три вектора образуют базис в том и только в том случае, когда их смешанное произведение отлично от нуля.
Заметим, кроме того, что, если , то угол между векторами -острый (тупой) и, следовательно, базис является положительно (отрицательно) ориентированным.
Пример №5
Доказать, что пять точек
расположены в одной плоскости.
Решение. Рассмотрим векторы Так как
то по доказанной выше теореме эти векторы компланарны и, стало быть. точки находятся в одной плоскости Аналогично покажем, что и точки также принадлежат одной плоскости . Действительно,
так как первая и третья строки в определителе пропорциональны. Плоскости имеют три общие точки , следовательно, они совпадают и, таким образом, все пять точек расположены в одной плоскости.
Векторы и линейные операции над ними
Определение: Вектором называется направленный отрезок (рис. 1).
А – начало, В – конец вектора
Рис. 1
Так как вектор определяется его началом и концом, то можно сформулировать эквивалентное данному определение.
Определение: Вектором называется упорядоченная пара точек.
Определение: Длина вектора – расстояние между его началом и концом.
Определение: Два вектора называются равными, если они имеют равные длины и одинаково направлены. При этом одинаково направленными называются векторы, лежащие на параллельных прямых и имеющие одинаковые направления.
Из этого определения следует, что точка приложения вектора значения не имеет, то есть вектор не изменяется, если его перемещать параллельно самому себе, сохраняя длину. Такие векторы называются свободными.
Если начало и конец вектора совпадают, он называется нулевым:
– нулевой вектор: его направление не определено, а длина .
Определение: Векторы называются коллинеарными, если они лежат на параллельных прямых:
Так как направление нулевого вектора не определено, то он коллинеарен любому другому.
Определение: Векторы называются компланарными, если они параллельны одной плоскости.
Нулевой вектор компланарен любой системе компланарных векторов.
Линейные операции над векторами
Линейными называются операции сложения векторов и умножения на число.
Сложение
а) Правило параллелограмма (рис.2): начала совмещаются в одной точке, и – диагональ параллелограмма, построенного на .
б) Правило треугольника (рис. 3): начало совмещается с концом направлен от начала к концу .
в) Правило сложения нескольких векторов (рис. 4).
Вектор замыкает ломаную линию, построенную таким образом: конец предыдущего вектора совмещается с началом последующего и направлен от начала к концу .
Умножение на число
Определение: Произведением вектора на число называется вектор , aудовлетворяющий условиям:
а)
б)
в) , если ,a если , если .
Произведение называется вектором, противоположным вектору . Очевидно, .
Определение: Разностью называется сумма вектора и вектора, противоположного (рис. 5).
Начала совмещаются в одной точке, и направлен от конца к концу .
Свойства линейных операций
Определение: Результат конечного числа линейных операций над векторами называется их линейной комбинацией: – линейная комбинация векторов с коэффициентами
Пример №6
Пусть М – точка пересечения медиан треугольника АВС, а О – произвольная точка пространства. Представить как линейную комбинацию
(рис. 6).
. Так как точка пересечения медиан треугольника делит их в отношении 2:1, считая от вершины, то из правила параллелограмма следует, что
По правилу треугольника , то есть – линейная комбинация с коэффициентами
Теорема: Пусть – неколлинеарные векторы. Тогда любой компланарный с ними вектор c может быть представлен в виде
где коэффициенты (2.1) определяются единственным образом.
Представление вектора в виде (2.1) называется разложением его по двум неколлинеарным векторам.
Доказательство:
- Пусть среди есть два коллинеарных, например:
- Пусть среди коллинеарных нет, тогда совместим начала всех трех векторов в одной точке. Построим параллелограмм, диагональ которого совпадает с , а стороны параллельны прямым, на которых лежат (рис. 7).
Тогда c но Поэтому
Докажем единственность разложения. Предположим, что и Тогда, вычитая одно равенство из другого, получим:
Если , что противоречит условию. Теорема доказана.
Теорема: Пусть – некомпланарные векторы. Тогда любой вектор может быть представлен в виде
причем единственным образом.
Представление вектора в виде (2.2) называется разложением его по трем некомпланарным.
Доказать самостоятельно.
Проекция вектора на ось
Проекция вектора на ось — это скалярная величина (число), равная длине геометрической проекции вектора, если направление оси и геометрической проекции совпадают; или число, противоположное длине геометрической проекции вектора, если направления геометрической проекции и оси — противоположные.
Координаты вектора
Осью называется направленная прямая.
Определение: Ортом оси называется единичный вектор
направление которого совпадает с направлением оси.
Определение: Ортогональной проекцией точки М на ось называется основание перпендикуляра, опущенного из М на .
Определение: Ортогональной проекцией вектора на ось называется длина отрезка этой оси, заключенного между ортогональными проекциями его начала и конца, взятая со знаком «+», если направление вектора совпадает с направлением оси, и со знаком «–», если эти направления противоположны (рис. 8).
Определение: Углом между вектором и осью называется угол, на который нужно повернуть в положительном направлении ось до совпадения ее направления с направлением вектора (положительным считается поворот против часовой стрелки).
Очевидно, проекцию вектора на ось можно найти по формуле
Можно показать, что проекция линейной комбинации векторов равна та-
кой же линейной комбинации их проекций:
В частности, проекция суммы векторов равна сумме их проекций:
Рассмотрим прямоугольную декартову систему координат ХОY. Обозначим – орт оси ОХ, – орт оси OY. Выберем точку A , и пусть x, y – проекции ее на ОХ и OY,то есть координаты этой точки (рис. 9).
Аналогично в пространственной системе OXYZ – орты координатных осей) (рис. 10):
– разложение по ортам координатных осей (единственно по теореме 2).
Таким образом, если задана прямоугольная декартова система координат (пдск), то со всяким пространственным вектором можно связать три числа x,y,z (или два числа x, y, если вектор плоский), которые являются коэффициентами разложения этого вектора по ортам координатных осей, а также являются проекциями этого вектора на координатные оси.
Определение: Координатами вектора в любой пдск называются коэффициенты в разложении этого вектора по ортам координатных осей.
Таким образом, можно дать еще одно определение вектора.
Определение: Вектором называется упорядоченная тройка чисел (упорядоченная пара, если вектор плоский).
Пример №7
Если и наоборот, если
Так как, с одной стороны, вектор – объект, имеющий длину и направление, а с другой, – упорядоченная тройка чисел, то, зная длину и направление, можно определить его координаты и наоборот. Направление вектора в заданной системе координат характеризуется его направляющими косинусами (рис. 11):
Из этих формул очевидно следует основное свойство направляющих косинусов:
Если известны длина и направляющие косинусы вектора, то его координаты вычисляются по формулам:
Пусть AB – произвольный вектор в системе OXYZ, OA,OB – радиус-векторы его начала и конца,
Тогда
(см. свойства линейных операций над векторами). Таким образом,, то есть для определения координат вектора надо из координат его конца вычесть координаты начала.
Определение: Базисом в пространстве называется любая упорядоченная тройка некомпланарных векторов (рис. 13).
Если – базис, то – другой базис, так как изменился порядок следования векторов.
Определение: Базис называется прямоугольным декартовым, если базисные векторы взаимно перпендикулярны и длина каждого равна 1.
Такой базис принято обозначать
Из теоремы 2 следует, что всякий вектор может быть разложен по базису , то есть представлен в виде: . Числа x,y,z называются координатами в базисе .
Определение: Базисом на плоскости называется любая упорядоченная пара неколлинеарных векторов.
Если – базис, то представление вектора в виде называется разложением по базису и x, y – координаты в этом базисе.
Определение: Базисом на прямой называется любой ненулевой вектор этой прямой.
Деление отрезка в данном отношении
Рассмотрим задачу: дан отрезок AB . Найти точку D , которая делит AB в заданном отношении (рис. 14).
Введем прямоугольную декартову систему координат (пдск) OXYZ, тогда
Обозначим
Так как (лежат на одной прямой) и то
Переходя от этого векторного равенства к равенству соответствующих координат, получим:
ЗАМЕЧАНИЕ 1. Если D – середина отрезка AB , то k 1, поэтому
ЗАМЕЧАНИЕ 2. Если k < 0, , то точка D лежит за пределами AB : так как , то при
В этом случае
Скалярное произведение векторов
Определение: Скалярным произведением векторов называется скаляр (число), равный
Скалярное произведение обозначается так: или
Так как (рис. 16) или то
Свойства скалярного произведения
1. – очевидно из определения.
2.
Доказательство:
3.
Доказательство:
а) – очевидно.
б)
в) В этом случае
4.
Отсюда следует, что
Необходимым и достаточным условием перпендикулярности векторов является равенство нулю их скалярного произведения:
5.
Доказательство:
а) пусть
б) пусть
В первом и втором случаях один из сомножителей – нулевой вектор. Его направление не определено, поэтому можно считать, что . В третьем случае
Используя свойства 4 и 5, составим таблицу вычисления скалярного произведения базисных векторов
Пусть в некоторой пдск . Найдем скалярное произведение этих векторов:
Таким образом,
Пример №8
Найти, при каком значении x векторы перпендикулярны.
Два вектора перпендикулярны тогда и только тогда, когда их скалярное произведение равно нулю (свойство 5), поэтому найдем скалярное произведение по формуле (2.5):
Пример №9
Найти угол между биссектрисой AD и медианой если
Так как
то
Найдем координаты векторов . Точка M – середина BC , поэтому по формулам (2.4)
По теореме о биссектрисе внутреннего угла треугольника
Чтобы найти k , вычислим длины AC и AB :
Разделим отрезок CB в данном отношении по формулам (2.3):
отсюда
Заметим, что . Это замечание позволит нам не иметь дело с дробями, так как
Пример №10
Найти
Воспользуемся свойствами 1–4 скалярного произведения:
Отсюда
ЗАМЕЧАНИЕ. Так как работа силы по перемещению материальной точки вдоль вектора вычисляется по формуле
Определение векторного произведения векторов
Определение: Тройка некомпланарных векторов , имеющих общее начало, называется правой (левой), если конца третьего вектора c вращение первого вектора ко второму вектору по кратчайшему пути наблюдается против (по) часовой стрелки (рис. 17).
Определение: Векторным произведением вектора на вектор называется вектор, удовлетворяющий условиям:
- ( перпендикулярен плоскости векторов и ).
- Направление таково, что тройка– правая.
Векторное произведение обозначается так:
ЗАМЕЧАНИЕ 1. Геометрический смысл векторного произведения: длина векторного произведения численно равна площади параллелограмма, построенного на этих векторах.
Это следует из того, что площадь параллелограмма равна произведению длин смежных сторон на синус угла между ними.
Заметим, что
Таким образом, длину вектора векторного произведения можно вычислить с помощью скалярного произведения по формуле
Пример №11
Найти площадь параллелограмма, построенного на векторах
По формуле (2.7):
ЗАМЕЧАНИЕ 2. Направление вектора можно также (кроме п.2) определить по правилу винта: направление вектора совпадает с направлением поступательного движения винта в правой резьбой при вращении его в сторону поворота первого вектора ко второму вектору по кратчайшему пути (рис. 19).
Свойства векторного произведения
1.
Доказательство:
а)пусть или . В первом и втором случаях один из сомножителей – нулевой вектор.
Его направление не определено, поэтому можно считать, что . Если
б)пусть
2.
Доказательство: По определению направления векторов и противоположны, а модули равны, значит, векторы отличаются лишь знаком.
3. – свойство линейности векторного произведения по первому сомножителю (без доказательства).
Векторное произведение также линейно и по второму сомножителю.
Используя определение и свойства 1 и 2, составим таблицу вычисления векторного произведения базисных векторов : векторы, стоящие в левом столбце, умножаются на соответствующие векторы верхней строки (рис. 20).
Пусть в некоторой пдск . Найдем векторное произведение этих векторов:
Заметим, что это выражение можно получить, вычислив символический определитель (сделать это можно по-разному, но лучше разложить по первой строке):
Таким образом,
Пример №12
Вычислить векторное произведение векторов
По формуле (2.8):
Заметим, что площадь треугольника, построенного на векторах , можно вычислить двумя способами: как половину длины найденного вектора или используя формулу (2.7). Заметим, что
или
Пример №13
Вычислить площадь параллелограмма, построенного на векторах
Так как , то вычислим векторное произведение, используя его свойства:
Отсюда
Определение смешанного произведения векторов
Определение: Смешанным произведением векторов называется число – скалярное произведение a на векторное произведение
Смешанное произведение обозначается так:
Пусть в некоторой пдск
Обозначим
Тогда
по 7 свойству определителей.
Таким образом,
По определению скалярного произведения
Совместим начала всех трех векторов в одной точке. Тогда (рис. 21)
– площадь параллелограмма,
– высота параллелепипеда,
– объем параллелепипеда.
Геометрический смысл смешанного произведения: модуль смешанного произведения численно равен объему параллелепипеда, построенного на векторах-сомножителях, при этом – правая тройка, и – левая тройка.
Свойства смешанного произведения
1. Необходимым и достаточным условием компланарности трех векторов является равенство нулю их смешанного произведения: компланарны
Доказательство: а) компланарны
Если компланарны, то на них нельзя построить параллелепипед, а потому
б)компланарны.
Во всех трех случаях компланарны: в частности, если параллелен плоскости векторов , что означает их компланарность.
2. Круговая перестановка сомножителей в смешанном произведении не изменяет его величины. Перестановка соседних сомножителей изменяет его знак, не изменяя абсолютной величины:
Доказательство следует из формулы (2.9) и свойства 3 определителей, при этом круговая перестановка сомножителей соответствует двойной перемене строк в определителе, а потому оставляет его неизменным.
3. В смешанном произведении векторное и скалярное произведения можно менять местами:
Доказательство: из свойства 2 смешанного произведения и свойства 1 скалярного получим:
4. Смешанное произведение линейно по каждому из трех сомножителей.
– линейность по первому сомножителю.
Доказательство следует из формулы (2.9) и свойств определителей.
Пример №14
Найти объем тетраэдра, построенного на векторах
, и его высоту, перпендикулярную плоскости векторов .
Объем тетраэдра в 6 раз меньше объема параллелепипеда, построенного на этих векторах, поэтому
Отсюда (заметим, что – левая тройка, так как смешанное произведение отрицательно).
Чтобы найти высоту, воспользуемся формулой
По формуле (2.7)
Лекции по предметам:
- Математика
- Алгебра
- Линейная алгебра
- Геометрия
- Аналитическая геометрия
- Высшая математика
- Дискретная математика
- Математический анализ
- Теория вероятностей
- Математическая статистика
- Математическая логика
Пусть даны два отрезка. Первый задан точками 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, которые называются формулами Крамера. Небольшое напоминание, как вычисляется определитель второго порядка. В определителе различают две диагонали: главную и побочную. Главная диагональ состоит из элементов, взятых по направлению от верхнего левого угла определителя в нижний правый угол. Побочная диагональ – из правого верхнего в нижний левый. Определитель второго порядка равен произведению элементов главной диагонали минус произведение элементов побочной диагонали.
Точка пересечения 2 векторов
Координаты x,y я то нашел, спроецировав на плоскость вектора.
stl
А что такое пересечение векторов?
Есть обобщенная задача — поиск двух БЛИЖАЙШИХ ТОЧЕК у двух отрезков в пространстве. Я щас не дома и не могу показать код, да и в двух словах алгоритм не опишешь. Гугли.
stl
>Даны 2 вектора: x1,y1,z1; x2,y2,z2;
Как найти точку пересечения?
Элементарно: (0; 0; 0)
если честно , я не понял ваших ответов. Мне нужны не ближайшие точки, и причем тут 0,0,0 я тоже не понял.
2 вектора точно пересекаются в пространстве в какой-то точке. У векторов есть координаты начала и конца. Найти x,y точки пересечения легко — проецируем на экран, отбрасывая z, находим.
А как найти координату z, если она может потребоваться в дальнейшем?
stl
>2 вектора точно пересекаются в пространстве в какой-то точке. У векторов есть
>координаты начала и конца.
У настоящих брутальных векторов координаты начала находятся в точке
ты у каждого вектора указал лишь один набор координат. потому их от (0,0,0) и отсчитали 😉 вопрос надо правильней формулировать. тебя интересует пересение ОТРЕЗКОВ? ну так элементарно, пусть отрезки
(x1, y1, z1) — (x2, y2, z2) и (a1, b1, c1) — (a2, b2, c2)
тогда уравнение первого
x = x1*t + x2*(1 — t)
y = y1*t + y2*(1 — t)
z = z2*t + z2*(1 — t)
аналогично для второго
x = a1*s + a2*(1 — s)
y = b1*s + b2*(1 — s)
z = c2*s + c2*(1 — s)
приравниваем x,y,z, получаем
x1 t + x2 (1 — t) = a1 s + a2 (1 — s)
y1 t + y2 (1 — t) = b1 s + b2 (1 — s)
система из 2 уравнений с 2мя неизвестными, решаем, подставляем s и t во третьи уравнения, убеждаемся, что z-координаты совпали тоже (если нет, то и пересечения нет)
stl
>У векторов есть координаты начала и конца
А нету!
Вектор это упорядоченное конечное множество своих координат.
Вектор может представлять множество отрезков, которые будут по длине равны абсолютному значению вектора и паралельны.
И вот разница координат отрезков следовательно равна координатам вектора.
Если проще, вектор — это не отрезок. Вектор — это точка. А его направление — это направление отрезка из начала координат в эту точку.
Tweedle Dee
>ты у каждого вектора указал лишь один набор координат. потому их от (0,0,0) и отсчитали 😉
Он указал правильно а отсчитывают от нулей всегда.
>У настоящих брутальных векторов координаты начала находятся в точке
Координаты у труЪ-математиков задаются либо (0; 0; 0) либо <0, 0, 0> А вот — смахивает на неупорядоченное множество.
stl
Короче объясняю.
Такс. Если у тебя есть отрезок <(x1; y1; z1), (x2; y2; z2)> то вектор, который задаст множество отрезков, равных по модулю длине твоего отрезка и паралельных ему равен (x2 — x1; y2 — y1; z2 — z1). И любой отрезок, входящий в это множество будет равен <(c1 + x1; c2 + y1; c3 + z1), (c1 + x2; c2 + y2; c3 + z2)>,
Отрезок, совпадающий с радиус-вектором на графике будет равен <(0; 0; 0), <x, y, z>>.
Где c1, c2, c3 — произвольные константы из множества декартовой степени 1/n пространства, которому принадлежит вектор, где n — мерность пространства. Например пространство R^3 возводим в декартовую степень 1/3 получаем R — множество действительных чисел (частный случай для трёхмерного пространства).
x, y, z — координаты вектора, равные x2 — x1, y2 — y1 и z2 — z1 соответственно.
ПРАВКА: поумничал малость
ПРАВКА: афрографея
ПРАВКА: поумничал малость
Векторы в пространстве — не пересекаются! Их пересечение возможно только при строгом и абсолютно точном соотношении параметров (как минимум, “лежат в одной плоскости”). Однако, поскольку в реальном мире имеют место квантовые флуктуации, а малейшего отклонения параметра достаточно для разрушения необходимого равенства (в случае компутера эта особенность физического мира симулируется неабсолютной точностью вычислений), то вероятность пересечения изничтожающе стремится к нулю.
А поэтому мораль такова: не надо математически эстетствовать, ибо жизнь сурова. А надо взять и найти, как предлагали в посте 2, ближайшие точки A и B обоих векторов. Если расстояние AB меньше некоторого епсилон (скажем, 0.001), то можно условно считать, что вектора пересеклись, и точка пересечения — середина AB. Если же больше епсилона — значит, не пересеклись.
векторная-геометрия — Найти точку пересечения вектора и плоскости
Добрый день, возник такой вопрос: есть плоскость, в моем случае y = 0, положение точки 1: (x1, y1, z1), и положение точки 2 (x2, y2, z2). Как найти точку пересечения вектора, направленного от точки 1 к точке 2, и плоскости? Затем нужно посчитать расстояние до этой точки пересечения (но это уже не сложно).
задан 20 Май ’14 14:10
@сергей111: одно замечание по поводу терминологии. Обычно не говорят о пересечении вектора и плоскости. Задачу можно рассматривать в трёх вариантах, проводя либо прямую, либо луч, либо отрезок. В принципе, все они решаются однотипным способом.
@сергей111, Если вы получили исчерпывающий ответ, отметьте его как принятый.
2 ответа
Стандартный способ решения таких задач — использовать параметрическую запись прямой, заданной направляющим вектором и точкой: $$beginx=mt+x_0,\y=nt+y_0,\z=pt+z_0.end$$ Здесь $%(m,n,p)$% — координаты вектора от одной точки до другой, а $%(x_0,y_0,z_0)$% — координаты одной из точек. Подставляете эти значения в уравнение плоскости, откуда находите параметр $%t$%. По этому параметру находите $%(x,y,z)$%.
Определение точки пересечения двух отрезков
Пусть даны два отрезка. Первый задан точками 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.
Векторное произведение двух векторов вычисляется по формуле:
где:
ax, ay — координаты первого вектора,
bx, by — координаты второго вектора.
Уравнение прямой, проходящей через две различные точки, заданные своими координатами.
Пусть на прямой заданы две не совпадающие точки:P1 с координатами (x1;y1) и P2 с координатами (x2; y2). Соответственно вектор с началом в точке P1 и концом в точке P2 имеет координаты (x2-x1, y2-y1). Если P(x, y) – произвольная точка на прямой, то координаты вектора P1P равны (x — x1, y – y1).
Итак, прямую можно задать уравнением вида (1).
Как найти точку пересечения прямых?
Очевидное решение состоит в том, чтобы решить систему уравнений прямых:
Здесь D – определитель системы, а Dx,Dy — определители, получающиеся в результате замены столбца коэффициентов при соответствующем неизвестном столбцом свободных членов. Если D ≠ 0, то система (2) является определенной, то есть имеет единственное решение. Это решение можно найти по следующим формулам: x1=Dx/D, y1=Dy/D, которые называются формулами Крамера. Небольшое напоминание, как вычисляется определитель второго порядка. В определителе различают две диагонали: главную и побочную. Главная диагональ состоит из элементов, взятых по направлению от верхнего левого угла определителя в нижний правый угол. Побочная диагональ – из правого верхнего в нижний левый. Определитель второго порядка равен произведению элементов главной диагонали минус произведение элементов побочной диагонали.
The other results are confusing, verbose and incomplete, IMO. So here’s my two cents – also potentially confusing and verbose.
If you are sure that your lines are not skew-parallel or parallel, the following is all you need:
% Let each point be def as a 3x1 array
% Let points defining first line be : p1, q1
% Let points defining second line be : p2, q2
L = p1-p2;
M = p1-q1;
N = p2-q2;
A = [M N];
T = pinv(A)*L;
h = p1-T(1)*(p1-q1); % h is a 3x1 array representing the actual pt of intersection
Yeah, the Moore-Penrose pseudoinverse is a powerful thing. The explanation for the approach is: You want to find the weights or the scaling factors of the ‘direction vectors’ (M and N are direction vectors), that linearly combine M and N to give L.
A full description is presented below. It presents a simple exception detection scheme, and their handling is left to the user. (The minimum distance between two line algorithms is from Wikipedia; the comparison of direction cosines (DCS) to check vector attitudes is common knowledge.)
% Let each point be def as a 3x1 array
% Let points defining first line be : p1, q1
% Let points defining second line be: p2, q2
% There are two conditions that prevent intersection of line segments/lines
% in L3 space. 1. parallel 2. skew-parallel (two lines on parallel planes do not intersect)
% Both conditions need to be identified and handled in a general algorithm.
% First check that lines are not parallel, this is done by comparing DCS of
% the line vectors
% L, M, N ARE DIRECTION VECTORS.
L = p1-p2;
M = p1-q1;
N = p2-q2;
% Calculate a normalized DCS for comparison. If equal, it means lines are parallel.
MVectorMagnitude = sqrt(sum(M.*M,2)); % The rowsum is just a generalization for N-D vectors.
NVectorMagnitude=sqrt(sum(N.*N,2)); % The rowsum is just a generalization for N-D vectors.
if isequal(M/MVectorMagnitude,N/NVectorMagnitude) % Compare the DCS for equality
fprintf('%sn', 'lines are parallel. End routine')
end;
% Now check that lines do not exist on parallel planes
% This is done by checking the minimum distance between the two lines. If there's a minimum distance, then the lines are skew.
a1 = dot(M,L); b1 = dot(M,M); c1 = dot(M,N);
a2 = dot(N,L); b2 = dot(N,M); c2 = dot(N,N);
s1 = -(a1*c2 - a2*c1)/(b1*c2-b2*c1);
s2 = -(a1*b2 - a2*b1)/(b1*c2-b2*c1);
Sm = (L + s1*M - s2*N);
s = sqrt(sum(Sm.*Sm,2));
if ~isequal(s,0) % If the minimum distance between two lines is not zero, then the lines do not intersect
fprintf('%sn','lines are skew. End routine')
end;
% Here's the actual calculation of the point of intersection of two lines.
A = [M N];
T = pinv(A)*L;
h = p1-T(1)*(p1-q1); % h is a 3x1 array representing the actual pt of intersection.
So the pinv approach will give you results even when your M and N vectors are skew (but not parallel, because inv(A’.A) is required to exist). You can use this to determine the minimum distance between two parallel lines or between two parallel planes – to do this, define k = p2+T(2)*(p2-q2)
, and then the required distance is h-k. Also note that h and k are the points on the lines that are closest to each other IFF lines are skew.
So the use of the pseudoinverse and projection spaces gives us a concise algorithm for:
- Determining the point of intersection of two lines (not parallel, and not skew)
- Determining the minimum distance between two lines (not parallel)
- Determining the points closest to each other on two skew lines.
Concise is not the same as time-efficient. A lot depends on your exact pinv function implementation – MATLAB uses svd
which solves to a tolerance. Also, some results will only be approximately accurate in higher dimensions and higher order definitions of the measurement metric (or vector norms). Besides the obvious dimension independent implementation, this can be used in statistical regression analysis and algebraically maximizing likelihood of point estimates.