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

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

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

У нас есть три точки — 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. На входе — координаты всех трёх точек.

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

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

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

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

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

Читать

Вычисление N точек на арке

Июнь 10, 2025 г.

У нас есть окружность, заданная точкой её центра и радиусом. Еще у нас есть две точки, принадлежащие этой окружности - A и B, отсекая на окружности арку. ...

Читать

 

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

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



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