public Vector2D CalculateFuturePosition(double time)
{
//using the equation s = ut + 1/2at^2, where s = distance, a = friction
//u=start velocity
//calculate the ut term, which is a vector
Vector2D ut = Velocity * time;
//calculate the 1/2at^2 term, which is scalar
double half_a_t_squared = 0.5 * ParameterManager.Instance.Friction * time * time;
//turn the scalar quantity into a vector by multiplying the value with
//the normalized velocity vector (because that gives the direction)
Vector2D scalarToVector = half_a_t_squared * Vector2D.Vec2DNormalize(Velocity);
//the predicted position is the balls position plus these two terms
return Position + ut + scalarToVector;
}