使用Python快乐学数学Github万星神器Manim简介


Posted in Python onAugust 07, 2019

高考在即,笔者想为孩子以后能够快乐学习数学、学习编程找到一个比较合适的项目,经过一番比较发现github上的万星项目manim(https://github.com/3b1b/manim)就非常好。它能够快速构建有关数学的动画,而且非常精确形象。

使用Python快乐学数学Github万星神器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的最简单入门的用法,也可以定义许多其它的方法,比如这个

使用Python快乐学数学Github万星神器Manim简介

     不可否认manim的确是数学展示动画制作的神器,建议当爸爸的程序员们赶快学起来吧,培养孩子对几何的兴趣效果还不错。

总结

以上所述是小编给大家介绍的使用Python快乐学数学Github万星神器Manim简介,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
pandas表连接 索引上的合并方法
Jun 08 Python
Python GUI布局尺寸适配方法
Oct 11 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
python dlib人脸识别代码实例
Apr 04 Python
python区块及区块链的开发详解
Jul 03 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
YUV转为jpg图像的实现
Dec 09 Python
python识别验证码图片实例详解
Feb 17 Python
python之语音识别speech模块
Sep 09 Python
Python实现中英文全文搜索的示例
Dec 04 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 Python
python中的&&及||的实现示例
Aug 07 #Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 #Python
python代码实现逻辑回归logistic原理
Aug 07 #Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 #Python
Python如何调用外部系统命令
Aug 07 #Python
PyQt5通信机制 信号与槽详解
Aug 07 #Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 #Python
You might like
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
jquery 笔记 事件
2011/11/02 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
Python动态加载模块的3种方法
2014/11/22 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
建筑学推荐信
2013/11/03 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
党员年终个人总结
2015/02/14 职场文书
教学督导岗位职责
2015/04/10 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
PyMongo 查询数据的实现
2021/06/28 Python
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js