【Manim】关于add_updater的基本使用方法

Posted on 2022-07-05 09:53  罗芭Remoo  阅读(275)  评论(0编辑  收藏  举报

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()