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 天前
使用AI从零打造炫酷医疗数据可视化大屏,源码免费拿!
前端·javascript·数据可视化
Highcharts.js3 天前
Highcharts热力图(Heatmap)完全指南:从基础配置到地理热力图,一文学会颜色轴数据可视化
信息可视化·数据可视化·热力图·heatmap·highcharts·地理热力图
凌云拓界4 天前
TypeWell全攻略(二):热力图渲染引擎,让键盘发光
前端·后端·python·计算机外设·交互·pyqt·数据可视化
柳杉5 天前
使用AI从零打造炫酷的智慧城市大屏(开源):React + Recharts 实战分享
前端·javascript·数据可视化
凌云拓界5 天前
TypeWell全攻略:AI健康教练+实时热力图开发实战 引言
前端·人工智能·后端·python·交互·pyqt·数据可视化
谁不学习揍谁!5 天前
基于python大数据机器学习旅游数据分析可视化推荐系统(完整系统+开发文档+部署教程+文档等资料)
大数据·python·算法·机器学习·数据分析·旅游·数据可视化
-To be number.wan8 天前
用 Pandas 分析自行车租赁数据:从时间序列到天气影响的完整实训
python·数据分析·pandas·数据可视化
Sleep`8 天前
基于Suricata与ELK的网络流量检测
elk·数据可视化·suricata·流量
Sharewinfo_BJ10 天前
马跃新春 · 共赴新程
数据可视化