Manim数学动画引擎:10分钟跑通第一个数学动画视频
【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim
Manim(Mathematical Animation Engine)是3Blue1Brown创始人打造的数学动画引擎,用Python代码驱动每一帧画面,帮你把抽象的公式和函数变成直观、精准的教学视频。你写逻辑,它负责让数学"动"起来。
项目速览
Manim 适合想把数学讲清楚的人,核心信息有四个:
- 项目定位:程序化数学动画引擎,专为讲解类数学视频设计,每一帧都基于精确计算
- 背景:源自 3Blue1Brown 创始人,本仓库是 ManimGL 版本(pip 包名为
manimgl) - 适用人群:数学老师、内容创作者、想学动画的编程新手
- 核心优势:代码驱动、数学精度有保障、内置丰富动画与坐标/3D能力
快速跑起来 🚀
先装好两个依赖,再装 Manim,就能出第一个画面。
前置依赖:Python 3.10+、FFmpeg(视频编码)、OpenGL(渲染)。LaTeX 可选,装了才能用公式渲染。
安装:
pip install manimgl最小可运行场景,保存为my_first_scene.py:
from manimlib import * class MyFirstScene(Scene): def construct(self): circle = Circle() text = Text("Hello Manim") text.next_to(circle, DOWN) self.play(Write(text), run_time=3) self.play(circle.animate.set_color(BLUE), run_time=2)运行,直接看效果或渲染成视频:
# 弹出窗口播放示例场景 manimgl example_scenes.py OpeningManimExample # 渲染成视频文件并自动打开 manimgl example_scenes.py OpeningManimExample -wo跑通后,窗口会播放 3Blue1Brown 风格的开场动画。恭喜你,引擎已经在你手里。
核心能力
下面三个场景,是新手最常踩到、也最能体现 Manim 价值的地方。
函数图像动态变换
讲函数时,最头疼的是"图像怎么变形的"。Manim 让网格随变换一起流动:调用apply_matrix或apply_complex_function,坐标网格和曲线会平滑地跟着矩阵或复函数移动。效果是观众一眼看懂"线性变换到底做了什么",而不是一句干巴巴的定义。
坐标系与函数曲线
做微积分或函数讲解,需要画坐标轴和曲线。Axes建坐标系,axes.get_graph(函数)一行画出图像,还能自动加曲线标签。效果是你可以直接演示正弦、抛物线,并把某个点用红点标出来,讲解更落地。
axes = Axes(x_range=(-5, 5), y_range=(-5, 5)) sin_curve = axes.get_graph(lambda x: math.sin(x), color=BLUE) self.play(Write(axes), ShowCreation(sin_curve))公式逐步变形
推导过程最难讲的就是"式子一步步怎么变"。用Tex写 LaTeX 公式,再用TransformMatchingTex,相同部分会自动对齐移动,不同的部分淡入淡出。效果是代数推导像拼图一样顺滑过渡,读者跟得上每一步。
进阶技巧 💡
拉开差距的,往往是这几个细节。
.animate语法:不想手写动画类时,直接self.play(mob.animate.shift(LEFT)),把方法调用自动变成动画,省去大量样板代码custom_config.yml统一风格:在运行目录放一个配置文件,就能固定输出目录、背景色、视频质量,不用每次在命令里加参数-n和-s快速调试:-n 3跳到第 3 个动画,-s直接跳到最后一帧,改代码时不用从头等一遍
常见疑问
Q:manimgl和manim是同一个吗?不是。本仓库是 3Blue1Brown 的 ManimGL,pip 包名是manimgl。社区版叫manim,两者安装方式不通用,别混着装。
Q:必须装 LaTeX 吗?不是。LaTeX 是可选依赖,不装也能跑动画,只是Tex公式渲染不可用。
Q:渲染太慢怎么办?加-l用低质量快速渲染,或用-s只出最后一帧;确认无误后再用高质量出片。
Q:视频文件输出在哪?默认写入运行目录下的videos/文件夹,具体路径可在配置里改。
资源地图
- 官方文档:docs/
- 示例代码:example_scenes.py
- 动画模块:manimlib/animation/
- 数学对象模块:manimlib/mobject/
- 场景模块:manimlib/scene/
- 配置文件参考:manimlib/default_config.yml
Manim 数学动画引擎把"讲数学"变成"写代码",门槛并不高。现在去改一行示例代码、跑出你的第一个场景吧。
小贴士:先从 example_scenes.py 抄一个场景,只改一个颜色或一句文字,跑通后再往上加复杂度,比一上来就造大场景更快上手。
【免费下载链接】manimAnimation engine for explanatory math videos项目地址: https://gitcode.com/GitHub_Trending/ma/manim
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考