Vector2D Vector2D::proj(Vector2D s, Vector2D t) { t.normalise(); Vector2D proj = t; float multiple = proj.dot(s, t) / proj.dot(t, t); proj.mult(multiple); return proj; }
Vector2D Vector2D::nlerp( const Vector2D& start, const Vector2D& end, const float& percent ) { Vector2D result = ( lerp(start, end, percent) ); result.normalise(); return result; }