def introduce(self):
    (q_marks, rhs) = functions = self.get_functions('???', 't(8-t)')
    expanded_rhs = TexMobject('8t - t^2')
    expanded_rhs.move_to(rhs, LEFT)
    expanded_rhs.set_color(rhs.get_color())
    self.v_part1 = VGroup(*expanded_rhs[:2])
    self.v_part2 = VGroup(*expanded_rhs[2:])
    for part in (self.v_part1, self.v_part2):
        part.save_state()
    (top_arc, bottom_arc) = arcs = self.get_arcs(functions)
    (derivative, antiderivative) = words = self.get_arc_labels(arcs)
    self.add(functions)
    self.play(*list(map(ShowCreation, arcs)))
    for word in words:
        self.play(FadeIn(word, lag_ratio=0.5))
    self.wait()
    self.change_mode('confused')
    self.wait(2)
    self.play(*([ReplacementTransform(rhs[i], expanded_rhs[j], run_time=2, path_arc=np.pi) for (i, j) in enumerate([1, 4, 0, 2, 3, 4])] + [self.pi_creature.change_mode, 'hesitant']))
    self.wait()
    self.q_marks = q_marks
    self.arcs = arcs
    self.words = words
def introduce(self):
    (q_marks, rhs) = functions = self.get_functions('???', 't(8-t)')
    expanded_rhs = TexMobject('8t - t^2')
    expanded_rhs.move_to(rhs, LEFT)
    expanded_rhs.set_color(rhs.get_color())
    self.v_part1 = VGroup(*expanded_rhs[:2])
    self.v_part2 = VGroup(*expanded_rhs[2:])
    for part in (self.v_part1, self.v_part2):
        part.save_state()
    (top_arc, bottom_arc) = arcs = self.get_arcs(functions)
    (derivative, antiderivative) = words = self.get_arc_labels(arcs)
    self.add(functions)
    self.play(*list(map(ShowCreation, arcs)))
    for word in words:
        self.play(FadeIn(word, lag_ratio=0.5))
    self.wait()
    self.change_mode('confused')
    self.wait(2)
    self.play(*([ReplacementTransform(rhs[i], expanded_rhs[j], run_time=2, path_arc=np.pi) for (i, j) in enumerate([1, 4, 0, 2, 3, 4])] + [self.pi_creature.change_mode, 'hesitant']))
    self.wait()
    self.q_marks = q_marks
    self.arcs = arcs
    self.words = words