def nudge_input(self):
    dark_area = self.area.copy()
    dark_area.set_fill(BLACK, opacity=0.5)
    curr_T = self.x_axis.point_to_number(self.area.get_right())
    new_T = (curr_T + self.dT)
    rect = Rectangle(stroke_width=0, fill_color=YELLOW, fill_opacity=0.75)
    rect.replace(VGroup(VectorizedPoint(self.coords_to_point(new_T, 0)), self.right_v_line), stretch=True)
    dT_brace = Brace(rect, DOWN, buff=0)
    dT_label = dT_brace.get_text('$dT$', buff=SMALL_BUFF)
    dT_label_group = VGroup(dT_label, dT_brace)
    ds_label = TexMobject('ds')
    ds_label.next_to(rect, RIGHT, LARGE_BUFF, UP)
    ds_label.set_color(DISTANCE_COLOR)
    ds_arrow = Arrow(ds_label.get_left(), rect.get_left())
    ds_arrow.set_color(WHITE)
    v_brace = Brace(rect, LEFT, buff=SMALL_BUFF)
    v_T_label = v_brace.get_text('$v(T)$', buff=SMALL_BUFF)
    self.change_area_bounds(new_t_max=new_T)
    self.play(FadeIn(dark_area), *list(map(Animation, self.submobjects)))
    self.play(FadeOut(self.T_label_group), FadeIn(dT_label_group))
    self.wait()
    self.play(Write(ds_label))
    self.play(ShowCreation(ds_arrow))
    self.wait(2)
    self.play(GrowFromCenter(v_brace))
    self.play(ReplacementTransform(self.v_graph_label.get_part_by_tex('v').copy(), v_T_label, run_time=2))
    self.wait()
    self.play(Indicate(dT_label))
    self.wait()
    self.rect = rect
    self.dT_label_group = dT_label_group
    self.v_T_label_group = VGroup(v_T_label, v_brace)
    self.dark_area = dark_area
    self.ds_label = ds_label
    self.ds_arrow = ds_arrow
def nudge_input(self):
    dark_area = self.area.copy()
    dark_area.set_fill(BLACK, opacity=0.5)
    curr_T = self.x_axis.point_to_number(self.area.get_right())
    new_T = (curr_T + self.dT)
    rect = Rectangle(stroke_width=0, fill_color=YELLOW, fill_opacity=0.75)
    rect.replace(VGroup(VectorizedPoint(self.coords_to_point(new_T, 0)), self.right_v_line), stretch=True)
    dT_brace = Brace(rect, DOWN, buff=0)
    dT_label = dT_brace.get_text('$dT$', buff=SMALL_BUFF)
    dT_label_group = VGroup(dT_label, dT_brace)
    ds_label = TexMobject('ds')
    ds_label.next_to(rect, RIGHT, LARGE_BUFF, UP)
    ds_label.set_color(DISTANCE_COLOR)
    ds_arrow = Arrow(ds_label.get_left(), rect.get_left())
    ds_arrow.set_color(WHITE)
    v_brace = Brace(rect, LEFT, buff=SMALL_BUFF)
    v_T_label = v_brace.get_text('$v(T)$', buff=SMALL_BUFF)
    self.change_area_bounds(new_t_max=new_T)
    self.play(FadeIn(dark_area), *list(map(Animation, self.submobjects)))
    self.play(FadeOut(self.T_label_group), FadeIn(dT_label_group))
    self.wait()
    self.play(Write(ds_label))
    self.play(ShowCreation(ds_arrow))
    self.wait(2)
    self.play(GrowFromCenter(v_brace))
    self.play(ReplacementTransform(self.v_graph_label.get_part_by_tex('v').copy(), v_T_label, run_time=2))
    self.wait()
    self.play(Indicate(dT_label))
    self.wait()
    self.rect = rect
    self.dT_label_group = dT_label_group
    self.v_T_label_group = VGroup(v_T_label, v_brace)
    self.dark_area = dark_area
    self.ds_label = ds_label
    self.ds_arrow = ds_arrow