使用Python快乐学数学Github万星神器Manim简介
作者:beyondma 发布时间:2022-07-03 04:28:00
高考在即,笔者想为孩子以后能够快乐学习数学、学习编程找到一个比较合适的项目,经过一番比较发现github上的万星项目manim(https://github.com/3b1b/manim)就非常好。它能够快速构建有关数学的动画,而且非常精确形象。
安装Manim
虽然manim已经支持Python3.7的,不过安装起来还是比较麻烦,我在ubantu18.04上直接使用安装的过程如下:
1.首先尝试直接使用pip install manimlib
命令安装,但是会有以下报错
Cannot uninstall 'pycairo'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
2.pip安装失败后使用git命令安装
sudo apt install sox ffmpeg libcairo2 libcairo2-dev
sudo apt install texlive-full
git clone https://github.com/3b1b/manim
cd manim
pip install -r requirement.txt
这里还是会报错,使用gedit requirement.txt
将pycairo两行去掉,再执行pip install -r requirement.txt
命令。
3.单独安装pycairo
使用以下命令强制升级就可以了。
sudo pip install pycairo --upgrade --ignore-installed pycairo
4.安装manim
确保在manim的目录下执行
python setup.py install
即可完成安装了。
windows下安装manim实在太痛苦了,得把c的编译环境,git for windows等等通通装一遍,不建议尝试,如果执意不想放弃windows请考虑在ubantu虚拟机装manim
体验Manim
1.运行例程
使用以下命令就可以看到本文开头的动画了
python extract_scene.py example_scenes.py SquareToCircle -pl
2.manim例程概述
打开manim目录下的example_scenes.py
找到“class SquareToCircle”一段,这也就是我们刚刚生成动图的代码具体如下:
class SquareToCircle(Scene):
def construct(self):
circle = Circle()#定义圆
square = Square()#定义方形
square.flip(RIGHT)#放置正确位置
square.rotate(-3 * TAU / 8)#逆时针旋转3/8pi
circle.set_fill(PINK, opacity=0.5)#背景定为粉色,不透明度0.5
self.play(ShowCreation(square))#显示方形
self.play(Transform(square, circle))#由方变圆
self.play(FadeOut(square))#圆形淡出
其中第1、2行circle = Circle()
和 square = Square()
其实就是定义圆形和正方形两个物体,后面使用在第3行调用flip()函数将正方形放到正确的位置上。然后调用第4行调用rotate()函数,在逆时针方向旋转3/8pi的角度。第5行调用set_fill()将圆形的填充颜色设置为粉红色,不透明度设置为0.5,具体也可以参考我上面的注释。以上这些参数都可以自行修改设置,改好之后再调用
python extract_scene.py example_scenes.py SquareToCircle -pl
就能重新生成好新的图像。 当然这只是manim的最简单入门的用法,也可以定义许多其它的方法,比如这个
不可否认manim的确是数学展示动画制作的神器,建议当爸爸的程序员们赶快学起来吧,培养孩子对几何的兴趣效果还不错。
总结
以上所述是小编给大家介绍的使用Python快乐学数学Github万星神器Manim简介,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/BEYONDMA/article/details/91126504


猜你喜欢
- 本文实例讲述了Python实现批量转换文件编码的方法。分享给大家供大家参考。具体如下:这里将某个目录下的所有文件从一种编码转换为另一种编码,
- 前言首先图片格式转换的方法有很多,但是转二进制字节流的,我搜了一下午终于在 stackoverflow上搜到了 说一下为什么要在线转这个图片
- 本文详细介绍了网站的反爬虫策略,在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下。从功能上来讲,爬虫一般分为数据采集,处理,储存
- 1.pycharm运行python脚本的过程使用pycharm等编辑器run/debug运行python脚本时,编辑器会通过本地python
- mysql binlog3种格式,row,mixed,statement. 解析工作mysqlbinlog --base64-output=
- 在日常的编程中,我经常需要标识存在于文本文档中的部件和结构,这些文档包括:日志文件、配置文件、定界的数据以及格式更自由的(但还是
- Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就
- 字典,这个东西你现在还用吗?随着网络的发展,用的人越来越少了。不少人习惯于在网上搜索,不仅有web版,乃至于已经有手机版的各种字典了。我曾经
- 在DreamWeaver中编写CSS,这种编写习惯本站(twocity.cn)并不提倡,不过由于"可视化"和操作简便,使
- 或许现在关心交互设计的设计师们大部分来自于了互联网行业,所以我们看到当你搜索“交互设计”时更多的BLOG和文章是在谈论互联网,网站的导航,注
- 1.下载Navicat for MySQL 15https://www.navicat.com.cn/download/navicat-fo
- 本文实例讲述了Python使用numpy产生正态分布随机数的向量或矩阵操作。分享给大家供大家参考,具体如下:简单来说,正态分布(Normal
- 1、#coding:utf-8chose = [ ('foo',1,2), ('bar
- 安装的方式很常规,直接使用pip安装就行了。pip install fpdf将需要使用的三方模块导入进来from fpdf import F
- 字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的。想要识别验证码,收集足够多的样本后,首先要做的就是
- Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们
- root账户为MySQL的超级管理员用户,拥有MySQL提供的所有权限。我们登录了root账户可以重置其它创建的所有用户的密码,那么root
- 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴:import tens
- 方法一: 名称:DTS(这个在MSSQL2000里边也有)操作:在命令提示符窗口中运行 DTSWizard.exeSQL Server 导入
- 在VS2005装完后,会自带SQL Server2005 express版,为了便于管理,还需要安装一个企业管理器,需要下载 Microso