def construct(self):
    car = Car()
    car.move_to(self.point_A)
    self.car = car
    car.randy.save_state()
    Transform(car.randy, Randolph()).update(1)
    car.randy.next_to(car, RIGHT, MED_LARGE_BUFF)
    car.randy.look_at(car)
    window = car[1][6].copy()
    window.is_subpath = False
    window.set_fill(BLACK, opacity=0.75)
    window.set_stroke(width=0)
    square = Square(stroke_color=WHITE)
    square.replace(VGroup(self.speedometer, self.speedometer_title))
    square.scale_in_place(1.5)
    square.pointwise_become_partial(square, 0.25, 0.75)
    time_label = TextMobject('Time (in seconds):', '0')
    time_label.shift((2 * UP))
    dots = VGroup(*list(map(Dot, [self.point_A, self.point_B])))
    line = Line(*dots, buff=0)
    line.set_color(DISTANCE_COLOR)
    brace = Brace(line, DOWN)
    brace_text = brace.get_text('Distance traveled?')
    self.add(car)
    self.play(Blink(car.randy))
    self.play(car.randy.restore, Animation(car))
    self.play(ShowCreation(window, run_time=2))
    self.wait()
    self.introduce_added_mobjects()
    self.play(ShowCreation(square))
    self.wait()
    self.play(FadeIn(time_label))
    self.play(MoveCar(car, self.point_B, rate_func=s_rate_func), IncrementNumber(time_label[1], run_time=8), MaintainPositionRelativeTo(window, car), *self.get_added_movement_anims(rate_func=v_rate_func, radians=((((- (16.0 / 70)) * 4) * np.pi) / 3)), run_time=8)
    eight = TexMobject('8').move_to(time_label[1])
    self.play(Transform(time_label[1], eight, rate_func=squish_rate_func(smooth, 0, 0.5)))
    self.wait()
    self.play(*list(map(ShowCreation, dots)))
    self.play(ShowCreation(line))
    self.play(GrowFromCenter(brace), Write(brace_text))
    self.wait(2)
def construct(self):
    car = Car()
    car.move_to(self.point_A)
    self.car = car
    car.randy.save_state()
    Transform(car.randy, Randolph()).update(1)
    car.randy.next_to(car, RIGHT, MED_LARGE_BUFF)
    car.randy.look_at(car)
    window = car[1][6].copy()
    window.is_subpath = False
    window.set_fill(BLACK, opacity=0.75)
    window.set_stroke(width=0)
    square = Square(stroke_color=WHITE)
    square.replace(VGroup(self.speedometer, self.speedometer_title))
    square.scale_in_place(1.5)
    square.pointwise_become_partial(square, 0.25, 0.75)
    time_label = TextMobject('Time (in seconds):', '0')
    time_label.shift((2 * UP))
    dots = VGroup(*list(map(Dot, [self.point_A, self.point_B])))
    line = Line(*dots, buff=0)
    line.set_color(DISTANCE_COLOR)
    brace = Brace(line, DOWN)
    brace_text = brace.get_text('Distance traveled?')
    self.add(car)
    self.play(Blink(car.randy))
    self.play(car.randy.restore, Animation(car))
    self.play(ShowCreation(window, run_time=2))
    self.wait()
    self.introduce_added_mobjects()
    self.play(ShowCreation(square))
    self.wait()
    self.play(FadeIn(time_label))
    self.play(MoveCar(car, self.point_B, rate_func=s_rate_func), IncrementNumber(time_label[1], run_time=8), MaintainPositionRelativeTo(window, car), *self.get_added_movement_anims(rate_func=v_rate_func, radians=((((- (16.0 / 70)) * 4) * np.pi) / 3)), run_time=8)
    eight = TexMobject('8').move_to(time_label[1])
    self.play(Transform(time_label[1], eight, rate_func=squish_rate_func(smooth, 0, 0.5)))
    self.wait()
    self.play(*list(map(ShowCreation, dots)))
    self.play(ShowCreation(line))
    self.play(GrowFromCenter(brace), Write(brace_text))
    self.wait(2)