Расстояние от точки до прямой на плоскости

Материал из testwiki
Перейти к навигации Перейти к поиску

Расстояние от точки до прямой на плоскости — это кратчайшее расстояние от точки до прямой в евклидовой геометрии. Расстояние равно длине отрезка, который соединяет точку с прямой и перпендикулярен прямой. Формула вычисления расстояния может быть получена и выражена несколькими способами.

Знание наименьшего расстояния от точки до прямой может быть полезно во многих случаях, например, для поиска кратчайшего пути для выхода на дорогу, определение разброса графа, и подобное. В регрессии Деминга, процедуре линейного сглаживания, если зависимые и независимые переменные имеют одну и ту же дисперсию, регрессия сводится к ортогональной регрессии, в которой степень приближения измеряется для каждой точки как расстояние от точки до регрессионной прямой.

Декартова система координат

Прямая задана уравнением

Когда прямая на плоскости задана уравнением Шаблон:Nowrap, где a, b и c — такие вещественные константы, что a и b не равны нулю одновременно, и расстояние от прямой до точки (x0,y0) равно Шаблон:Sfn

distance(ax+by+c=0,(x0,y0))=|ax0+by0+c|a2+b2.

Точка на прямой, наиболее близкая к (x0,y0), имеет координаты Шаблон:Sfn

x=b(bx0ay0)aca2+b2 и y=a(bx0+ay0)bca2+b2.

Горизонтальные и вертикальные прямые

В общем уравнении прямой ax + by + c = 0 коэффициенты a и b не могут быть одновременно равны нулю пока c ненулевое, а в случае всех нулевых коэффициентов уравнение не задаёт прямую. Если a = 0, а b Шаблон:Math 0, прямая горизонтальна и имеет уравнение y = -c/b. Расстояние от (x0, y0) до этой прямой определяется вертикальным отрезком длины |y0 — (-c/b)| = |by0 + c| / |b| (согласно формуле). Аналогичным образом, для вертикальных прямых (b = 0) расстояние между той же точкой и прямой равно |ax0 + c| / |a| и измеряется вдоль горизонтального отрезка.

Нормированное уравнение прямой

Нормированное уравнение прямой — это уравнение вида

xcosα+ysinαp=0

Нормированное уравнение получается из общего уравнения прямой ax + by + c = 0 делением всех членов на a2+b2. Тогда расстояние от точки (x0, y0) до прямой равно абсолютному значению отклонения и вычисляется по формуле Шаблон:SfnШаблон:Sfn

|d|=|x0cosα+y0sinαp|

Прямая задана двумя точками

Если прямая проходит через две точки P1=(x1,y1) и P2=(x2,y2), и необходимо найти расстояние от M=(x0,y0) до прямой, то можно воспользоваться следующими способами:

Способ 1. Искомое расстояние равно

distance(P1,P2,(x0,y0))=|(y2y1)x0(x2x1)y0+x2y1y2x1|(y2y1)2+(x2x1)2.

Знаменатель этого выражения равен расстоянию между точками P1 и P2. Числитель равен удвоенной площади треугольника с вершинами (x0,y0), P1 и P2 (см. Общая формула площади треугольника в декартовых координатах). Выражение эквивалентно h=2Ab, что может быть получено преобразованием стандартной формулы площади треугольника: A=12bh, где b — длина стороны, а h — высота на эту сторону из противолежащей вершины.

Способ 2. Сначала находится ближайшая точка на прямой к точке M по формуле

Mp=P1+P1P2*(P1P2,P1M)P1P22.

Тогда искомое расстояние равно

distance(P1,P2,M)=MMp.

Доказательства

Алгебраическое доказательство

Это доказательство верно, только когда прямая не является ни вертикальной, ни горизонтальной. То есть мы предполагаем, что ни a, ни b в уравнении не равны нулю.

Прямая с уравнением ax + by + c = 0 имеет наклон -a/b, так что любая прямая, перпендикулярная к заданной, имеет наклон b/a. Пусть (m, n) — точка пересечения прямой ax + by + c = 0 и перпендикулярной прямой, проходящей через точку (x0, y0). Прямая, проходящая через эти две точки, перпендикулярна исходной прямой, так что

