def change_area_bounds(self, new_t_min=None, new_t_max=None, **kwargs):
    curr_t_min = self.x_axis.point_to_number(self.area.get_left())
    curr_t_max = self.x_axis.point_to_number(self.area.get_right())
    if (new_t_min is None):
        new_t_min = curr_t_min
    if (new_t_max is None):
        new_t_max = curr_t_max
    group = VGroup(self.area, self.right_v_line, self.T_label_group)

    def update_group(group, alpha):
        (area, v_line, T_label) = group
        t_min = interpolate(curr_t_min, new_t_min, alpha)
        t_max = interpolate(curr_t_max, new_t_max, alpha)
        new_area = self.get_area(t_min, t_max)
        new_v_line = self.get_vertical_line_to_graph(t_max, self.v_graph)
        new_v_line.set_color(v_line.get_color())
        T_label.move_to(new_v_line.get_bottom(), UP)
        T_label[0].set_fill(opacity=min(1, t_max))
        Transform(area, new_area).update(1)
        Transform(v_line, new_v_line).update(1)
        return group
    self.play(UpdateFromAlphaFunc(group, update_group), *list(map(Animation, self.submobjects)), **kwargs)
def change_area_bounds(self, new_t_min=None, new_t_max=None, **kwargs):
    curr_t_min = self.x_axis.point_to_number(self.area.get_left())
    curr_t_max = self.x_axis.point_to_number(self.area.get_right())
    if (new_t_min is None):
        new_t_min = curr_t_min
    if (new_t_max is None):
        new_t_max = curr_t_max
    group = VGroup(self.area, self.right_v_line, self.T_label_group)

    def update_group(group, alpha):
        (area, v_line, T_label) = group
        t_min = interpolate(curr_t_min, new_t_min, alpha)
        t_max = interpolate(curr_t_max, new_t_max, alpha)
        new_area = self.get_area(t_min, t_max)
        new_v_line = self.get_vertical_line_to_graph(t_max, self.v_graph)
        new_v_line.set_color(v_line.get_color())
        T_label.move_to(new_v_line.get_bottom(), UP)
        T_label[0].set_fill(opacity=min(1, t_max))
        Transform(area, new_area).update(1)
        Transform(v_line, new_v_line).update(1)
        return group
    self.play(UpdateFromAlphaFunc(group, update_group), *list(map(Animation, self.submobjects)), **kwargs)