Сначала вы должны понять, как вычислить угол между двумя векторами , и их несколько. Я дам вам то, что я считаю самым простым.
- Дано v1 и v2 , их точечное произведение равно:
v1x * v2x + v1y * v2y
- Норма вектора v задается как: sqtr (vx ^ 2 + vy ^ 2)
С этой информацией, пожалуйста, примите это определение:
dot(v1, v2) = norm(v1) * norm(v2) * cos(angle(v1, v2))
Теперь вы решаете за angle(v1, v2)
:
angle(v1, v2) = acos( dot(v1, v2) / (norm(v1) * norm(v2)) )
Наконец, взяв определения, данные в начале, вы получите:
angle(v1, v2) = acos( (v1x * v2x + v1y * v2y) / (sqrt(v1x^2+v1y^2) * sqrt(v2x^2+v2y^2)) )
Опять же, есть много способов сделать это, но мне нравится этот, потому что он полезен для точечного произведения с заданным углом и нормой, или углом, с учетом векторов.
Ответ будет в радианах, но вы знаете, что радианы пи (то есть 3,14 радиана) равны 180 градусам, поэтому вы просто умножаете на коэффициент преобразования 180 / пи.