Как найти координату точки, лежащей на перпендикуляре к линии?

Предположим, что есть некая прямая линия на координатной плоскости. К этой линии проведен перпендикуляр в известном направлении длиной 10 единиц (константа). Известны координаты начальной и конечной точек линии, а также координаты точки на линии, из которой проведен перпендикуляр (переменные).

С помощью каких геометрических формул можно найти координату второй точки перпендикуляра?

Пример:

введите сюда описание изображения

Предпочтителен пример решения на Python или псевдокоде.


Ответы (1 шт):

Автор решения: SagRU

введите сюда описание изображения

Итоговый алгоритм получился такой (воспользовался подсказкой из этого комментария):

  1. Нашел вектор CB: (9 - 6, 2 - 5) = (3, -3)
  2. Нашел перпендикулярный ему вектор той же длины, повернув вектор CB на 90 градусов по часовой стрелке** (поменял местами x и y и заменил знак у нового значения y): (-3, -3)
  3. Нормализовал вектор-перпендикуляр, разделив каждую из координат на длину линии: (-3 / 4.242, -3 / 4.242) = (-0.707, -0.707)
  4. Умножил координаты нормализованного вектора на нужную длину перпендикуляра (2.828): (-0.707 * 2.828, -0.707 * 2.828) = (-1.999, -1.999)
  5. Прибавил полученные координаты к координатам точки C и получил координаты нужной точки D: (6 + -1.999, 5 + -1.999) = (~4, ~3)

** Если нужно повернуть перпендикулярный вектор против часовой стрелки, то тогда необходимо поменять местами x и y и заменил знак у нового значения x

Полученные координаты (~4, ~3) совпадают с визуальным расположением точки на координатной плоскости.

Благодарю комментаторов за помощь!

→ Ссылка