python做动画视频教程_python中强大、灵活的动画引擎manim安装及使用

2023-10-07 13:40

本文主要是介绍python做动画视频教程_python中强大、灵活的动画引擎manim安装及使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

manim是一个强大、灵活的python语言的动画引擎,尤其适合程序员使用编程方法来制作创意视频。

以下说明在 Windows操作系统中安装使用注意的问题。注意,是使用 manim源码的方式。请尽量使用源码,便于理解一些实现细节。

一.源码下载

官方下载地址:https://github.com/3b1b/manim.git

另外,因为官方源码更新原因,出现一些错误和文件缺失问题,我在使用中整理出一个版本(manim也有其它社区版)。

1.补充了一些缺失的图形文件,并做了一些修正。

2.把windows平台下需要安装的软件 FFmpeg,LaTeX,和模块pycairo下载好,放在./install-requirements/目录中,大家不用自己再到处去下载,直接安装即可。

3.包含我写的一些扩展代码,新增样条曲线类、文字处理类,以及几个我自己用到的视频动画。

4.在 example_scenes.py中加入更多例子,涵盖更全面的功能演示。

如果下载我整理的版本,请关注“优点英语app”公众号进入教程源码 - manim 文章获取下载地址。

这里没有直接给出下载地址,是因为我的视频教程中还有其它源码,为了便于管理,统一放在公众号中。

二.Windows操作系统中安装

1.【必需】[安装 FFmpeg]

这里已经下载了一个版本,保存在 ./install-requirements/.

这个软件不需要安装,相当于是一个绿色程序,把它解压到电脑上的一个位置。然后把它的bin目录设置到系统的环境变量 path中,使 ffmpeg能以命令的方式在命令行窗口中运行。

2.【必需】[安装 Cairo]

这个需要先下载安装文件再安装,才能安装成功。

这里已经下载了一个版本,保存在 ./install-requirements/.

可以直接运行下面的命令安装。

```sh

pip3 install ./install-requirements/pycairo-1.19.1-cp38-cp38-win_amd64.whl

```

也可以从下面这个网址下载一个合适的版本。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycairo

3.【必需】安装 LaTeX

这个作用主要是为了处理带有公式的文本。manim中有两种文本对象。其中一种不使用公式,即普通的文本,可以不使用 LaTeX。

因为要运行里面的很多例子都有公式,所以这个程序必须安装。

这里已经下载了一个版本,保存在 ./install-requirements/.进入这个目录,双击安装程序,安装到电脑。

也可以从下面这个网址下载一个合适的版本。

[MiKTeX](https://miktex.org/download)

4. [安装 SoX]

这个可以不用安装。我的电脑没有安装这个,这里不做详细说明。

如果要安装,从下面的网址下载。

(https://sourceforge.net/projects/sox/files/sox/).

5.【必需】安装其他必须的模块。

其他的几个模块都能很顺利的使用 pip命令安装成功,这里不做详述。。

```sh

pip3 install -r requirements.txt

```

三.运行示例

示例的运行方法。

python manim.py example_scenes.py SquareToCircle -pl

执行后会生成一个视频文件,并立即打开播放。

四.manim使用逻辑概要。

manim使用逻辑很简单,配合例子只要几分钟就能掌握,剩下的在使用中再深入了解一些细节即可做出我们想要的效果。以下是我在使用中的一些总结,希望能让大家在初次使用时能对manim有个全局认识。

1. 所有的动画代码编写需要在场景类中完成。

1)首先新建一个场景类,这个场景类必须继承自 manim库中的场景类(Scene类或其子类)。

2)然后在这个新建场景类 construct方法中,创建一些对象,比如说坐标轴、文字、线条、三角形、立方体、曲面等等。

3)然后使用 play方法,对对象进行平移、旋转、转换等各种动画操作。

4)最后,统一使用下面的命令格式来执行代码程序,如上面第三条中示例的运行方法。

python       manim.py     代码所在的文件名      新的场景类名     -pl

运行完之后会直接生成一个视频文件。

2. 这个库所包含的对象类型特别广泛:

1)像素格式图片、svg矢量图形;

2)文字、公式;

3)点、线(直线、贝塞尔曲线、样条曲线);

4)三角形、矩形等二维图形;

5)立方体、球体、锥体等三维图形;

6)三维曲面;

7)使用自定义函数创建的特殊曲面、或者图形。

3. 照相机是场景中一个属性,不需要创建。可以通过改变照相机的角度、距离来转换场景的观察方向,在三维动画中很有用。

4. 颜色、线条粗细等都是通过 config 的形式设置。

5. example_scenes.py 中有各种各样的示例,通过学习这些例子即可初步掌握其使用原理。

五.不显示中文的问题

找到 ./manimlib/constants.py文件

在此文件中找到: TEX_USE_CTEX = False,把 False改为 True即可。

六.目录说明

1. ./from_3b1b/目录

这个目录中包含了官方的很多示例。但是因为版本更迭的问题导致有很多错误,还有一些图形文件缺失,我做了一些修改和补充。

2. ./ydyy/ 目录

这个目录中是我在制作一些视频的时候做的一些代码。

3. ./manimlib/ 核心库文件的存放目录。

4. ./assets/ 图片、图形文件的存放目录。

5. ./media/ 生成的视频文件存放目录。

七.使用自定义函数实现的效果展示

这个例子模拟的是三维波形图。波形图曲面的函数为:

z = 0.2 * np.sin(np.sqrt(x**2 + y**2))

是一个多变量函数,0.2是为了减小波峰与波谷的高差,让波纹显得平缓,以坐标(0,0,0)为中心。

代码文件位于:./ydyy/video_3.py 中的 Wave类。

2b27e15c6077

三维波形

编后语

近期在制作Python基础教程视频时,希望能让教程有些新意,原本想使用ppt、或者视频剪辑的方法来做一些特殊效果,经过一番尝试后发现有些功能很难实现。

偶然发现 manim这个模块,研究几个例子后,使用 manim做了一些片头和片尾的动画。确实功能强大、灵活,可以实现非常多的创意,尤其适合程序员使用编程方法来制作创意视频。

我们的Python基础教程通过讲解Python英语教程的方式来学习Python编程,让大家既能学习一种编程语言又能提高英语能力。

一方面,我们把编程作为一种英语使用环境,在编程中学习英语,提高英语学习效率。

另一方面,英语是编程不能回避的一道坎。大量的编程文档、函数的名称、函数的注释、类的名称、类的注释、新技术、新功能的发布等等,都使用英语。掌握好英语才能让我们在编程中游刃有余。

如果觉得本文有帮助请点赞、收藏。

如有疑问请在下面留言。

这篇关于python做动画视频教程_python中强大、灵活的动画引擎manim安装及使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158109

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买