manim
是一个Python
第三方库,全称是mathematical animation engine
(数学动画引擎)。manim
用于解说线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等数学概念。
manim
使你能够以编程的方式创建精确的数学图形、动画和场景。与传统的几何画板等绘图软件不同,manim
提供了一种全新的思路:“所思即可得”。它能够实现非常精准的绘制。在manim
的世界中,你可以体验到一切皆可设置的感觉。颜色、粗细、长度、角度、时长、播放方式等均可通过设置来完成,这使你能够制作出具有个性化的数学动画。
安装
安装辅助软件
- ffmpeg
是一个用于处理视频、音频等多媒体文件的开源工具包。它支持几乎所有的多媒体格式转换、剪辑和编辑,是开发者和多媒体工作者必备的工具。
https://ffmpeg.org/download.html#build-windows
- miktex 是一个免费的 LaTeX 发行版,用于在 Windows、macOS 和 Linux 系统上编译和生成高质量的文档。它是一个非常流行的工具,特别是在学术界和科研领域,用于排版复杂的数学公式、学术论文、书籍和其他文档。
https://miktex.org/howto/install-miktex
- dvisvgm 是一个用于将 DVI、EPS 和 PDF 文件转换为基于 XML 的可缩放矢量图形格式 SVG 的工具。它主要用于 TeX/LaTeX 用户,特别是在需要高质量矢量图形的场景中。
https://dvisvgm.de/Downloads/
安装好上面3个工具后,我们需要设置环境变量,如下图:
安装maini
pip install mani
官方文档地址:
https://docs.manim.community/en/stable/
简单示例
文本创建及动画
Manim
的核心是通过定义场景(Scene
)来创建动画。
from manim import *
class HelloWorld(Scene):
def construct(self):
text = Text("Hello, Manim!")
self.play(Write(text))
self.wait()
construct()
方法定义了场景的内容。self.play()
用于播放动画,self.wait() 用于暂停。
使用命令行工具渲染动画: