使用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中的作用域规则详解
Jan 30 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
python使用Flask操作mysql实现登录功能
May 14 Python
python实现贪吃蛇小游戏
Mar 21 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
python动态进度条的实现代码
Jul 03 Python
Python中免验证跳转到内容页的实例代码
Oct 23 Python
Pytest测试框架基本使用方法详解
Nov 25 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验证码类代码分享(已封装成类)
2011/07/17 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
php简单防盗链实现方法
2015/07/29 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
CSS常用网站布局实例
2008/04/03 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
python爬虫基本知识
2018/03/05 Python
使用Python设计一个代码统计工具
2018/04/04 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python实现排序算法解析
2018/09/08 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
毕业生自荐信如何写
2014/03/24 职场文书
南京南京观后感
2015/06/02 职场文书
大学生受助感言
2015/08/01 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android