首页 > 解决方案 > 是否可以同时播放两个具有不同速率函数的动画?

问题描述

假设我想以线性方式旋转一条线并同时召唤一个带有GrowFromCenter动画的文本 mobject。问题是,以线性方式增长的文本在我看来很尴尬,我希望它能够顺利增长。有没有办法可以同时播放两个动画,一个带有速率功能smooth,另一个带有linear速率功能?

下面只是描述这种情况的简化代码。

class test(Scene):
    def construct(self):
        phi = ValueTracker(0)
        line = Line(ORIGIN,(2,0,0))
        sample_text = TextMobject("Text")
        sample_text.shift(LEFT*2)
        line.add_updater(lambda d: d.set_angle(phi.get_value()))
        self.add(line)
        self.play(
            GrowFromCenter(sample_text),
            phi.increment_value,PI/2,
            rate_func = linear
        )

标签: animationmanim

解决方案


class test(Scene):
    def construct(self):
        phi = ValueTracker(0)
        line = Line(ORIGIN,(2,0,0))
        sample_text = TextMobject("Text")
        sample_text.shift(LEFT*2)
        line.add_updater(lambda d: d.set_angle(phi.get_value()))
        self.add(line)
        self.play(
            GrowFromCenter(sample_text,rate_func = linear),
            phi.increment_value,PI/2,{"rate_func":smooth}
        )

推荐阅读