python Функция вычисления угла между векторами (градусы или радианы) -- пример на базе numpy
Primary tabs
Можно вычислять так:
@staticmethod def unitVector(vector): """ Returns the unit vector of the vector. """ return vector / np.linalg.norm(vector) @staticmethod def angleBetween(v1, v2, deg = True): """ Returns the angle in radians between vectors 'v1' and 'v2':: """ print('Первый вектор:', v1) print('Второй вектор:', v2) v1_u = MathCommon.unitVector(v1) v2_u = MathCommon.unitVector(v2) radians = np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0)) result = radians print('радианы:', result) if deg: result = np.degrees([radians.real])[0] # переводим в градусы return result
Источники
- Реализовано на базе: https://stackoverflow.com/a/13849249
- Log in to post comments
- 17201 reads
vedro-compota
Wed, 01/03/2018 - 14:32
Permalink
Почему-то эта функция (выше)
Почему-то эта функция (выше) возвращает далеко не все углы для случайно генерируемых векторов.
Не очень ясно в чем тут смысл строки:
_____________
матфак вгу и остальная классика =)
moberaptor
Fri, 01/12/2018 - 00:56
Permalink
from math import sqrt, acos,
Как вариант, думаю, можно так сделать:
Тестовые данные