Vector spinorBetween(Vector vec)

Source

Vector spinorBetween(Vector vec) {
  num d = this.lengthSqr;
  num r = (vec.x * x + vec.y * y) / d;
  num i = (vec.y * x - vec.x * y) / d;
  return new Vector(r, i);
}