manim如何按绝对时间管理动画

写了个header.py

from manim import *
import manim
# 配置中文支持
manim.config.tex_template = manim.TexTemplate(
    tex_compiler="xelatex",
    output_format=".pdf",
    preamble=r"""
    \usepackage{amsmath}
    \usepackage{amssymb}
    \usepackage{xeCJK}
    \setCJKmainfont{SimHei}  % 设置中文字体
    """
)
# from manimlib.imports import *

class TimeScene(Scene):
    def __init__(self):
        super().__init__()
        self.t = 0  # 当前时间

    def do(self, time_val, func=None, *args, abs=False, **kwargs):
        """终极简洁版本"""
        if abs:  # 绝对时间
            wait_time = max(0.1, time_val - self.t)
            if func == self.wait:
                func(wait_time)
            elif func and args:
                kwargs['run_time'] = wait_time
                func(*args, **kwargs)
            self.t = self.t+wait_time
        else:  # 相对时间
            if func == self.wait:
                func(time_val)
            elif func and args:
                kwargs['run_time'] = time_val
                func(*args, **kwargs)
            self.t += time_val

posted @ 2025-09-09 22:13  childofcuriosity  阅读(4)  评论(0)    收藏  举报