import math
def length(v):
return math.sqrt(v[0] ** 2 + v[1] ** 2)
def scalar_mult(v1, v2):
return v1[0] * v2[0] + v1[1] * v2[1]
def get_angle(v1, v2):
"""
Найти угол между 2 векторами
:param v1: вектор 1
:param v2: вектор 2
:return: угол в градусах
"""
dot = v1[0] * v2[0] + v1[1] * v2[1]
det = v1[0] * v2[1] - v1[1] * v2[0]
return math.degrees(math.atan2(det, dot))
def turn_vector(vector, angle):
"""
Найти вектор полученный при повороте
:param vector: исходный вектор
:param angle: угол поворота
:return: новый вектор
"""
new_vector = [0, 0]
v_x = vector[0]
v_y = vector[1]
rads = math.radians(angle)
new_vector[0] = v_x * math.cos(rads) - v_y * math.sin(rads)
new_vector[1] = v_x * math.sin(rads) + v_y * math.cos(rads)
return new_vector