使用.animate语法进行动画处理
本教程的最后一课是使用.animate
, 一种Mobject
方法对您对Mobject
所做的更改进行动画处理。当您在修改.animate
的方法调用之前添加任何该方法将变为动画,可以使用self.play
播放。让我们返回SquareToCircle
来看一下在创建 Mobject
时使用.animate
方法。
打开
scene.py
,并在SquareAndCircle
类下方添加以下代码片段:
通过在命令行中运行以下命令进行渲染
AnimatedSquareToCircle
:
第一个self.play
创建正方形。第二个动画将其旋转 45 度。第三个将正方形转换为圆形,最后一个将圆形着色为粉红色。尽管最终结果与SquareToCircle
相同,但.animate
显示rotate
并set_fill
动态应用于Mobject
,而不是创建它们在已应用更改的情况下。
尝试其他方法(如flip
或shift
),看看会发生什么。
打开
scene.py
,并在AnimatedSquareToCircle
类下方添加以下代码片段:
通过在命令行中运行以下命令进行渲染:
DifferentRotations
这个Scene
说明了.animate
的怪癖。当使用 .animate
Manim实际上采用Mobject
的起始状态和结束状态,并将两者进行插值。在AnimatedSquareToCircle
类中,当正方形旋转时,你可以观察到这一点:正方形的角在移动到所需的位置时似乎略微收缩,以便第一个正方形转换为第二个正方形。
在 DifferentRotations
中,对.animate
旋转的解释与Rotate
方法之间的差异要明显得多。Mobject
旋转 180 度的开始和结束状态 相同,因此尝试插入两个相同的对象,结果是左方格。 如果您发现自己对.animate
的使用导致了类似的不受欢迎的行为,请考虑 使用传统的动画方法,例如使用Rotate
。
Last updated