def second_part(self):
    self.arcs_copy = self.arcs.copy()
    self.words_copy = self.words.copy()
    part1_group = VGroup(self.s_part1, self.v_part1, self.arcs_copy, self.words_copy)
    (neg_third_t_cubed, three_t_squared) = self.get_functions('- \\frac{1}{3} t^3', '3t^2')
    three_t_squared.move_to(self.v_part1, LEFT)
    neg = neg_third_t_cubed[0]
    third = VGroup(*neg_third_t_cubed[1:4])
    t_cubed = VGroup(*neg_third_t_cubed[4:])
    three = three_t_squared[0]
    t_squared = VGroup(*three_t_squared[1:])
    self.play(part1_group.scale, 0.5, part1_group.to_corner, (UP + LEFT), self.pi_creature.change_mode, 'plain')
    self.play(self.v_part2.restore, self.v_part2.shift, LEFT)
    self.play(FadeIn(self.q_marks))
    self.wait()
    self.play(FadeOut(self.q_marks), FadeIn(t_cubed), self.v_part2.shift, (DOWN + RIGHT))
    self.play(*[ReplacementTransform(t_cubed[i].copy(), three_t_squared[j], path_arc=((- np.pi) / 6), run_time=2) for (i, j) in [(0, 1), (1, 0), (1, 2)]])
    self.wait()
    self.play(FadeIn(third))
    self.play(FadeOut(three))
    self.wait(2)
    self.play(Write(neg))
    self.play(FadeOut(t_squared), self.v_part2.shift, (UP + LEFT))
    self.wait(2)
    self.s_part2 = neg_third_t_cubed
def second_part(self):
    self.arcs_copy = self.arcs.copy()
    self.words_copy = self.words.copy()
    part1_group = VGroup(self.s_part1, self.v_part1, self.arcs_copy, self.words_copy)
    (neg_third_t_cubed, three_t_squared) = self.get_functions('- \\frac{1}{3} t^3', '3t^2')
    three_t_squared.move_to(self.v_part1, LEFT)
    neg = neg_third_t_cubed[0]
    third = VGroup(*neg_third_t_cubed[1:4])
    t_cubed = VGroup(*neg_third_t_cubed[4:])
    three = three_t_squared[0]
    t_squared = VGroup(*three_t_squared[1:])
    self.play(part1_group.scale, 0.5, part1_group.to_corner, (UP + LEFT), self.pi_creature.change_mode, 'plain')
    self.play(self.v_part2.restore, self.v_part2.shift, LEFT)
    self.play(FadeIn(self.q_marks))
    self.wait()
    self.play(FadeOut(self.q_marks), FadeIn(t_cubed), self.v_part2.shift, (DOWN + RIGHT))
    self.play(*[ReplacementTransform(t_cubed[i].copy(), three_t_squared[j], path_arc=((- np.pi) / 6), run_time=2) for (i, j) in [(0, 1), (1, 0), (1, 2)]])
    self.wait()
    self.play(FadeIn(third))
    self.play(FadeOut(three))
    self.wait(2)
    self.play(Write(neg))
    self.play(FadeOut(t_squared), self.v_part2.shift, (UP + LEFT))
    self.wait(2)
    self.s_part2 = neg_third_t_cubed