首页 > 编程语言 >用Python打造精彩动画与视频,5.3 使用Manim创建简单动画

用Python打造精彩动画与视频,5.3 使用Manim创建简单动画

时间:2024-08-04 16:25:49浏览次数:15  
标签:动画 5.3 Python 创建 self square circle Manim

 5.3 使用Manim创建简单动画

在这一节中,我们将介绍如何使用Manim创建简单的动画。我们将从基本的场景构建开始,然后演示如何添加动画效果。通过这些示例,你将能够掌握使用Manim创建各种动画的基本技能。

5.3.1 创建一个简单的场景

Manim中的基本单元是场景(Scene)。每个场景都是一个Python类,继承自`manim.Scene`。以下是创建一个简单场景的步骤:

步骤1:创建Python脚本文件

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

步骤2:编写场景代码

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

from manim import *

class HelloWorld(Scene):

    def construct(self):

        # 创建文本对象

        text = Text("Hello, Manim!")

        # 播放写入文本动画

        self.play(Write(text))

        # 等待2秒

        self.wait(2)

5.3.2 运行并查看动画

步骤1:打开命令提示符或终端

在Windows上,按`Win + R`打开“运行”对话框,输入`cmd`并按Enter。

步骤2:导航到脚本所在目录

cd E:\PycharmProjects\pythonProject3

使用`cd`命令导航到包含`simple_animation.py`的目录,例如:

步骤3:运行Manim命令

使用以下命令来运行Manim并渲染动画:

manim -pql simple_animation.py HelloWorld

命令解释:

p:表示播放视频。

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

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

HelloWorld:类名。

5.3.3 创建几何图形动画

接下来,我们将展示如何创建一个简单的几何图形动画。

 步骤1:更新Python脚本

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))

在`simple_animation.py`文件中添加以下代码:

步骤2:运行并查看动画

在命令提示符中运行以下命令:

manim -pql simple_animation.py SquareToCircle

5.3.4 添加文字和注释

我们可以在动画中添加文字和注释来增强展示效果。以下是一个示例,展示了如何在动画中添加文字。

步骤1:更新Python脚本

在`simple_animation.py`文件中添加以下代码:

from manim import *

class AnnotatedSquareToCircle(Scene):

    def construct(self):

        # 创建一个正方形

        square = Square()

        # 创建一个圆形

        circle = Circle()

        # 设置圆形填充颜色

        circle.set_fill(PINK, opacity=0.5)

        # 创建注释文本

        text_square = Text("Square")

        text_circle = Text("Circle")

        # 设置文本位置

        text_square.next_to(square, UP)

        text_circle.next_to(circle, UP)

        # 播放创建正方形的动画

        self.play(Create(square))

        # 播放写入注释文本的动画

        self.play(Write(text_square))

        self.wait(1)

        # 播放正方形变成圆形的动画

        self.play(Transform(square, circle), Transform(text_square, text_circle))

        self.wait(1)

        # 播放淡出圆形的动画

        self.play(FadeOut(square), FadeOut(text_circle))

步骤2:运行并查看动画

manim -pql simple_animation.py AnnotatedSquareToCircle

在命令提示符中运行以下命令:

5.3.5 保存动画

我们可以将生成的动画保存为视频文件,常见的格式有MP4和GIF。以下是保存动画的示例:

步骤1:运行Manim命令并指定输出路径

manim -pql -o "I:\《从基础到精通:用Python打造精彩动画与视频》\python动画视频项目目录\MyNewProject\annotated_square_to_circle.mp4" simple_animation.py AnnotatedSquareToCircle

在命令提示符中运行以下命令:

总结

在本小节中,我们介绍了如何使用Manim创建简单的动画。我们学习了如何创建基本场景、添加几何图形动画、添加文字和注释,以及保存动画。通过这些知识,你可以开始使用Manim创建各种高质量的动画。

素材要求:

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

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

3. ffmpeg和LaTeX:用于生成视频和处理数学公式。

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

标签:动画,5.3,Python,创建,self,square,circle,Manim
From: https://blog.csdn.net/wfbl123456/article/details/140896886

相关文章

  • 用Python打造精彩动画与视频, 5.2 安装和设置Manim
     5.2安装和设置ManimManim是一个强大的动画库,用于创建高质量的数学动画。它最初由3Blue1Brown的GrantSanderson开发,并被广泛用于教育和展示。以下是安装和设置Manim的详细步骤。5.2.1安装ManimManim需要Python环境和一些依赖库。在安装Manim之前,请确保已经......
  • 用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......