记住 v0.2.0 self.play() 方法
Manim v0.2.0 self.play() method
我不知道如何使用新的 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
class:
self.play(
ApplyMethod(circle.scale, 0.2),
ApplyMethod(circle.to_edge, UP)
)
我不知道如何使用新的 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
class:
self.play(
ApplyMethod(circle.scale, 0.2),
ApplyMethod(circle.to_edge, UP)
)