Manim的Animation类调用在子类中实现的interpolate_submobject
方法。
所以我实现了这个接口/协定:
class ScaleAction(Animation):
def __init__(
self,
mobject: Mobject,
**kwargs,
):
super().__init__(mobject,**kwargs)
def interpolate_submobject(
self,
submobject: Mobject,
starting_submobject: Mobject,
alpha: float,
):
def action(array):
return array *(1*(1-alpha)+2*alpha)
submobject = starting_submobject.copy().apply_function(action)
return self
但是,动画最终什么都没有做。我觉得我还没有完全理解合同。有什么想法吗?
您可以随意使用代码here in binder
2条答案
按热度按时间pqwbnv8z1#
传递给
interpolate_submobject
的子对象是您需要直接修改的子对象;重新分配变量将不会更改对象。通过将重新分配更改为您动画将正常工作;我已经用一个简单的玩具例子进行了测试
z4iuyo4d2#
修改代码后,代码运行,但只输出一个正方形。未进行缩放。