使用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
猜你喜欢
- 一、背景故事圣诞节风波马上不就到圣诞节了嘛,我看到朋友圈里很多小伙伴再纷纷炫耀自己收到的专属圣诞树,也有小伙伴私信我,说还没有自己的圣诞树!
- “操作入口明确”,就是指产品的任何一个功能都要有明确、合理的入口。“操作入口”,指的是产品内部不同模块之间的转接元素,例如在Web产品中,按
- 本文实例为大家分享了python多线程http压力测试的具体代码,供大家参考,具体内容如下#coding=utf-8import sysim
- 具体代码如下所示:import osfrom PIL import ImageUNIT_SIZE = 220 # the size of i
- 主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下import requests;import b
- 由于学习需要安装matplotlib库,阅读网上教程后一直出现各种各样的错误,以下为我的经验总结:声明:本人python版本为3.8.0,p
- 数字字符串前后有空格没事:>>> print(int(" 3 "))3但是下面这种带小数点的情况是不可
- 本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件
- 本文实例讲述了python中pass语句用法。分享给大家供大家参考。具体分析如下:1、空语句 do nothing2、保证格式完整3、保证语
- 说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间。该程序实现了用户的增,删,改,查,主
- IE的特殊性 IE的DOM元素属性与Firefox, Opera, Safari有些不同。在IE中,我们可以给DOM添加任意自定
- Dim iSet conn=Server.CreateObject("ADODB.Connecti
- py文件为utf-8格式#!/usr/bin/env python# -*- coding:utf-8 -*-a = "syste
- 那里都有狭窄的空间:网页横幅、新闻标题处的空间、柱状的广告,但一张来自照相机的照片却要大很多,它们的比例一般是 6 × 4 英寸 。你如何处
- 如下所示:#先下载pyautogui库,pip install pyautoguiimport os,timeimport pyautogu
- flatten()函数用法flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组。flatten只能适用于
- 转发和重定向:转发:一次请求和响应,请求的地址没有发生变化,如果此时刷新页面,就会出现重做现象。重定向:一次以上的请求和响应,请求地址发生一
- 本文解决问题:批量删除多行txt文本中的内容。思路:1.找出需要删除行的 id(就是需要删除那些行,把这是第几行给记录下来。)2.将原文本内
- SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
- 不知道写得对不对啊!错了再改吧!加密函数Function Encodestr(s,xorstr)Dim enFor&nb