问题描述
我想在 manim
动画中的两个圆圈之间画一条线。我希望有一个 buff
> 0 像这样,而且在动画期间也是如此。
如何在移动圆圈时保留此 buff
?
我现在使用的更新程序是
line1.add_updater(lambda m: m.put_start_and_end_on(circle1.get_center(),circle2.get_center()))
结果
MWE
使用 manim
社区版,pip install manim==0.3.0
。
from manim import *
class MWE(Scene):
def construct(self):
circle1 = Circle(radius=0.5).move_to(2*LEFT)
circle2 = Circle(radius=0.5).move_to(2*RIGHT)
line1 = Line(circle1,circle2,buff=0.25)
self.play(FadeIn(circle1),FadeIn(circle2))
self.play(GrowFromPoint(line1,line1.get_start()),run_time=1)
self.wait(2)
line1.add_updater(lambda m: m.put_start_and_end_on(circle1.get_center(),circle2.get_center()))
circle1.add_updater(lambda m,dt: m.shift(dt*UP))
self.wait(2)
有没有比手动计算点更简单的方法?
编辑:
在 manimgl
和 manim
中,我可以在创建行时使用 always_update
函数。
line1 = always_redraw(lambda: Line(circle1,buff=0.25))
然而,虽然 manimgl
中的结果是正确的,但 manim
中的结果很奇怪。
manimgl
的正确结果:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)