title: Angle between two vectors in the interval [0,360]
body: <p>I'm trying to find the angle between two vectors.<br />
  Following is the code that I use to evaluate the angle between vectors <code>ba</code> and <code>bc</code></p>
  <pre><code>import numpy as np
  import scipy.linalg as la
  
  a = np.array([6,0])
  b = np.array([0,0])
  c = np.array([1,1])
  
  ba = a - b
  bc = c - b
  
  cosine_angle = np.dot(ba, bc) / (la.norm(ba) * la.norm(bc))
  angle = np.arccos(cosine_angle)
  
  print (np.degrees(angle))
  </code></pre>
  <p>My question is,<br />
  here in this code:<br />
  for both <code>c = np.array([1,1])</code> and <code>c = np.array([1,-1])</code>  you get 45 degrees as the answer. I can understand this in a mathematical viewpoint because, from the dot product you always focus on the angle in the interval <code>[0,180]</code>.</p>
  <p>But geometrically this is misleading as the point <code>c</code> is in two different locations for <code>[1,1]</code> and <code>[1,-1]</code>.<br />
  So is there a way that I can get the angle in the interval <code>[0,360]</code>   for a general starting point<br />
  <code>b = np.array([x,y])</code></p>
  <p>Appreciate your help</p>