自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
海龟绘图是Python内置的模块,在使用前需要导入该模块,可以使用以下几种方法导入:
l 直接使用import语句导入海龟绘图模块,代码如下:
import turtle
通过该方法导入后,需要通过模块名来使用其中的方法、属性等。
l 在导入模块时为其指定别名,代码如下:
import turtle as t
通过该方法导入后,可以通过模块别名t来使用其中的方法、属性等。
l 通过from…import语句导入海龟绘图模块的全部定义,代码如下:
from turtle import *
通过该方法导入后,可以直接使用其中的方法、属性等。
了解海龟绘图的坐标系
在学习海龟绘图之前,需要先了解海龟绘图的坐标系。海龟绘图采用的是平面坐标系,即画布(窗口)的中心为原点(0,0),横向为x轴,纵向为y轴,x轴控制水平位置,y轴控制垂直位置。例如,一个400×320的画布,对应的坐标系如图15.1所示。
图15.1 海龟绘图的坐标系
在图15.1中,绿色虚线框为画布大小。海龟活动的空间为绿色虚线框以内。即x轴的移动区间为-200~200 ;y轴的移动区间为-160~160。同数学中一样,表示海龟所在位置(即某一点)的坐标为(x, y)。
海龟绘图的三要素
采用海龟绘图有三个关键要素,即方向、位置和画笔。在进行海龟绘图时,主要就是控制这些要素来绘出我们想要的图形。下面分别进行介绍。
l 方向
在进行海龟绘图时,方向主要用于控制海龟的移动方向。主要有以下3个方法进行设置:
Ø left()/lt()方法:让海龟左转(逆时针)指定度数。
Ø right()/rt()方法:让海龟右转(顺时针)指定度数。
Ø setheading()/seth()方法:设置海龟的朝向为0(东)、90(北)、180(西)或270(南)。
l 位置
在进行海龟绘图时,位置主要用于控制海龟移动的距离。主要有以下6个方法进行设置:
Ø forward(distance) :让海龟向前移动指定距离,参数distance为有效数值。
Ø backward(distance) :让海龟向后退指定距离,参数distance为有效数值。
Ø goto(x,y) :让海龟移动到画布中的特定位置。即坐标(x, y)所指定的位置。
Ø setx(x) :设置海龟的横坐标到x,纵坐标不变。
Ø sety(y) :设置海龟的纵坐标到y,横坐标不变。
Ø home() :海龟移至初始坐标 (0,0),并设置朝向为初始方向。
l 画笔
海龟绘图中的画笔就相当于现实生活中绘图所用的画笔。在海龟绘图中,通过画笔可以控制线条的粗细、颜色和运动的速度。关于画笔的详细介绍请参见第15.3节。
绘制第一只海龟
下面我们就来绘制第一只海龟,以此来了解海龟绘图的基本步骤。
实例15.1 绘制一只向前爬行的海龟
创建一个Python文件,在该文件中,首先导入turtle模块,然后通过RawTurtle类的子类Turtle(别名为Pen)创建一只小海龟并命名,再调用forward()方法向前移动200像素。代码如下:
import turtle # 导入海龟绘图模块
t_ufo = turtle.Turtle() # 创建一只小海龟,命名为t_ufo
t_ufo.forward(200) # 向前爬行200像素
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
说明:在上面的代码中,第2 行代码也可以替换为:“t_ufo = turtle.Pen()”;最后一行也可以替换为“turtle.
mainloop()”。
运行程序,在打开的窗口中,可以看见一个箭头从屏幕中心的位置向右移动,并且保留一条200 像素的线,如图15.2所示。在图15.2中,并没有一只海龟,这是因为在海龟绘图的默认情况下,光标形状为箭头,可以通过海龟的shape()方法进行修改。如果想要修改为海龟形状,可以在【实例15.1】的代码中添加以下代码:
t_ufo.shape('turtle') # 设置为海龟形状
再次运行程序,将显示如图15.3所示的效果。可以看出,图15.2中的箭头变为一只小海龟。
图15.2 从屏幕中心向右画一条200 像素的线 图15.3 光标的形状变为一只小乌龟
说明:如果在屏幕上只需要有一只小海龟,那么也可以不创建海龟对象,直接使用turtle作为海龟对象即
可。例如,【实例15.1】的代码也可以修改为以下代码:
turtle.forward(100) # 向前爬行200像素
turtle.shape('turtle') # 设置为海龟形状
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
另外,在15.1节中介绍导入turtle模块的几种方法时,介绍了通过from…import语句导入全部定义。通过该方法导入模块后,如果屏幕中只有一只海龟,则可以将代码简化为以下内容:
from turtle import * # 导入海龟绘图的全部定义
forward(100) # 向前爬行200像素
shape('turtle') # 设置为海龟形状
turtle.done() # 海龟绘图程序的结束语句(开始主循环)
动手试一试
任务一:让小海龟留下Z字形的足迹
本任务要求:应用海龟让一只小海龟在沙滩上留下Z字形的足迹,效果如图15.4所示。(提示:可以通过移动和旋转实现)
图15.4 让小海龟留下Z字形的足迹
任务二:绘制一个小于号“<”
本任务要求应用海龟绘制一个小于号“<”,效果如图15.5所示。(提示:可以通过移动和旋转实现)
图15.5 绘制一个小于号“<”