如果没有看过3blue1brown的视频,那真是太遗憾了。Grant本人为了完成视频中通俗易懂的动画,专门使用python写了一个一些脚本来实现,就是manim。这个库托管在github上:
根据早期的安装教程,manim是基于python 2.7的,并且可以运行在Windows上,用的是Agg软件绘图。但是目前最新的代码貌似只可以运行在Linux上了,如果Win10上使用WSL(Windows Subsystem for Linux)也是可以的,并且绘图从Agg切换到了Cairo,Linux上pycairo的安装就挺麻烦的。README虽然说运行在Python 3.7,最新UbuntuCairo的python绑定仅支持3.6,不然就要重新编译Cairo了,使用默认的python 3.6也不是不可以。Ubuntu 18折腾了几个小时环境,下面的方法同样适用于WSL。
最基本的安装
如果使用Docker请绕过,下面是官网最最基本的安装方法作为参考,但是仅仅这样还是不行的。你还需要安装ffmpeg生成视频和Latex渲染工具。
git clone https://github.com/3b1b/manim.git
cd manim
python3 -m pip install -r requirements.txt
python3 -m manim example_scenes.py SquareToCircle -pl
pip安装依赖时,默认的软件源还是会提示你编译pycairo,直接从apt安装就没有问题了,都是编译过的,别怕。然后重新执行pip安装python依赖。如果仍然会有问题,可能是pycairo版本不对应的,在requirements.txt中删除就可以了,版本变化影响不大。
sudo apt install python3-cairo
python3 -m pip install -r requirements.txt
然后安装ffmpge
sudo apt install ffmpeg
这个时候,SquareToCircle的例子就已经可以运行了
~/manim-master$ python3 -m manim example_scenes.py SquareToCircle -pl
File ready at /home/null/manim-master/media/videos/example_scenes/480p15/SquareToCircle.mp4
你可以直接打开观看结果,但是还差一步。
安装Latex依赖
想要运行带有Latex的例子还是不行,为了把Latex渲染成漂亮的图像还需要一番努力。Latex的扩展包暂时还没有好用的包管理,依赖的文件在texlive-*相关的包中。
-
texlive-fonts-extra字体包 -
texlive-science数学物理计算机科学的包
其他依赖的Latex包都会自动安装,这个时候可以试一试别的例子了看一看最终成果。
python3 -m manim example_scenes.py OpeningManimExample -pl