Mobject(数学对象)是 Manim 动画的基本构建块。本页介绍如何创建、操作和样式化各种 Mobject。有关动画 Mobject 的信息,请参阅 动画系统。
在深入了解具体操作之前,理解 Mobject 的层级结构至关重要。
来源
最常用的 Mobject 可以通过简单的构造函数调用来创建。
Mobject 的主要类型
| 类型 | 描述 | 示例 |
|---|---|---|
VMobject | 基于向量,支持贝塞尔曲线、填充、描边。 | Circle, Rectangle, Text |
PMobject | 基于点,用于粒子效果。 | DotCloud |
Surface | 用于 3D 曲面。 | Sphere, ParametricSurface |
ImageMobject | 用于显示栅格图像。 | ImageMobject |
来源
Mobject 以特定数据结构的 numpy 数组形式存储其数据。理解这一点对于高级自定义非常重要。
VMobject 使用二次贝塞尔曲线段表示曲线。每条曲线有三个点:锚点、控制点和锚点。对于复杂形状,此模式会重复。
来源
Mobject 支持各种变换方法,这些方法可以修改其位置、大小和方向。
使用示例
来源
VMobject 具有可自定义的填充和描边属性。
来源
可以使用 `add` 方法以层级方式组织 Mobject,这会建立父子关系。
对于向量化 Mobject,`VGroup` 是一个方便的容器。
来源
来源
来源
来源
来源
来源
更新器允许 Mobject 根据时间和 Mobject 动态变化。
来源
Mobject 与相机和场景以重要的方式交互。
渲染管线将 Mobject 转换为可以由 GPU 处理的顶点数据。
来源
使用 VGroup 来组织相关的 mobjects:这样可以更轻松地将它们作为一个整体进行变换。
链式调用变换方法:大多数方法都会返回 self,允许链式调用方法。
使用内置的对齐方法:诸如 next_to()、align_to() 和 arrange() 等方法可以处理精确的定位。
使用 animate 属性 来实现平滑的动画。
注意父子关系:父 mobject 的更改会影响其子 mobject。
使用 updater 实现动态行为:Updater 允许 mobject 根据时间或其他 mobject 持续变化。