Попробовал взять дробь под модуль, не получилось. Гм.. дело в том, что положение точек относительно друг друга мне заранее неизвестно, если я ничего не путаю, то острый угол там получается не всегда(если считать положительное отклонение от оси Х) Скажем, если точка B прямо под точкой A, то угол будет 270. Превратить этот угол в острый можно прибавив или отняв Пи. Должно быть простое и изящное математическое решение, но вот какое... Можно добавить к условию, что "мотать" угол можно только в одну сторону.
AB - гипотенуза, ее длина |AB| = sqrt((x2-x1)^2+(y2-y1)^2) Можно найти угол через арккосинус, тебе тогда нужен нижний катет, это |AC| = sqrt((x2-x1)^2+(y1-y1)^2))
Ну и вперед, можно это на бумажке как-нибудь преобразовать попроще, если тебе не хочется машину напрягать.) Я бы так сделал, самый очевидный способ.
З.Ы. Как-то ты интересно длины отрезков в двухмерном пространстве ищешь.
Comments 5
ты же острый угол вычисляешь в любом случае, так? или нет?
Reply
Гм.. дело в том, что положение точек относительно друг друга мне заранее неизвестно, если я ничего не путаю, то острый угол там получается не всегда(если считать положительное отклонение от оси Х) Скажем, если точка B прямо под точкой A, то угол будет 270. Превратить этот угол в острый можно прибавив или отняв Пи. Должно быть простое и изящное математическое решение, но вот какое... Можно добавить к условию, что "мотать" угол можно только в одну сторону.
Reply
Можно найти угол через арккосинус, тебе тогда нужен нижний катет, это |AC| = sqrt((x2-x1)^2+(y1-y1)^2))
Ну и вперед, можно это на бумажке как-нибудь преобразовать попроще, если тебе не хочется машину напрягать.) Я бы так сделал, самый очевидный способ.
З.Ы. Как-то ты интересно длины отрезков в двухмерном пространстве ищешь.
Reply
Reply
Вот альтернативный вариант. Уравнение прямой, проходящей через две заданных точки:
(y - y1)/(y2-y1) = (x - x1)/(x2 - x1)
Выражаешь y, берешь арктангенс от коэффициента при x, получаешь угол. Хотя, ты по-моему так и решал.)
Reply
Leave a comment