文章目录

数学也是一门实验性学科

很多人把数学当成一门人类纯思维活动的学科,这是不对的,数学和物理,化学等学科一样,也是一门实验性学科,像蒲丰投针就是一个非常具有代表性的数学试验。随着科学技术的进步,越来越多的数学理论在现实生活中得以证实和具象化,这反过来也促进了数学的进步和发展,并将逐渐形成一门新的学科——数学工程学。数学工程学简而言之就是借用工程化的理论和手段进行数学研究,发展过程中必然会经历三个阶段,第一个阶段是对数学对象和规律的再演绎再认识;第二个阶段是辅助和研究新的数学对象和规律,比如辅助证明等,第三个阶段是引领新的数学规律的发现,如利用人工智能发现新的数学公式等。

什么是python

在大数据技术和人工智能技术备受推崇的今天,python一直占据着TIOBE 公布的编程语言排行榜榜首的位置,业界一直流传一句话“人生苦短,我用python”,python作为一门计算机编程语音有其独特优势,总结大致有三大特点——简洁性、易读性以及可扩展性。

  • 简洁性

python这门脚本语言是非常简洁的,很多时候一行代码就能实现一个很复杂的功能,如下面一行代码就能打印出一个九九乘法表,这使得你能够专注于解决问题而不是去搞明白语言本身。

初识manim_manim

  • 易读性

python的风格清晰简约好读,有时候就像人类说话一样自然简单,没有过多的修饰。

  • 可拓展性

python最初设计就为可扩充的,并非所有的特性和功能都集成到语言核心,python提供了丰富的API和工具,丰富的的第三方库让你有种"哪里不会点哪里" ,巴适得板。

什么是manim

manim是一个python第三方库,全称是mathematical animation engine,一款非常著名的数学动画引擎,最初出于斯坦福大学的数学系学生Grant Sanderson 在YouTube 创建的个人频道3Blue1Brown,用以解说线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等,由于动画制作精良,解释的角度独特,越来越多读者开始关注并加入其中一起贡献,manim到目前为止大致经历了2个版本的迭代,第一代是 ManimCairo,这是比较老的一个版本,Grant Sanderson早期的项目都是用这个版本来编译的,该版本采用cairo库作为渲染引擎的;第二代是ManimGL, 也是由 Grant Sanderson 等开发的最新版本,该版本最大改进是采用更强大的OpenGL库来渲染 ,此外还有Manim,或者 ManimCE,即manim社区版,可以用下面表格来区分。

name

backend

PyPI package

ManimCairo

Cairo

manimlib

ManimGL

OpenGL

manimgl

ManimCE

OpenGL

manim

manim可以让你用编程的方式创建精确的数学图形和动画以及场景,这与我们以往用几何画板等画图软件不同,它提供了一个全新的思路 “所思即可得”,而且能够做到非常精准,在manim世界里你可以感受到一切皆可设置,颜色,粗细,长短,角度,时长,播放方式等都可以通过设置来完成,这使得你可以做出很具有个性化的数学动画。

安装manim

下面就来介绍ManimCE的在Windows 11 家庭中文版下的安装,操作得当的话,半个小时就可以搞定。

  • 安装python

建议直接安装Anaconda,因为anaconda会自带很多python模块,省时省心,如果官网下载太慢,可以从百度网盘等国内资源下下来安装,安装的记得勾上环境变量PATH。

https://www.anaconda.com/products/distribution
  • 安装FFmpeg

安装ffmpeg记得设置好环境变量,记得配置好环境变量PATH

https://ffmpeg.org/download.html#build-windows
  • 安装LaTeX

作为一款数据动画引擎,必然会涉及数学公式,所以LaTeX必不可少

https://miktex.org/download
  • 安装manim

之前介绍说manim是python的第三方模块,那么就可以直接通过Anaconda Powershell Prompt下的命令进行安装

pip install manim

由于这个命令是直接从PyPI下载安装,外网网络延时很大,如果某个依赖的模块比较大,如scipy库很大就会卡住,这个时候可以直接断开单独从清华源下scipy,然后再执行pip install manim。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy
  • 检查安装成功否

直接键入manim,会显示Manim Community v0.16.0 post0等关键信息,说明manim安装成功,从这些信息我们可以看到manim就是用来渲染数学动画的,俗称数学动画引擎。

初识manim_ide_02


至此,本地电脑已经成功安装好ManimCE,如果你之前写过一个python脚本test.py用来生成一个Demo类,那么就可以用如下命令来生成对应的数学对象。

manim -pql test.py Demo

虽然,上面把manim安装好了,但是这种一边写脚本,一边通过命令来生成预览效果,感觉有点割裂,如果能够像平时在IDE里面写完代码然后直接调试编译运行的话就能立马看到预览效果,并根据反馈进行代码修改的话效率会提升不少,针对这种问题,主要有如下三种解决方案

一种是 jupyter notebook的魔法命令%%manim,就是在代码最前面加上一行这样的魔法命令就可以对代码独立执行了。

一种是通过vscode插件,在vscode里面主要通过一款叫Manim Sideview插件来进行自动渲染和预览的,但是这种渲染挺消耗计算资源的,需要耐心等一等便可以看到你想要看到的动画了。

一种是在代码最后面加上三行代码,起到临时设置作用

with tempconfig({'quality': 'medium_quality', 'preview':True}): #预览质量高中低设置
scene = FollowingGraphCamera() #您的类名
scene.render() #渲染

因为作者平时一直用vscode作为python开发的IDE,所以毫不犹豫选择了vscode作为开发IDE,但第二种解决方案有时候会报路径错误,需要复杂设置,有时候为提升效率也采用第三种解决方案,所以一直处于后两者混用状态,屡试不爽。

一个上手例子

在vscode准备如一个名叫CreateCircle.py的python脚本,

from manim import *

class CreateCircle(Scene): #media/videos/{module_name}/480p15
def construct(self):
circle = Circle() # create a circle
circle.set_fill(PINK, opacity=0.5) # set the color and transparency
self.play(Create(circle)) # show the circle on screen

初识manim_ide_03


此时,你可以点击右上角的run python file,也可以点击runs a slideview,在pick the name of your scene选择CreateCircle,然后vscode窗口右上角就会出现动画。

至此,你就可以愉快的在vscode里面玩耍manim了,制作各种有意思的数学动画。

参考文献

1,https://www.tiobe.com/tiobe-index
2,https://baike.baidu.com/item/Python/407313?fr=aladdin
3,https://docs.manim.community/en/stable/installation.html
4,https://docs.manim.org.cn/