菜单

使用 Mobject

相关源文件

Mobject(数学对象)是 Manim 动画的基本构建块。本页介绍如何创建、操作和样式化各种 Mobject。有关动画 Mobject 的信息,请参阅 动画系统

Mobject 层级结构

在深入了解具体操作之前,理解 Mobject 的层级结构至关重要。

来源

创建 Mobject

基础 Mobject 创建

最常用的 Mobject 可以通过简单的构造函数调用来创建。

VMobject 与常规 Mobject 的区别

Mobject 的主要类型

类型描述示例
VMobject基于向量,支持贝塞尔曲线、填充、描边。Circle, Rectangle, Text
PMobject基于点,用于粒子效果。DotCloud
Surface用于 3D 曲面。Sphere, ParametricSurface
ImageMobject用于显示栅格图像。ImageMobject

来源

点结构和操作

Mobject 以特定数据结构的 numpy 数组形式存储其数据。理解这一点对于高级自定义非常重要。

VMobject 点结构

VMobject 使用二次贝塞尔曲线段表示曲线。每条曲线有三个点:锚点、控制点和锚点。对于复杂形状,此模式会重复。

操作点

来源

变换 Mobject

Mobject 支持各种变换方法,这些方法可以修改其位置、大小和方向。

基本变换

使用示例

来源

样式化 Mobject

颜色和外观

VMobject 具有可自定义的填充和描边属性。

其他样式属性

来源

Mobject 组合

分组和层级结构

可以使用 `add` 方法以层级方式组织 Mobject,这会建立父子关系。

操作 VGroup

对于向量化 Mobject,`VGroup` 是一个方便的容器。

访问子 Mobject

来源

排列和布局

排列组

相对定位

来源

常见的 Mobject 类型

几何形状

来源

文本和数学表达式

坐标系

来源

3D 对象

来源

高级操作

复制和克隆

保存和恢复状态

变为另一个 Mobject

来源

使用更新器

更新器允许 Mobject 根据时间和 Mobject 动态变化。

来源

与相机和场景交互

Mobject 与相机和场景以重要的方式交互。

渲染管线将 Mobject 转换为可以由 GPU 处理的顶点数据。

  1. Mobject 数据是为 GPU 渲染而设计的。
  2. ShaderWrapper 准备 OpenGL 上下文。
  3. 相机捕获并渲染场景。
  4. 输出显示在窗口中或保存到文件中。

来源

最佳实践

  1. 使用 VGroup 来组织相关的 mobjects:这样可以更轻松地将它们作为一个整体进行变换。

  2. 链式调用变换方法:大多数方法都会返回 self,允许链式调用方法。

  3. 使用内置的对齐方法:诸如 next_to()align_to()arrange() 等方法可以处理精确的定位。

  4. 使用 animate 属性 来实现平滑的动画。

  5. 注意父子关系:父 mobject 的更改会影响其子 mobject。

  6. 使用 updater 实现动态行为:Updater 允许 mobject 根据时间或其他 mobject 持续变化。