使用 Python 中的 Turtle 创建简单的动画

2025年03月17日 | 阅读 9 分钟

Python有一个Turtle模块。它有一个turtle(画笔)和一个纸板素描表面。移动turtle(画笔)可以在屏幕上绘制任何东西。可以使用其他操作移动海龟,包括forward()backward()

我们可以像在绘图板上一样使用几种绘图方法。基本命令控制绘图笔的实际移动方式。我们从一个非常基础的应用开始,然后利用Python Turtle来制作一个动画

动画

本质上,每一个动画(以及每一个动态图像)仅仅是一系列静态图像,它们以足够快的速度播放,以产生连续运动的错觉。每一张图像都称为一帧。通过在前一帧的基础上急剧改变每一帧,并快速地逐一显示它们,以产生连续运动的错觉,这个过程被称为“动画制作”,就像“赋予生命”一样。

通常最好尽快掌握基本原理,因此,即使有一个更简单的选择,我们也没有一开始就采用。与其自己绘制海龟,更简单的选择是使用一张图片作为它的形状。

由于turtle只会采用第一帧并丢弃其他帧,因此建议使用静态.gif图片而不是动画图片。

速度管理

我们还需要确保每次前进的距离都小得多。解释是,由于屏幕在决定何时显示帧时使用了许多帧(可能10帧)来显示每个正方形的绘制,因此前进运动实际上只发生在每十帧之后。如果每秒的帧率也是10帧,我们的动画将每秒只前进一次。当我们选择仅在完成一个正方形后手动显示一帧时,10帧现在代表10个正方形而不是1个,并且前进运动每秒发生10次而不是一次。由于在相同数量的帧中前进的距离大大增加,因此正方形似乎前进得快得多。为了使正方形或任何对象能够以较慢、更易于管理的と速度再次前进,我们必须因此缩短每帧之间的行进距离

使用Turtle创建动画

我们先从一个简单的程序开始,然后继续前进。

使用Python的Turtle在Turtle中绘制一个方形动画

首先,我们导入了将在Python程序中使用的turtle模块

然后,我们创建了一个Turtle模块的实例用于绘图。

接下来,我们使用Turtle模块创建了屏幕用于绘图。

之后,我们使用setup()方法设置屏幕大小,并使用bgcolor()方法将屏幕背景色设置为粉色。

接下来,我们使用pencolor()方法将绘图笔的颜色设置为浅蓝色,并使用pensize()方法设置笔的大小。

然后,我们使用speed()方法设置绘图笔的速度,并使用shape()方法将其形状设置为海龟。

然后,我们动画的主要部分就要完成了。我们借助forward()right()方法开始创建一个正方形。

然后,我们使用penup()方法抬起海龟,使用goto()方法将其移动到新的坐标,然后使用pendown()方法将其放下。

最后,我们使用pencolor()方法设置笔的颜色,使用write()方法打印标题。完成所有这些之后,我们完成了绘图,并使用hideturtle()ht()方法隐藏了海龟。

代码

输出

上述代码的输出截图附在下面,描述了使用Python的Turtle绘制正方形的动画。

Creating a simple animation using Turtle in Python
Creating a simple animation using Turtle in Python
Creating a simple animation using Turtle in Python

使用Python的Turtle在Turtle中绘制一个海龟赛跑棋盘动画

之前,我们创建了一个简单的正方形,以让你理解使用Python的Turtle创建动画的基本思想。现在,我们将更进一步,创建一个涉及赛道的动画,其中几只海龟将在赛道上比赛,从而使其成为一个动画程序。

遵循的方法

  • 首先导入必要的模块。
  • 在Turtle模块中,各种指针形状可用(例如箭头、经典和海龟)。由于这是一个“海龟赛跑”,我们需要“turtle”“classic”形状。
  • 赛道将使用经典形状绘制。
  • 列出第一只海龟的规格,将其放置在赛道上,并准备出发。
  • 对于剩余的海龟,重复此过程。
  • 使用randint()函数调整海龟的速度。

分步实现代码

此动画将使用Turtle模块。该模块非常适合快速轻松地生成图形。如果你从未使用过Python的Turtle模块,请不要担心;我们将逐步指导你。

我们将假定你的机器已安装Python。如果你正在使用基于Web的平台,你可能需要更改某些变量,以便你的动画能够适应显示窗口。

首先,我们将导入turtle模块random integers模块到我们的程序中。

接下来,我们将使用speed()方法设置海龟的绘图速度,并使用penup()方法和goto()方法将海龟移动到新的坐标。

接下来,我们将开始绘制赛道。现在,我们将使用for循环开始使用write()方法绘制赛道的道路,执行循环15次

接下来,一个for循环用于道路标记之间的相等间隔数量。在此,我们使用penup()方法移动,使用forward()方法前进海龟,然后使用pendown()方法放下笔。

然后,我们再次使用penup()方法抬起笔,然后使用backward()方法向后移动。我们还使用left()方法将海龟向左转。

现在,我们将开始填写每个玩家的细节。首先,我们将从第一个玩家开始。我们将设置Turtle模块的一个实例,并用于玩家1相关的移动。然后我们使用color()方法设置海龟的颜色。然后我们将选择使用shape()方法设置海龟的形状。

然后,我们将使用penup()方法抬起笔,使用goto()方法移动到特定坐标,然后使用pendown()方法放下笔。

然后,我们将使用for循环并在同一位置原地旋转360度

首先,我们将从第二个玩家开始。我们将设置Turtle模块的一个实例,并用于玩家2相关的移动。然后我们使用color()方法设置海龟的颜色。然后我们将选择使用shape()方法设置海龟的形状。

然后,我们将使用penup()方法抬起笔,使用goto()方法移动到特定坐标,然后使用pendown()方法放下笔。

然后,我们将使用for循环并在同一位置原地旋转360度

首先,我们将从第三个玩家开始。我们将设置Turtle模块的一个实例,并用于玩家3相关的移动。然后我们使用color()方法设置海龟的颜色。然后我们将选择使用shape()方法设置海龟的形状。

然后,我们将使用penup()方法抬起笔,使用goto()方法移动到特定坐标,然后使用pendown()方法放下笔。

然后,我们将使用for循环并在同一位置原地旋转360度

首先,我们将从第四个玩家开始。我们将设置Turtle模块的一个实例,并用于玩家4相关的移动。然后我们使用color()方法设置海龟的颜色。然后我们将选择使用shape()方法设置海龟的形状。

然后,我们将使用penup()方法抬起笔,使用goto()方法移动到特定坐标,然后使用pendown()方法放下笔。

然后,我们将使用for循环并在同一位置原地旋转360度

然后,最后我们将使用randint()方法和forward()方法设置海龟以随机速度运行,然后执行。

完整代码

输出

上述代码的输出截图附在下面,描述了使用Python的Turtle绘制赛道的动画。

Creating a simple animation using Turtle in Python
Creating a simple animation using Turtle in Python
Creating a simple animation using Turtle in Python