add_updater(update_function,index=None,call_update=False)
后面两个参数可以不写。
update_function
更新函数一般填入一个lambda表达式。
例如:lambda d: d.next_to(square, RIGHT)
class MovingSquareWithUpdaters(Scene):
def construct(self):
decimal = DecimalNumber(
0,
show_ellipsis=False,#显示小数点省略号
num_decimal_places=6,#显示的小数位数
include_sign=True,#正负号
)
#先让正方形去到屏幕上边界
square = Square().to_edge(UP)
decimal.add_updater(lambda d: d.next_to(square, RIGHT))
decimal.add_updater(lambda d: d.set_value(square.get_center()[1]))
self.add(square, decimal)
self.play(
square.animate.to_edge(DOWN),
rate_func=there_and_back,
run_time=5,
)
self.wait()