>>950
複素数勉強しる。

一応、複素数の知識無しで説明しとくと、
a = (ax, ay), b = (bx, by)、θ = ∠AOB とすると、
ax * bx + ay * by = |a| |b| cosθ
ax * by - ay * bx = |a| |b| sinθ

θ = atan2(sinθ, cosθ)
  = atan2(|a| |b| sinθ, |a| |b| cosθ)
  = atan2(ax * by - ay * bx, ax * bx + ay * by)