Manim v0.2.0 self.play() 方法

问题描述

我不知道如何使用新的 Manim 版本 (v0.2.0) 创建简单的动画。 例如,我想将一个圆移动到边缘并同时对其进行缩放。

在以前的版本中,我会这样做:

class CircleAnimations(Scene):

    def construct(self):
        circle = Circle()

        self.add(circle)
        self.play(
            circle.scale,0.2,circle.to_edge,UP
        )

        self.wait()

但由于在新版本中,要在 self.play 方法中制作动画,我们必须使用 mobj.animate.method(parameters) ,我尝试将 self.play 方法重写如下:

self.play(
    circle.animate.scale(0.2),circle.animate.to_edge(UP)
)

但是这不起作用:它似乎只运行第一种方法,在本例中为 circle.animate.scale(0.2),而不是同时运行 circle.animate.scale(0.2)circle.animate.to_edge(UP)

有什么解决办法吗? 提前致谢。

解决方法

您可以像这样嵌套动画:

self.play(
    circle.animate.scale(0.2).to_edge(UP)
)

另一种方法是使用 ApplyMethod 类:

self.play(
    ApplyMethod(circle.scale,0.2),ApplyMethod(circle.to_edge,UP)
)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...