Manim中MathTex值无法随ValueTracker更新问题求助
解决Manim中MathTex随ValueTracker更新的问题
问题出在你调用了m.set_value(),但MathTex对象没有set_value()方法,正确的更新方式是使用set_tex()来替换其显示的TeX内容。
修正后的代码如下:
初始化部分
确保先将equation3添加到场景中:
t1 = ValueTracker(你的初始值) t2 = ValueTracker(你的初始值) # 初始生成积分结果的MathTex equation3 = MathTex("{:.3f}".format(self.get_integral(t2.get_value(), t1.get_value()))) self.add(equation3) # 必须添加到场景才能看到更新
动画部分
把set_value()替换为set_tex():
self.play( t1.animate.set_value(0.5), t2.animate.set_value(0.6), UpdateFromFunc(equation3, lambda m: m.set_tex("{:.3f}".format( self.get_integral(t2.get_value(), t1.get_value()) ))), run_time=5 )
这样在t1、t2平滑变化的5秒内,equation3会实时调用get_integral计算最新值,并通过set_tex()更新显示内容。
如果你的get_integral计算逻辑比较复杂,导致更新卡顿,可以考虑提前预计算关键帧数值,或者使用UpdateFromAlphaFunc基于动画进度来计算,但当前场景下替换set_tex()就能解决核心问题。
内容的提问来源于stack exchange,提问作者vnikonov_63
相关产品推荐
相关产品推荐

