用Python製作高逼格數學動畫manim
簡介
manim是斯坦福大學數學系小哥Grant Sanderson開源的數學模擬模擬python庫,並用於YouTube 頻道3Blue1Brown,來解說高等數學。
manim是一個非常優秀的數學動畫製作引擎,先來兩個GIF感受一下 manim 的魅力:
很多同學應該在 B 站看過3b1b的視訊,最經典的就是線性代數的本質系列。
版本說明
manim 初學者可能會有些許困惑,網上的程式碼、文件、教程等差異太大,不知道該跟著那個學習。
目前manim有三個版本:
3b1b 舊版:3blue1brown 自己維護的版本,使用 Cairo 作為後端。
3b1b 新版:3blue1brown 自己維護的版本,使用 OpenGL 和 moderngl 來進行 GPU 渲染,優點是速度快。
manim 社群版
我比較信任Grant Sanderson 大神,所以直接學習了新版。
manimgl 環境搭建
manimgl 這個版本的安裝特別簡單
1、安裝配置FFmpeg和LaTex
https://ffmpeg.org/download.html
FFmpeg,下載安裝即可,把安裝路徑新增到環境變數即可
https://mirror.ctan.org/systems/texlive/tlnet/install-tl-windows.exe
LaTex更簡單,一路下一步即可。
2、建立虛擬環境
conda create -n manim python=3.8 conda activate manim
3、安裝manimgl包
pip install manimgl
也可以clone最新的原始碼進行安裝
git clone https://github.com/3b1b/manim.git
cd manim
pip install -e .
這樣還能測試一下是否安裝成功了。
manimgl example_scenes.py OpeningManimExample
學習資源
官方文件:
https://3b1b.github.io/manim
中文文件:
https://docs.manim.org.cn/
3b1b 視訊原始碼:
https://github.com/3b1b/videos
manim 原始碼:
學習順序,可以先看中/英文文件,然後就動手製作自己的動畫吧。
如有餘力,可以抽空看看3b1b的視訊原始碼,如果能為manim貢獻程式碼就更好了。
最近在youtube上看到了一個用 manim 製作了資料結構與演算法的視訊,挺強的。
視訊原始碼:https://github.com/nipunramk/Reducible
祝大家學的愉快,也歡迎交流學習,這一塊我也是小白呢。