如何在 Python 中创建动画?

2025年1月5日 | 阅读 4 分钟

引言

在 Python 中设计动画不仅可以很有趣,还可以达到教育目的。Python 提供了许多库,可以帮助我们从非常简单的 GIF 动画到更复杂的交互式可视化创建动画,它是一种功能强大且用途最广泛的语言。在本综合指南中,我们将探讨如何使用三个流行的库:matplotlib、manim 和 Pygame 来创建 Python 动画,它们都是绝佳的选择。请稍候,我们正在准备您的请求,这可能需要几分钟时间。每种方法的库都是一个独立的实体,可以根据您想要达到的详细程度和可视化风格进行选择。

1. Python 动画同步

Python 编程语言提供了许多用于计算机动画的框架和模块。

在深入研究具体的技巧和库之前,掌握动画操作的基本原理是必要的。编程中的动画是指一系列快速播放的帧或图像,营造出运动的错觉。在每一帧中,场景比前一帧稍微改变一点。因此,当它们以快速的顺序观看时,影片中的物体似乎在移动。

2. 设置你的 Python 环境

要创建你的第一个 Python 动画,你需要先安装 Python,因为它是创建动画的关键编程语言。请确保在你的电脑上安装了 Python 操作系统。你可以在python.org 网站下载该语言。此外,你需要一个集成开发环境(IDE)或代码编辑器来编写你的脚本。一些流行的工具包括 PyCharm、VS Code 和 Sublime。

一旦 Python 和你选择的文本编辑器都配置妥当,你就可以开始通过 Python 包管理器(pip)安装所需的库和代码许可证。打开你的命令行或终端,并按如下方式安装库:

3. 使用 Matplotlib 创建动画

Matplotlib 是一个 Python 库,也是其数值数学库 NumPy 的扩展。它提供了一个交互式接口(API),用于将图形嵌入应用程序中,作为静态图形的替代方案。

要使用 **matplotlib** 创建简单的动画,你必须使用 **FuncAnimation** 类,该类通过函数创建重复的动画。

下面是如何创建简单正弦波动画的示例

输出

How to Create Animations in Python?

说明

  • 该脚本首先导入 **'numpy'** 用于数值运算,**'matplotlib.pyplot'** 用于绘图,然后导入 **FuncAnimation** 用于动画。
  • 使用 **'plt.subplots()'** 创建一个图形和一个并行图,然后在此基础上创建动画。
  • 将 y 轴设置为 0 到 4π 之间,以适应正弦波的完整移动,这在此范围内完成了一个周期。
  • y 轴的限制设置为 **-1.5 到 1.5** 之间,这为在图上显示波形提供了足够的空间。
  • 绘制线条需要两个变量:点和 **lw**。这条线必须用 **ax.plot('[]', [], lw=3)** 指定,以便显示正弦波。第一条线被指定为空状态,它将在每个动画帧中被填充。
  • Init 类型是一个设置函数,产生空元素的数组,表明它已准备好进行动画的第一帧。
  • 因此,创建了一个 change 函数来为每一帧改变线的数据。通过在 0 到 4π 的线性空间周期上重新计算 x 值,并将常数相位偏移与帧号相加,就可以生成正弦波的 y 值。在这里,“流入彼此”意味着产生波浪移动效果的过程。
  • 使用 **'FuncAnimation'** 脚本设计动画。它绑定了图形 fig、更新函数 update 和初始化 init;通过 blitting 进行 100 帧更新,这是时间和效率的。
  • 最后,**'plt.show()'** 命令显示了剩余的窗口,其中包含正弦波对象的动画图,表示位置(x 轴)随时间(y 轴)的变化。结果是,移动的正弦波将显示出来。