y0nx0m=ba.

Таким образом, a(y0n)b(x0m)=0, и после возведения в квадрат получим:

a2(y0n)2+b2(x0m)22ab(y0n)(x0m)=0.

Рассмотрим,

(a(x0m)+b(y0n))2=a2(x0m)2+2ab(y0n)(x0m)+b2(y0n)2=(a2+b2)((x0m)2+(y0n)2)

Здесь использовано возведённое в квадрат выражение. Но

(a(x0m)+b(y0n))2=(ax0+by0ambn)2=(ax0+by0+c)2,

так как точка (m, n) расположена на прямой ax + by + c = 0. Таким образом,

(a2+b2)((x0m)2+(y0n)2)=(ax0+by0+c)2

Из этого получаем длину отрезка между этими двумя точками:

d=(x0m)2+(y0n)2=|ax0+by0+c|a2+b2. Шаблон:Sfn.

Геометрическое доказательство

Это доказательство верно, только когда прямая не является ни вертикальной, ни горизонтальной. Баллантин и ДжербертШаблон:Sfn не упомянули это ограничение в своей статье.

Опустим перпендикуляр из точки P с координатами (x0, y0) на прямую с уравнением Ax + By + C = 0. Обозначим основание перпендикуляра буквой R. Проведём вертикальную прямую через P и обозначим пересечение этой вертикальной прямой с исходной прямой буквой S. В произвольной точке T на прямой нарисуем прямоугольный треугольник TVU, катеты которого являются горизонтальными и вертикальными отрезками, а длина горизонтального отрезка равна |B| (см. рисунок). Вертикальный катет треугольника ∆TVU будет иметь длину |A|, поскольку наклон прямой равен -A/B.

Треугольники ∆SRP и ∆UVT подобны, так как они оба прямоугольные и ∠PSR ≅ ∠VUT, поскольку являются соответственными углами двух параллельных прямых PS и UV (вертикальные прямые) и секущей (исходная прямая)[1]. Выпишем отношения сторон этих треугольников:

|PR||PS|=|TV||TU|.

Если точка S имеет координаты (x0,m), то |PS| = |y0 — m| и расстояние от P до прямой равно:

|PR|=|y0m||B|A2+B2.

Поскольку S находится на прямой, мы можем найти значение m,

m=Ax0CB,

и получаем: Шаблон:Sfn

|PR|=|Ax0+By0+C|A2+B2.

Другой вариант этого доказательства — поместить точку V в точку P и вычислить площадь треугольника ∆UVT двумя способами, после чего получим D|TU|=|VU||VT|, где D — высота треугольника ∆UVT на гипотенузу из точки P. Формула расстояния может быть использована, чтобы выразить |TU|, |VU| и |VT|в терминах координат P и коэффициентов уравнения исходной прямой, в результате чего получим требуемую формулу.

Доказательство с помощью проекции вектора

Рисунок доказательства с помощью проекции вектора
Рисунок доказательства с помощью проекции вектора

Пусть P — точка с координатами (x0, y0) и пусть исходная прямая имеет уравнение ax + by + c = 0. Пусть Q = (x1, y1) — любая точка на прямой и n — вектор (a, b) с началом в точке Q. Вектор n перпендикулярен прямой, и расстояние d от точки P до прямой равно длине ортогональной проекции QP на n. Длина этой проекции равна:

d=|QP𝐧|𝐧.

Теперь

QP=(x0x1,y0y1), так что QP𝐧=a(x0x1)+b(y0y1) и 𝐧=a2+b2.

Тогда

d=|a(x0x1)+b(y0y1)|a2+b2.

Поскольку Q лежит на прямой, c=ax1by1, а тогда Шаблон:SfnШаблон:SfnШаблон:Sfn

d=|ax0+by0+c|a2+b2.

Другие формулы

Можно получить другие выражения для кратчайшего расстояния от точки до прямой. Эти выводы тоже требуют, чтобы прямая не была вертикальной или горизонтальной.

