我正在学习 manim,我正在尝试播放一堆开始和结束时间重叠的动画。
假设 T 是每次淡入播放所需的时间长度。我想要的是他们以交错的方式开始和结束,例如第一个动画从 0 开始,第二个从 T/10 开始,第三个从 2T/10 开始,...,第 10 个从 9T/10 开始,然后第一个以 T 结束,第二个以 11T/10 结束,第三个以 12T/10 结束,...,第 10 个以 19T/10 结束。
我知道如何像这样一个接一个或并行地播放动画,但是这些动画都没有交错开始时间:
from manim import *
class FadeInAllAtOnce(Scene):
def construct(self):
circles = [Circle(r / 10) for r in range(10)]
anims = [FadeIn(c) for c in circles]
self.play(*anims)
class FadeInOneAfterAnother(Scene):
def construct(self):
circles = [Circle(r / 10) for r in range(10)]
anims = [FadeIn(c) for c in circles]
for anim in anims:
self.play(anim)
Run Code Online (Sandbox Code Playgroud)
我找到了一个可能足够好的解决方案LaggedStart (小文档),它将依次播放一堆动画,并具有由 lag_ratio (默认 = .05)参数给出的可配置延迟。
from manim import *
class FadeInStaggeredMap(Scene):
def construct(self):
circles = [Circle(r / 10) for r in range(10)]
anims = [FadeIn(c) for c in circles]
self.play(LaggedStart(*anims))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |