鱼C论坛

 找回密码
 立即注册
查看: 2710|回复: 3

[技术交流] 探索数学之美: Python第三方库Manim

[复制链接]
发表于 2021-7-7 18:15:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 学渣李某人 于 2021-7-7 18:45 编辑


                               
登录/注册后可看大图


0. 介绍

Python中可用于数据可视化的库有很多, 比如matplotlib和seaborn(plotly, pyechart...), 但专门用于进行数学演示方面的库却仅有一个: Manim, 既Mathematical Animation Engine(数学动画引擎)

  • 用manim可以实现的图形有: 多边形(正多边形, 矩形...), 园(圆弧, 圆环, 扇形...), 线段(曲线, 箭头...), 曲面, 函数曲线, 坐标系(数轴)等
  • 用manim可以实现的动画有: 变换(线性, 非线性), 绘制(淡入, 移入, 写入...), 擦除等


1. 安装Manim

但, manim一直广为诟病的是它极难安装, 不过已经有大佬造过轮子了: github manim中文社区fork的包

安装流程:

0. 推荐使用conda或virtualvenv创建虚拟环境, 嫌麻烦的可以跳过
conda:
  1. conda create -n manim python=3.6
复制代码
virtualvenv:
  1. virtualenv manim
复制代码


1. 以zip形式下载上面的包

2. 下载ffmpeg   安装教程
3. 下载以下的库
  • argparse
  • colour
  • numpy
  • Pillow
  • progressbar
  • scipy
  • tqdm
  • opencv-python
  • pycairo
  • pydub
  • pygments
  • pyreadline


requirement.txt版:
  1. argparse
  2. colour
  3. numpy
  4. Pillow
  5. progressbar
  6. scipy
  7. tqdm
  8. opencv-python
  9. pycairo
  10. pydub
  11. pygments
  12. pyreadline; sys_platform == 'win32'
复制代码


安装pycairo有没有报错? 没有的可以继续了, 有的请去这个连接下载whl文件, 并在文件位置运行
  1. pip install 文件名.whl
复制代码
这条命令

4. 下载latex

5. 更改环境变量, 加入ffmpeg的路径

6. 解压第1部中的zip文件, 放入python路径下的Lib/site-packages中, 然后把除了manim.py, manimlib, example_scenes.py, assets, from_3b1b以外的文件都删除
manimlib就是manim的核心, from_3b1b是这个库发明者的代码, 很有学习价值, assets是静态文件, manim.py是编译器, example_scenes.py是实例

7. 进入虚拟环境(如果进行了步骤0的话)并运行
  1. python -m manim example_scenes.py SquareToCircle -p
复制代码

如果出现了一段编译的进度条, 然后播放了一段视频, 并出现了一个media文件夹的话, 那么恭喜, Manim已经安装成功了!

2. Manim教程

使用Manim生成动画格式如下:
  1. python -m manim [文件名] [场景名] [质量] [是否预览]
复制代码
文件名是py文件的名字
场景名是类名
质量分为480p和1440p(这两个常用), 不填默认1440p, 需要480p的这里填 -ql 就是quality low的简称
是否预览就是生成后是否直接播放, 预览填 -p , 否则不填即可

因为我文笔不是很好, 所以我放一些别人写的教程:


3. 重点

1. 同时播放多个动画, 只需在self.play()中加入多个动画作为参数即可; ApplyMethod不能同时播放多个, 只有最后一个会生效
2. 如果嫌self.play(ApplyMethod(...))这样写太长的话, 也可以直接省略ApplyMethod
3. VGroup是一个可以存储MObject的对象, 它支持索引
4. Manim支持继承, 只要不覆盖run方法就没问题, 只有目标类的construct会被执行




我级别不够, 就不加回帖奖励了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-8 08:40:32 | 显示全部楼层
这个模块有意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-8 09:46:29 | 显示全部楼层
这是高手
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-8 17:07:01 | 显示全部楼层
啊! 沉了, 捞一下
有没有试着安装的? win10系统上安装问题应该不大, 没成功可以截图发给我, 一定回
主要是我自已踩了无数坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 08:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表