使用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判断IP地址合法性的方法实例
Mar 13 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
对numpy中轴与维度的理解
Apr 18 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
关于python中remove的一些坑小结
Jan 04 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
python办公自动化之excel的操作
May 23 Python
Python socket如何解析HTTP请求内容
Feb 12 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
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
NodeJS使用七牛云存储上传文件的方法
2017/07/24 NodeJs
代码分析vue中如何配置less
2018/09/28 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
利用Python实现kNN算法的代码
2019/08/16 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
写求职信有哪些注意事项
2014/05/08 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
师德师风学习材料
2014/12/19 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技