wulfric.geometry.get_angle#

wulfric.geometry.get_angle(v1, v2, radians=False)[source]#

Computes angle between two vectors.

\[\alpha = \dfrac{(\boldsymbol{v_1} \cdot \boldsymbol{v_2})} {\vert\boldsymbol{v_1}\vert\cdot\vert\boldsymbol{v_2}\vert}\]
Parameters:
v1(3,) array-like

First vector.

v2(3,) array-like

Second vector.

radiansbool, default False

Whether to return value in radians.

Returns:
angle: float

Angle in degrees or radians (see radians).

Raises:
ValueError

If one of the vectors is zero vector (or both). Norm is compared against numpy.finfo(float).eps.

Examples

>>> import wulfric
>>> wulfric.geometry.get_angle([1, 0, 0], [0, 0, 1])
90.0
>>> wulfric.geometry.get_angle([1, 0, 0], [1, 0, 0])
0.0
>>> round(wulfric.geometry.get_angle([1, 0, 0], [1, 1, 1]), 4)
54.7356