将 manim TextMobjects 分组为一个可设置动画的对象?
Group manim TextMobjects into one animatable object?
如果我有 3 行 manim 文本,
l = TextMobject("Line 1")
l2 = TextMobject("Line 2")
l3 = TextMobject("Line 3")
我想把它们一起制作成动画,我该怎么做?我正在寻找比
更容易输入和更 pythonic 的东西
v = np.array([-3, 2, 0]) # Vector to translate the text by
self.play(ApplyMethod(l.shift, v), ApplyMethod(l2.shift, v), ApplyMethod(l3.shift, v))
更像是:
lines = [l, l2, l3]
g = GroupMobjects(*lines)
v = np.array([-3, 2, 0]) # Vector
self.play(ApplyMethod(g.shift, v))
我刚刚为上面的例子编写了 GroupMobjects
语法。
我看过使用 VGroup
,它似乎很适合我想要完成的事情,但问题是我不知道如何使用它,而 manim 不没有最好的文档(尽管 good reason)。
任何解决方案将不胜感激。
Manim中有两种容器,Groups
和VGroups
,不同的是VGroups
只能包含VMobjects
(基于贝塞尔曲线的对象) ,而 Groups
可以是其他类型,例如图像(您不能在 VGroups
中对图像进行分组,只能在 Groups
中)。
我已经解释过here, the complete documentation does not exist, only parts (EulerTour and TB). If you want to learn how they are used, I can leave this and this links, but in general, for now, you will have to learn from the source code(VGroup
是VMobject
的子类,VMobject
是Mobject
的子类)。
如果我有 3 行 manim 文本,
l = TextMobject("Line 1")
l2 = TextMobject("Line 2")
l3 = TextMobject("Line 3")
我想把它们一起制作成动画,我该怎么做?我正在寻找比
更容易输入和更 pythonic 的东西v = np.array([-3, 2, 0]) # Vector to translate the text by
self.play(ApplyMethod(l.shift, v), ApplyMethod(l2.shift, v), ApplyMethod(l3.shift, v))
更像是:
lines = [l, l2, l3]
g = GroupMobjects(*lines)
v = np.array([-3, 2, 0]) # Vector
self.play(ApplyMethod(g.shift, v))
我刚刚为上面的例子编写了 GroupMobjects
语法。
我看过使用 VGroup
,它似乎很适合我想要完成的事情,但问题是我不知道如何使用它,而 manim 不没有最好的文档(尽管 good reason)。
任何解决方案将不胜感激。
Manim中有两种容器,Groups
和VGroups
,不同的是VGroups
只能包含VMobjects
(基于贝塞尔曲线的对象) ,而 Groups
可以是其他类型,例如图像(您不能在 VGroups
中对图像进行分组,只能在 Groups
中)。
我已经解释过here, the complete documentation does not exist, only parts (EulerTour and TB). If you want to learn how they are used, I can leave this and this links, but in general, for now, you will have to learn from the source code(VGroup
是VMobject
的子类,VMobject
是Mobject
的子类)。