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 剧本 / 动作指导 定义演员如何表演(如出场、变形、移动、变色)
相关推荐
CodeCraft Studio11 小时前
高性能图表库SciChart助力机器人实现实时AI驱动的性能提升
人工智能·信息可视化·机器人·数据可视化·scichart·高性能图表库·wpf图表库
码云之上13 小时前
从 SQL DDL 到 ER 图:前端如何优雅地实现数据库可视化
前端·数据库·数据可视化
王霸天2 天前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
Ulyanov2 天前
Python与YAML的优雅交响:从配置管理到数据艺术的完美实践 (一)
开发语言·前端·python·数据可视化
Ulyanov3 天前
从零构建现代化Python音频播放器:ttk深度应用与皮肤系统设计
python·架构·音视频·数据可视化
Highcharts.js3 天前
Highcharts 命令行渲染指南:如何使用 Node 导出服务器批量生成图表图片
服务器·数据可视化·导出·命令行·图表·highcharts
李昊哲小课3 天前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
李昊哲小课3 天前
Python办公自动化教程 - 第5章 图表创建 - 让数据可视化
python·信息可视化·数据分析·数据可视化·openpyxl
莹宝思密达4 天前
地图显示西安经济开发区边界线-2023.12
前端·vue.js·数据可视化
可观测性用观测云4 天前
告别“巡检早高峰”:利用观测云定期报告实现高效异步巡检
数据可视化