Пусть точка P задана координатами (x0,y0). Пусть прямая задана уравнением y=mx+k. Уравнение прямой, перпендикулярной исходной прямой и проходящей через точку P, задаётся уравнением y=x0xm+y0.

Точка, в которой эти две прямые пересекаются, является ближайшей точкой на исходной прямой для точки P. Тогда:

mx+k=x0xm+y0.

Мы можем решить это уравнение по x,

x=x0+my0mkm2+1.

Координату y точки пересечения можно найти, подставив значение x в уравнение исходной прямой,

y=m(x0+my0mk)m2+1+k.

Подставив полученные значения в формулу расстояния d=(X2X1)2+(Y2Y1)2, получим формулу кратчайшего расстояния от точки до прямой:

d=(x0+my0mkm2+1x0)2+(mx0+my0mkm2+1+ky0)2.

Если заметить, что m = -a/b и k = -c/b для уравнения ax + by + c = 0, после небольших выкладок получим стандартное выражениеШаблон:Sfn.

Формулировка с помощью векторов

Иллюстрация формулировки с помощью векторов.

Запишем прямую в векторном виде:

𝐱=𝐚+t𝐧,

где Шаблон:Math — вектор, задающий координаты любой точки на прямой, Шаблон:Math — единичный вектор в направлении прямой, Шаблон:Math — вектор, задающий две координаты точки на прямой, а t — скаляр. То есть для получения точки Шаблон:Math на прямой начинаем с точки Шаблон:Math на прямой и двигаемся на расстояние Шаблон:Math вдоль прямой.

Расстояние от произвольной точки Шаблон:Math до прямой задаётся формулой

distance(𝐱=𝐚+t𝐧,𝐩)=(𝐚𝐩)((𝐚𝐩)𝐧)𝐧.

Эта формула геометрически строится следующим образом: 𝐚𝐩 — это вектор из Шаблон:Math в точку Шаблон:Math на прямой. Тогда (𝐚𝐩)𝐧 — это длина проекции на прямую, а тогда

((𝐚𝐩)𝐧)𝐧

— это вектор, являющийся проекцией 𝐚𝐩 на прямую. Тогда

(𝐚𝐩)((𝐚𝐩)𝐧)𝐧

является компонентой вектора 𝐚𝐩, перпендикулярной прямой. Следовательно, расстояние от точки до прямой равно норме этого вектора[2]. Эта формула может быть использована и в более высоких размерностях.

Другая формулировка с помощью векторов

Если векторное пространство ортонормально, а прямая (d ) проходит через точку B и имеет Шаблон:Не переведено 5 u, то расстояние от точки A до прямой (d) равно

d(A,(d))=BAuu,

где BAu — векторное произведение векторов BA и u, а u — норма вектора u.

Ориентированное расстояние

Шаблон:Обзорная статья

Расстояние от точки до прямой

Рассмотрим прямую с уравнением Ax+By+C=0, где C0, то есть прямая не проходит через начало координат O, и произвольную точку M1(x1,y1). Тогда расстояние от точки до прямой равно следующему выражениюШаблон:Sfn:

d=|δ|=|Ax1+By1+CA2+B2|

Возможны три случаяШаблон:Sfn:

  • знаки чисел δ и C одинаковы. В этом случае точки M1 и O находятся по одну сторону от данной прямой;
  • знаки чисел δ и C противоположны. В этом случае точки M1 и O находятся по разные стороны от данной прямой;
  • δ=0, то есть Ax1+By1+C=0. В этом случае точка M1 принадлежит данной прямой.

Ориентированное расстояние от точки до прямой — число

δ=Ax1+By1+CA2+B2,

полученное из координат точки M1(x1,y1) и прямой Ax+By+C=0, C0Шаблон:Sfn.

Обобщения

distance(ax+by+cz+d=0,(x0,y0,z0))=|ax0+by0+cz0+d|a2+b2+c2.

См. также

Примечания

Шаблон:Примечания

Источники

Литература

Дополнительная литература

Шаблон:Rq

  1. Если два треугольника окажутся по разные стороны от исходной прямой, эти углы будут накрест лежащими, а потому опять равными.
  2. Шаблон:Cite web
  3. Шаблон:Cite web