Vector2D Vector2D :: getRandomVector ( float len ) { Vector2D v; for ( ; ; ) { v.x = rnd (); v.y = rnd (); if ( v.lengthSq () < EPS ) continue; v *= len / v.length (); return v; } }
constexpr Vector2D projection(const Vector2D& onto) const { return onto.lengthSq() ? onto * dot(onto) / onto.lengthSq() : Zero; }