Это не официальный сайт wikipedia.org 01.01.2023

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

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

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

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

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

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

Когда прямая на плоскости задана уравнением ax + by + c = 0, где a, b и c — такие вещественные константы, что a и b не равны нулю одновременно, и расстояние от прямой до точки (x0,y0) равно [1]

distance ( a x + b y + c = 0 , ( x 0 , y 0 ) ) = | a x 0 + b y 0 + c | a 2 + b 2 .  

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

x = b ( b x 0 a y 0 ) a c a 2 + b 2   и y = a ( b x 0 + a y 0 ) b c a 2 + b 2 .  

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

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

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

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

x cos α + y sin α p = 0  

Нормированное уравнение получается из общего уравнения прямой ax + by + c = 0 делением всех членов на a 2 + b 2  . Тогда расстояние от точки (x0, y0) до прямой равно абсолютному значению отклонения и вычисляется по формуле [3][4]

| d | = | x 0 cos α + y 0 sin α p |  

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

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

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

distance ( P 1 , P 2 , ( x 0 , y 0 ) ) = | ( y 2 y 1 ) x 0 ( x 2 x 1 ) y 0 + x 2 y 1 y 2 x 1 | ( y 2 y 1 ) 2 + ( x 2 x 1 ) 2 .  

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

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

M p = P 1 + P 1 P 2 ( P 1 P 2 , P 1 M ) P 1 P 2 2  .

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

distance ( P 1 , P 2 , M ) = M M p  .

ДоказательстваПравить

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

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

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

y 0 n x 0 m = b a .  

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

a 2 ( y 0 n ) 2 + b 2 ( x 0 m ) 2 2 a b ( y 0 n ) ( x 0 m ) = 0.  

Рассмотрим,

( a ( x 0 m ) + b ( y 0 n ) ) 2 = a 2 ( x 0 m ) 2 + 2 a b ( y 0 n ) ( x 0 m ) + b 2 ( y 0 n ) 2 = ( a 2 + b 2 ) ( ( x 0 m ) 2 + ( y 0 n ) 2 )  

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

( a ( x 0 m ) + b ( y 0 n ) ) 2 = ( a x 0 + b y 0 a m b n ) 2 = ( a x 0 + b y 0 + c ) 2  ,

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

( a 2 + b 2 ) ( ( x 0 m ) 2 + ( y 0 n ) 2 ) = ( a x 0 + b y 0 + c ) 2  

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

d = ( x 0 m ) 2 + ( y 0 n ) 2 = | a x 0 + b y 0 + c | a 2 + b 2 .   [5].

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

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

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

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

| P R ¯ | | P S ¯ | = | T V ¯ | | T U ¯ | .  

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

| P R ¯ | = | y 0 m | | B | A 2 + B 2 .  

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

m = A x 0 C B ,  

и получаем: [6]

| P R ¯ | = | A x 0 + B y 0 + C | A 2 + B 2 .  

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

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

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

d = | Q P n | n .  

Теперь

Q P = ( x 0 x 1 , y 0 y 1 ) ,   так что Q P n = a ( x 0 x 1 ) + b ( y 0 y 1 )   и n = a 2 + b 2 .  

Тогда

d = | a ( x 0 x 1 ) + b ( y 0 y 1 ) | a 2 + b 2 .  

Поскольку Q лежит на прямой, c = a x 1 b y 1  , а тогда [8][9][10]

d = | a x 0 + b y 0 + c | a 2 + b 2 .  

Другие формулыПравить

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

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

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

m x + k = x 0 x m + y 0 .  

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

x = x 0 + m y 0 m k m 2 + 1 .  

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

y = m ( x 0 + m y 0 m k ) m 2 + 1 + k .  

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

d = ( x 0 + m y 0 m k m 2 + 1 x 0 ) 2 + ( m x 0 + m y 0 m k m 2 + 1 + k y 0 ) 2 .  

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

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

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

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

x = a + t n  ,

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

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

distance ( x = a + t n , p ) = ( a p ) ( ( a p ) n ) n .  

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

( ( a p ) n ) n  

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

( a p ) ( ( a p ) n ) n  

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

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

Если векторное пространство ортонормально, а прямая (d ) проходит через точку B и имеет вектор направления[en] u  , то расстояние от точки A до прямой (d) равно

d ( A , ( d ) ) = B A u u  ,

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

ОбобщенияПравить

distance ( a x + b y + c z + d = 0 , ( x 0 , y 0 , z 0 ) ) = | a x 0 + b y 0 + c z 0 + d | a 2 + b 2 + c 2 .  

См. такжеПравить

ПримечанияПравить

  1. Larson, Hostetler, 2007, p. 452.
  2. 1 2 Larson, Hostetler, 2007, p. 522.
  3. Привалов, 1966, с. 67.
  4. Делоне, Райков, 1948, с. 195.
  5. Laudanski, 2014.
  6. 1 2 Ballantine, Jerbert, 1952, с. 242–243.
  7. Если два треугольника окажутся по разные стороны от исходной прямой, эти углы будут накрест лежащими, а потому опять равными.
  8. Anton, 1994, с. 138-9.
  9. Федотов, Карпов, 2005, с. 86.
  10. Моденов, 1967, с. 152.
  11. Sunday, Dan. Lines and Distance of a Point to a Line  (неопр.). // softSurfer. Дата обращения: 6 декабря 2013. Архивировано 14 декабря 2017 года.
  12. OnlineMSchool  (неопр.). Дата обращения: 2 декабря 2020. Архивировано 17 января 2021 года.

ЛитератураПравить

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