§ Вектор нормали
В предыдущей статье, написанной очень давно, было описание того, как найти расстояние от точки до прямой. Теперь есть повод расширить возможности и найти расстояние от точки до плоскости, в трехмерном пространстве. Задать плоскость можно разными методами, в том числе через параметры.Существует общее уравнение плоскости и записывается оно так:
Где
A
,B
,C
и D
это коэффициенты, при этом вектор, который составлен из (A,B,C)
, перпендикулярен к плоскости, и это очень важно. Для начала, задача заключается в том, чтобы найти эти коэффициенты, чтобы рассчитать нормаль. Это делается довольно просто. Если есть неких два вектора и , исходящих из одной точки, то выполнив операцию смешанного произведения, получим заданные коэффициенты.Рассчитать детерминант у матрицы 3x3 не составит трудностей, если воспользоваться ускоренными методами поиска определителей, зная курс высшей математики, конечно же.
Как можно отметить, ищем мы пока что только перпендикулярный вектор, а не общее уравнение плоскости, хотя и ее тоже можно найти, достаточно лишь подставить -(x1,y1,z1) в первую строку определителя. Получим следующие параметры:
A = AB.y*AC.z - AB.z*AC.y B = AB.z*AC.x - AB.x*AC.z C = AB.x*AC.y - AB.y*AC.xЭто потребуется для дальнейших вычислений.
§ Общее уравнение плоскости
Теперь неплохо бы составить общее уравнение плоскости. Поскольку миноры и алгебраические дополнения успешно подсчитаны, составить уравнение плоскости в общем виде не составит никакого труда. Плоскость можно представить как 3 точки , , , причем точка является общей для векторов и .Коэффициенты миноров были подсчитаны, так что можно сказать вот что.
Собственно, после раскрытия скобок получится следующее:
Как видно, последнее выражение в скобках это и будет , что даёт общее уравнение плоскости, записанное ранее.
§ Вычисление расстояния от точки до плоскости
Для начала, необходимо сделать вот что. У нас есть векторN
с компонентами (A,B,C)
— но он не нормализован, то есть, не является единичной длины. Чтобы нормализовать вектор, надо разделить каждый его компонент на — то есть, делить на длину исходного вектора, чтобы получить нормализованный (единичной длины). Так мы получим именно нормаль. Обозначу этот компонент через r
, чтобы не занимать места в выводе формул.Когда нормализованный вектор был получен, наша задача в том, чтобы от исходной точки, от которой ищем расстояние до плоскости, провести прямую до плоскости, параметрическую:
x = M.x + t*(A/r) y = M.y + t*(B/r) z = M.z + t*(C/r)Здесь в качестве коэффициентов к t выступают компоненты нормализованного вектора .
Для нахождения пересечения прямой с плоскостью нужно подставить (x,y,z) в общее уравнение прямой
Ax + By + Cz + D = 0
:Теперь раскладываем на подобные множители, объединяя t.
Если вспомнить правило , то формула превратится в такой вид.
Отсюда легко найти t:
Я намеренно убрал минус, поскольку расстояние не может быть отрицательным. Вот и всё, что надо знать о выводе формулы.