Раз уж мне все всё так подробно расписали - буду тоже всё подробно расписывать и даже подробнее
Примечание: Незнаю, как нарисовать стрелку над вектором, в любом случае - это вектор.. Не перепутайте.
Первое и главное, чтобы решить данную задачу, как предлагает Grin - нужно выяснить, какой же там между ними угол.
Пусть у нас есть три точки, которые образуют угол:
Code:
M1 ( x1, y1 ) - непосредственно угловая точка
M2 ( x2, y2 ) - первая точка, из которой будет идти луч в точку M1
M3 ( x3, y3 ) - вторая точка, из которой будет идти луч в точку M1
Соответсвенно имеем два вектора: M1M2, M1M3.
Вектор понятное дело имеет свои координаты:
Code:
M1M2 ( x2 - x1, y2 - y1 )
M1M3 ( x3 - x1, y3 - y1 )
Обзавём координаты как-нибудь покороче:
Code:
X1 = x2 - x1
Y1 = y2 - y1
X2 = x3 - y1
Y2 = y3 - y1
Теперь немного теории:
Quote:
Скалярным произведением двух векторов называется сумма произведений одноименных координат этих векторов.
Т.е. в нашем случае:
Code:
M1M2 * M1M3 = X1 * X2 + Y1 * Y2
Кроме того:
Quote:
Скалярным произведением двух векторов в ДПСК (декартовой прямоугольной системе координат) называется произведение модулей этих двух векторов на косинус угла между ними.
Т.е.:
Code:
M1M2 * M1M3 = |M1M2| * |M1M3| * cos(f)
Примечание: f - так я обозвал угол, который мы ищем.Далее - модуль вектора, тоже штука нужная, тоже нужно знать:
Quote:
Модулем вектора в ДПСК называется квадратный корень из суммы квадратов координат вектора.
Code:
|M1M2| = sqrt( X1^2 + Y1^2 )
|M1M3| = sqrt( X2^2 + Y2^2 )
Ну и непосредственный ответ, на поставленный вопрос:
Code:
cos( f ) = ( M1M2 * M1M3 ) / ( |M1M2| * |M1M3| )
Всё, дальше арифметика
PS:
Grin. я всё верно описываю или можно как-нить попроще это намутить?)