alexjet73
@alexjet73

Как нарисовать луч функцией исходя из двух точек и на луче вычислить пересечение перпендикуляра от третей точки?

Есть три точки с координатами:
var pos1 = {x:(число), y:(число)},
      pos2 = {x:(число), y:(число)},
      pos3 = {x:(число), y:(число)};

Как составить функцию, которая будет описывать луч исходя из двух точек pos1 и pos2, а return'ом отдавать точку куда ложится перпендикуляр из точки pos3 на этот луч. Буду благодарен, если кто шарит в геометрии подскажет как сделать это :)

Накидал такую gif'ку для визуального понимания: (на гифке ошибка rerurn -> return)FyWo1.gif
  • Вопрос задан
  • 539 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
1) Вычислить уравнение прямой, походящей через точки 1 и 2
(x − x₁) / (x₂ − x₁) = (y − y₁) / (y₂ − y₁)
выражаем у через х, получим уравнение
y = a₁x + b₁
2) Построить перпендикуляр из точки к прямой из пункта 1)
(y – y₃) = -1/a₁ * (x - x₃)
и выразить у через х, получится
y = a₂x + b₂
3) Есть уравнения прямых - надо найти пересечение, т.е. решить систему двух линейных уравнений. Тут методов масса - от простых преобразований до матриц. т.к. у нас уравнения в виде y=f(x), то можно сделать так:
приравниваем уравнения 1 и 2, избавляемся тем самым от y
вычисляем x
подставляем найденное x в любое уравнение
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы