def construct(self):
    points = [((5 * LEFT) + v) for v in (UP, (2 * DOWN))]
    cars = [Car().move_to(point) for point in points]
    h_line = Line(LEFT, RIGHT).scale(FRAME_X_RADIUS)
    words = [TextMobject('Real motion (smooth)').shift((3 * UP)), TextMobject(self.bottom_words).shift((0.5 * DOWN))]
    words[1].set_color(GREEN)
    self.add(h_line, *(cars + words))
    self.wait()
    self.play(*[MoveCar(car, (point + (10 * RIGHT)), run_time=5, rate_func=rf) for (car, point, rf) in zip(cars, points, [s_rate_func, self.get_approximated_rate_func(self.n_jumps)])])
    self.wait()
def construct(self):
    points = [((5 * LEFT) + v) for v in (UP, (2 * DOWN))]
    cars = [Car().move_to(point) for point in points]
    h_line = Line(LEFT, RIGHT).scale(FRAME_X_RADIUS)
    words = [TextMobject('Real motion (smooth)').shift((3 * UP)), TextMobject(self.bottom_words).shift((0.5 * DOWN))]
    words[1].set_color(GREEN)
    self.add(h_line, *(cars + words))
    self.wait()
    self.play(*[MoveCar(car, (point + (10 * RIGHT)), run_time=5, rate_func=rf) for (car, point, rf) in zip(cars, points, [s_rate_func, self.get_approximated_rate_func(self.n_jumps)])])
    self.wait()