首页 > 编程语言 >用Python打造精彩动画与视频, 5.2 安装和设置Manim

用Python打造精彩动画与视频, 5.2 安装和设置Manim

时间:2024-08-04 16:25:28浏览次数:13  
标签:动画 5.2 ffmpeg Python Manim 安装 manim

 5.2 安装和设置Manim

Manim 是一个强大的动画库,用于创建高质量的数学动画。它最初由 3Blue1Brown 的 Grant Sanderson 开发,并被广泛用于教育和展示。以下是安装和设置 Manim 的详细步骤。

5.2.1 安装Manim

Manim 需要 Python 环境和一些依赖库。在安装 Manim 之前,请确保已经安装了 Python。推荐使用 `pip` 进行安装。

步骤 1:安装依赖

首先,安装一些必要的系统依赖。对于不同的操作系统,安装命令会有所不同。

Windows:

1. 安装 [ffmpeg](https://ffmpeg.org/download.html) 和 [LaTeX](https://miktex.org/download)(用于生成视频和处理数学公式)。

2. 添加 ffmpeg 和 MiKTeX 的 bin 目录到系统的环境变量中。

pip install manim

3. 打开命令提示符并运行以下命令以安装 Python 依赖库:

步骤 2:验证安装

manim --version

安装完成后,可以通过运行以下命令来验证安装是否成功:

如果成功,你将看到 Manim 的版本信息。

5.2.2 设置Manim

设置 Manim 需要创建一个 Python 脚本文件,并编写简单的动画代码。以下是一个基本的示例,展示了如何创建一个简单的动画。

步骤 1:创建Python脚本文件

在你的项目目录中创建一个新的 Python 文件,例如 `example_scenes.py`。

步骤 2:编写动画代码

from manim import *

class HelloWorld(Scene):

    def construct(self):

        text = Text("Hello, Manim!")

        self.play(Write(text))

        self.wait(2)

在 `example_scenes.py` 文件中编写以下代码:

步骤 3:运行动画

使用以下命令运行动画:

manim -pql example_scenes.py HelloWorld

命令解释:

 `p`:表示播放视频。

 `ql`:表示使用快速渲染(低质量)。

 `example_scenes.py`:你的脚本文件名。

 `HelloWorld`:类名。

5.2.3 配置Manim

Manim 提供了多种配置选项,可以通过修改配置文件来更改默认设置。以下是一些常用配置选项。

配置文件

[CLI]

quality = high

write_to_movie = True

media_dir = ./media

[ffmpeg]

ffmpeg_loglevel = info

Manim 的配置文件通常位于项目根目录下的 `manim.cfg` 文件中。以下是一个示例配置文件:

常用配置选项

 `quality`:渲染质量,可以设置为 `low`, `medium`, `high`, `production`。

 `write_to_movie`:是否将输出保存为视频文件。

 `media_dir`:输出媒体文件的目录。

 `ffmpeg_loglevel`:FFmpeg 的日志级别。

5.2.4 示例动画

以下是一个更复杂的示例,展示了如何使用 Manim 创建一个简单的几何动画。

from manim import *

class SquareToCircle(Scene):

    def construct(self):

        square = Square()

        circle = Circle()

        circle.set_fill(PINK, opacity=0.5)

        self.play(Create(square))

        self.play(Transform(square, circle))

        self.play(FadeOut(square))

运行命令:

manim -pql example_scenes.py SquareToCircle

总结

在本小节中,我们介绍了如何安装和设置 Manim。我们学习了如何安装必要的依赖库、编写简单的动画代码、运行动画以及配置 Manim 的默认设置。通过这些知识,你可以开始使用 Manim 创建各种高质量的数学动画。

素材要求:

1. Python环境:确保已经安装了Python。

2. 系统依赖:安装 ffmpeg 和 LaTeX(如 MiKTeX)。

3. Manim库:通过 pip 安装 Manim 库。

通过这些步骤和示例代码,你应该能够轻松上手 Manim,并创建出有趣且高质量的动画效果。如果有任何问题或需要进一步的帮助,请随时询问。

标签:动画,5.2,ffmpeg,Python,Manim,安装,manim
From: https://blog.csdn.net/wfbl123456/article/details/140896849

相关文章

  • 用Python打造精彩动画与视频,6.1 复杂动画场景的构建
     第六章:探索Manim的潜力6.1复杂动画场景的构建在本节中,我们将深入探索如何使用Manim构建复杂的动画场景。Manim是一款功能强大的Python库,广泛应用于数学可视化和教育视频制作。通过理解并掌握Manim的高级功能和技巧,你将能够创建出引人入胜且具有高可读性的动画场景。6.1.1......
  • 在 Python 中从 HTML 中抓取嵌入的 Google Sheet
    这对我来说相对棘手。我正在尝试提取来自python中的google工作表的嵌入表。这是链接我不拥有该工作表,但它是公开可用的。这是迄今为止我的代码,当我输出标题时,它向我显示“”。任何帮助将不胜感激。最终目标是将此表转换为pandasDF。多谢你们importlx......
  • 如何使用 Python 在 Google 或 DuckDuckGo 中快速获取答案
    我有一个人工智能助手项目,我希望它在互联网上搜索。我想使用适用于Python的GoogleQuickAnswerBox或DuckDuckGoInstantAnswerAPI。我看到了其他问题,但它们对我没有多大帮助。这是我想要实现的一个示例:问题:什么是长颈鹿?Google的答案:DuckDuckGo的......
  • 如何为可以在递归调用中重新分配的 python 函数制定类型提示?
    采取以下最小示例:S=TypeVar("S",bound=int|str)defmeth(a:S)->S:ifa=="5":returnstr(meth(int(a)))returna特别是,上面的方法可以采用字符串或整数。它总是返回与其输入相同类型的值,但它可以递归地调用自身,在这种情况下,S的值......
  • 使用 python 和 json 抓取该网站的正确 URL 是什么?
    试图抓取这个网站-->https://ucr.gov/enforcement/1000511它曾经使用下面的代码,然后停止了。无法获取响应中的json或任何内容。query="1000511"url='https://ucr.gov/api/enforcement/{}'.format(query)headers={'User-Agent':'Mozilla/5.0(......
  • Python逆向
    参考链接:https://www.bilibili.com/video/BV1JL4y1p7Tt/?spm_id_from=333.999.0.0https://bbs.kanxue.com/thread-282542.htmhttps://blog.csdn.net/weixin_35967330/article/details/114390031?spm=1001.2014.3001.5501https://0xd13a.github.io/ctfs/0ctf2017/py/前言:py......
  • Python中使用正则表达式
    摘要:正则表达式,又称为规则表达式,它不是某种编程语言所特有的,而是计算机科学的一个概念,通常被用来检索和替换某些规则的文本。一.正则表达式的语法①行定位符行定位符就是用来描述字符串的边界。"^"表示行的开始,"$"表示行的结束。^tm  #tmequalTomorrowMoon可以......
  • 如何在python中使用xarray打开grib2文件?
    将xarray导入为xr导入cfgrib导入生态码将pandas导入为pddata=xr.open_dataset(r"C:\Users\new\forecast_data.grib2",engine="cfgrib")这是我的代码。我只想使用xarray读取这个文件。错误是:无法识别的引擎cfgrib必须是以下之一:['netcdf4'、'scipy'、'......
  • 如何在 java 或 python 中使用 HTTP(S) 解决无法解析的主机名或无法识别的名称错误?
    我尝试以编程方式访问网站的信息,但在Java和Python上都无法解析主机名。如果我指定IP地址,则会将错误更改为TLSV1_UNRECOGNIZED_NAME。不过,这个网站无需任何额外的工作就可以通过任何浏览器解决。我在这里浏览了很多潜在的解决方案,但对于Python,它说这个问题应该在2.7......
  • Python 请求 POST 请求与 websockets 库一起使用时挂起
    我使用Python中的requests库发送POST请求,同时维护与websockets库的WebSocket连接:importasyncioimportrequestsimportwebsocketsasyncdefwebsocket_handler(uri):asyncwithwebsockets.connect(uri)aswebsocket:whileTrue:me......