Вычисление расстояния от точки до отрезка

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

Немного математики

У нас есть три точки — A, B и C. Мы хотим найти расстояние от точки C до отрезка AB. Т.е. расстояние от C до некоторой точки на отрезке AB. Эта точка не должна выходить за границы отрезка, как могло бы происходить в некоторых случаях, если бы мы искали расстояние от точки C до линии, проходящей через AB.

Найдем длину проекции вектора AC на вектор AB:

[A, B и C — это вектора из начала координат к соответствующим точкам.]
Если мы разделим это выражение еще раз на длину AB, то получим величину относительной проекции.

Которая позволит нам легко определить, чем является искомая ближайшая точка на отрезке AB:

  • Если t < 0, ближайшая точка — это A
  • Если t > 1, ближайшая точка — это B
  • Если 0 ≤ t ≤ 1, ближайшая точка — внутренняя точка отрезка

Тогда ближайшую точку можно определить как:

А расстояние:

Код функции на JS

Теперь закодируем это в виде функции. Я использую JS, т.к. мне надо было решить эту задачу для JS. На входе — координаты всех трёх точек.

Написать комментарий

Мало букафф? Читайте есчо !

Магия чисел

Февраль 14, 2011 г.

Старшая дочь у меня уже ходит в 3й класс общеобразовательной средней школы. Склад ума у неё не лежит к точным наукам, но пока это не мешает ей приносить ...

Читать

Координаты центра окружности по трем точкам

Октябрь 11, 2019 г.

Обычно эта задача решается через уравнения круга, но для программирования нужно аналитическое решение (в виде формулы). Если решать систему уравнений, ...

Читать

 

Комментарии к «Вычисление расстояния от точки до отрезка»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: