使用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数组条件过滤filter函数使用示例
Jul 22 Python
python logging类库使用例子
Nov 22 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
Windows下安装python2.7及科学计算套装
Mar 05 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
python计算列表内各元素的个数实例
Jun 29 Python
Python求均值,方差,标准差的实例
Jun 29 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
Python函数参数分类原理详解
May 28 Python
python 解决函数返回return的问题
Dec 05 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
程序员编程十条戒律
2009/07/09 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php并发加锁示例
2016/10/17 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
简单的Python2.7编程初学经验总结
2015/04/01 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
django celery redis使用具体实践
2019/04/08 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
python关于倒排列的知识点总结
2020/10/13 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
英文慰问信
2015/02/14 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
Python3的进程和线程你了解吗
2022/03/16 Python