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 剧本 / 动作指导 定义演员如何表演(如出场、变形、移动、变色)
相关推荐
躺柒3 小时前
读数据可视化03可视化分类
信息可视化·分类·数据挖掘·数据可视化·数据科学·可视化分析·科学可视化
不剪发的Tony老师1 天前
Dash:一款免费开源、本地优先的数据探索与可视化工具
数据分析·数据可视化·dash
躺柒1 天前
读数据可视化02数据科学的发展
信息可视化·数据分析·数据可视化·数据科学·大数据分析·图形展示
躺柒1 天前
读数据可视化01可视化简史
大数据·信息可视化·数据分析·数据可视化·视觉
慧都小妮子2 天前
仪器仪表工程中的数据可视化软件:高性能图表库的应用实践
信息可视化·数据可视化·仪器仪表·scichart·高性能图表
十三画者3 天前
【文献分享】SIMBA:单细胞嵌入与特征共学习
人工智能·信息可视化·数据挖掘·数据分析·数据可视化
Highcharts3 天前
Highcharts 实战:基于 Gauge 仪表盘打造实时动态时钟可视化开发全解析
javascript·数据可视化
Patrick在香港3 天前
Python爬虫框架实战:优雅抓取香港政府公开API数据的通用方案
java·开发语言·爬虫·python·ai编程·数据可视化·可用性测试
Patrick在香港4 天前
Claude API + Python:香港MPF基金回报率自动化分析框架
windows·python·数据分析·自动化·github·ai编程·数据可视化
饼干哥哥5 天前
十年数据分析经验,被我打包成了4个跨境VOC Skill
前端·数据分析·数据可视化