Vec2 rotated(double angle) { final ccos = cos(angle); final ssin = sin(angle); return Vec2( x * ccos - y * ssin, x * ssin + y * ccos, ); }