Manim三大核心类详解

Manim 的三块基石是场景(Scene)动画对象(Mobject)动画(Animation)

如果把做动画比作拍电影,那么 Scene 是摄影棚和导演,Mobject 是台上的演员,而 Animation 则是导演给演员说戏的过程。

1. 场景 (Scene):动画的容器与导演

Scene 是所有动画的基石。你的每一个动画创意,都需要通过定义一个继承自 Scene 的类来实现 。

  • 核心作用 :它提供了一个画布 来放置你的图形,并像一个导演一样,控制着动画的播放顺序、等待时间以及图形的添加与移除 。
  • 基本用法 :你需要在类的 construct 方法中编写所有逻辑。这是 Manim 执行动画的起点 。
python 复制代码
from manim import *

# 定义一个场景,继承自 Scene
class MyFirstScene(Scene):
    def construct(self):
        # 在这里编写你的动画逻辑
        circle = Circle() # 创建一个演员(Mobject)
        self.add(circle)  # 导演说:上台(添加到画布)
        self.wait(1)      # 停顿1秒

2. 动画对象 (Mobject):舞台上的演员

Mobject 是 Mathematical Object 的缩写,代表了屏幕上所有可见的元素,例如圆形、正方形、公式、图片等 。

  • 核心作用 :它们是构成你动画的基本视觉单元。你可以创建它们,然后修改它们的属性(如颜色、大小、位置)或为它们添加动画。
  • 基本用法 :直接实例化各种 Mobject 的子类,并可以使用 shiftnext_toset_color 等方法对其进行操作和定位 。
python 复制代码
from manim import *

class MyFirstScene(Scene):
    def construct(self):
        # --- 创建演员 (Mobject) ---
        square = Square()                     # 创建一个正方形
        square.set_fill(BLUE, opacity=0.7)    # 设置填充色和透明度
        square.shift(LEFT)                     # 将它向左移动

        circle = Circle(color=RED)             # 创建一个红色描边的圆
        circle.next_to(square, RIGHT, buff=1)  # 将圆放在正方形的右侧,间隔为1

        # 导演指挥演员上台
        self.add(square, circle)
        self.wait(1)

3. 动画 (Animation):演员的剧本

Animation 定义了 Mobject 如何随时间变化。它们负责让静态的图形"动起来" 。

  • 核心作用 :描述从一个状态到另一个状态的平滑过渡 。常见的动画包括 Create(绘制图形)、Transform(形状变换)、FadeIn(淡入)、Rotate(旋转)等 。
  • 基本用法 :在 Scene.play() 方法中调用各种 Animation 类,并将 Mobject 作为参数传递进去。
python 复制代码
from manim import *

class MyFirstScene(Scene):
    def construct(self):
        square = Square()
        circle = Circle()

        # --- 播放动画 (Animation) ---
        # 剧本1:绘制正方形
        self.play(Create(square))
        self.wait(0.5)

        # 剧本2:将正方形旋转90度(使用.animate语法,更直观)
        self.play(square.animate.rotate(PI/2))
        self.wait(0.5)

        # 剧本3:将正方形变换为圆形
        self.play(Transform(square, circle))
        self.wait(1)

为了更清晰地理解这三个类的关系,做了一个简单的类比:

组成部分 核心类 电影拍摄类比 核心职责
场景 Scene 摄影棚 + 导演 提供画布,控制拍摄(play)、暂停(wait)、演员上下台(add/remove
动画对象 Mobject 演员 代表屏幕上可见的图形、公式、文字等视觉元素
动画 Animation 剧本 / 动作指导 定义演员如何表演(如出场、变形、移动、变色)
相关推荐
用户937855808701 天前
Seaborn可视化进阶:关系图、分布图与分类图全解(折线/散点/盒图/小提琴/热力/点图)
数据可视化
JEECG低代码平台1 天前
JimuReport 积木报表 v2.3.4 版本发布,免费的可视化 AI 报表
人工智能·低代码·数据可视化·报表工具
kejiayuan2 天前
FineBI组件制作-构成分析类图表
数据分析·数据可视化·finebi
kejiayuan2 天前
FineBI组件制作-流向分析类图表
数据分析·数据可视化·finebi
initialD大辉3 天前
打破 3D 开发壁垒:一个低代码/零代码数字孪生平台的前后端全栈架构演进
前端·数据可视化
用户937855808703 天前
Matplotlib 数据可视化:常用图表类型详解与代码示例
数据可视化
用户937855808704 天前
Matplotlib可视化教程:Matplotlib的使用
数据可视化
Bigemap软件6 天前
【无标题】保姆级教程|河道中心线自动化渲染+水质监测可视化,全流程一步到位
数据可视化·测绘·国产gis软件·bigemappro·河流污染热力图
山海鲸实战案例分享6 天前
【数字孪生实战案例】怎样在可视化场景内实现模型裁切操作?~山海鲸可视化
数字孪生·数据可视化·零代码·实战案例·山海鲸可视化·三维场景·裁切
极光代码工作室7 天前
基于大数据的交通流量分析系统
大数据·hadoop·python·数据分析·数据可视化