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