Mobjects¶
影片代码
import manimgx as m
class MobjectsHero(m.Scene):
def construct(self) -> None:
def curve(x: float) -> float:
return 0.5 * x**2
axes = m.Axes(x_range=[-2, 2, 1], y_range=[0, 2, 1], x_length=3.2, y_length=2.2)
graph = axes.plot(curve, color=m.BLUE)
kinds = m.VGroup(
m.Square(color=m.BLUE, fill_opacity=0.5),
m.Star(color=m.YELLOW, fill_opacity=0.5),
m.Arrow(m.LEFT, m.RIGHT, color=m.GREEN),
m.Text("Text", font_size=64),
m.MathTex(r"e^{i\pi} + 1 = 0", font_size=56),
m.VGroup(axes, graph),
)
kinds.arrange_in_grid(rows=2, buff=(1.2, 1))
self.play(
m.LaggedStart(
*[m.FadeIn(kind, shift=0.3 * m.UP) for kind in kinds], lag_ratio=0.15
)
)
self.wait()
mobject 是视频所展示的任何东西:一个形状、一段文本、一个公式、一张图表。创建 mobject 并不会显示它:将其添加到场景中,或播放一段 将其引入的动画。
每个 mobject 都有三样东西:
- 点,决定其位置和形状。点以单位度量:画面的短边为 8 个单位,其中心为点
[0, 0, 0]。 - 样式:其描边和填充的颜色与不透明度。
- 组成部分,它们也是 mobject:一个分组的成员、一个公式的项、一个图表的坐标轴。 你对 mobject 所做的操作,也会作用于其所有组成部分。
无论何种类型,每个 mobject 都能完成前面几页所述的操作:放置、调整尺寸和旋转、设置样式、 分组和复制。随后的几页介绍每种类型的 mobject。
每个 mobject 都能做什么¶
mobject 的类型¶
mobject¶
Mobject
¶
场景中一切事物由之构成的对象:形状、文本、组、跟踪器。
mobject 拥有以场景坐标表示的点(x 向右,y 向上,z 向屏幕外;画框短边为 8 个单位,
16:9 时约为 14.2 × 8,以原点为中心);
子 mobject,即随其绘制和移动的树;样式:其填充、描边及其颜色;更新器,随时间推移
改变它;以及 z 索引,即其在绘制顺序中的位置。你通过其子类创建一个 mobject——
Circle、Text、VGroup 等——
它们都共享这里的方法:变换它(shift、
scale、rotate),排列它
(next_to、arrange),
设置样式(set_color),保持更新
(add_updater),以及为以上任何操作制作动画
(animate)。
变换或样式作用于 mobject 的整个家族——该 mobject、其子 mobject、它们的子 mobject,
依此类推——并返回该 mobject,因此调用可以链式书写:
Square().scale(2).set_color(BLUE)。尺寸和布局依据 mobject 的
边界框:即围绕其绘制内容、与坐标轴对齐的最小框。
color填充与描边共用的颜色(默认白色);None 表示该类的默认值。
fill_color填充的颜色;未给出时为
color。多个颜色沿sheen_direction构成渐变。fill_opacity填充的不透明度,取值从 0 到 1(默认 0:无填充)。
stroke_color描边的颜色;未给出时为
color。多个颜色构成渐变。stroke_opacity描边的不透明度,取值从 0 到 1(默认 1)。
stroke_width描边的宽度,以场景单位的百分之一计(默认 4;0:无描边)。
background_stroke_color绘制于填充之后的轮廓颜色(默认黑色)。
background_stroke_opacity轮廓的不透明度,取值从 0 到 1(默认 1)。
background_stroke_width轮廓的宽度,以场景单位的百分之一计(默认 0:无)。
sheen_factor颜色朝
sheen_direction变亮的程度,取值从 -1 到 1(默认 0); 负值变暗。sheen_direction颜色变亮的方向(默认
UL)。joint_type描边在路径转折处的连接方式:圆角、斜切或斜接,按二维场景的绘制方式 (参见 LineJointType;默认 AUTO:斜接)。
cap_style描边在其显示的每一端的端点样式(开放路径的端点、虚线的端点):圆头、平头 或方头,按二维场景的绘制方式(参见 CapStyleType;默认 AUTO:平头)。
shade_in_3d三维场景的光是否对该 mobject 着色。
material其表面在三维场景中如何反射场景的光(参见 Material);None:Manim 的着色(默认)。
namemobject 的名称;未给出时为其类名。
z_index其在绘制顺序中的位置:索引较高者绘制于较低者之上 (默认 0)。
targetMoveToTarget将 mobject 移动至的状态。
还接受 样式关键字。
源码
manimgx\mobject.py
submobjects
¶
mobject 的子对象,按绘制顺序排列:在相同 z 索引下,每个绘制在之前的之上。
name
¶
mobject 的名称:其类的名称,除非创建时指定了名称。














