Python常用标准库的turtle库有什么作用
turtle最早来源LOGO语言,专门用于学习趣味编程。turtle图形绘制原理十分简单与直观。Python从2.6版本开始加入了turtle库,urtle又称海龟绘图,原理是模拟一只小海龟(海龟相当于一支笔)在屏幕上爬行,并在屏幕上留下爬行的痕迹,海龟可以按指定的距离或方向(指定的角度)移动。因此我们可以通过代码来控制海龟的爬行轨迹便能绘制出各种各样的图案。绘图时会自动打开一个绘图窗口可以查看绘图的动态过程,这个过程相当有趣。
另外2019年新增的全国计算机二级考试科目《Python语言程序设计》也会考到turtle库的绘图实操案例
先来看几个例子,再来看turtle的操作方法与函数
1
turtle简单绘图例子
1、绘制五角星
- 绘制五角星
from turtle import * setup(400,400) penup() goto(-100,50) pendown() color("red") begin_fill() for i in range(5): forward(200) right(144) end_fill() hideturtle() done()
2、绘制心形
- 绘制心形
from turtle import * color('red','pink') begin_fill() left(135) fd(100) right(180) circle(50,-180) left(90) circle(50,-180) right(180) fd(100) end_fill() hideturtle() done()
3、绘制正方形螺旋线
- 绘制正方形螺旋线
import turtle n=10 for i in range(1,10,1): for j in [90,180,-90,0]: turtle.seth(j) turtle.fd(n) n+=5
4、绘制同心圆
- 绘制同心圆
import turtle as t def DrawCircle(n): t.penup() t.goto(0,-n) t.pendown() t.circle(n) for i in range(20,100,20): DrawCircle(i) t.hideturtle() t.done()
2
设置绘图窗口
turtle绘图前需要给海龟划定一个爬行区域,该区域有独立坐标系,窗口中心是坐标系原点,垂直向上是y轴正方向,水平向右是x轴正方向。海龟的初始状态是位于坐标轴原点,头朝右,即x轴正方向
控制窗口的大小和初始位置的函数:
(1)turtle.screensize(canvwidth=None, canvheight=None, bg=None)
调整海龟们画的画布的大小,宽和高,单位为像素,默认值是400 * 300 ,背景色默认为白色,参数的含义如下:
canvwidth 正整数,新的画布宽度,以像素为单位
canvheight 正整数,画布的新高度(像素)
bg 颜色字符串或颜色元组,新背景色
(2)turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
设置主窗口的大小和位置
参数width 和 height分别表示绘图窗口的宽和高,当width 和height 的值为正数时,表示宽和高的像素,当宽和高为小数时,表示绘图窗口的宽和高分别占据计算机屏幕的宽和高的比例。参数startx表示绘图窗口左边框到屏幕左边边界的距离。starty 表示绘图窗口上边框到屏幕上边界的距离,如果这两个参数为空,则窗口位于屏幕中心
3
画笔状态控制函数
函数
作用
pensize(width)
设置画笔的宽度、即线条的粗细
pencolor(color)
设置画笔的颜色
fillcolor(color)
设置图形填充颜色
color(color1,color2)
设置画笔的颜色和图形的填充颜色
speed(n)
设置画笔的绘制速度,其取值范围从慢到快为1~10,但取0时,速度最快,无移动过程直接显示结果
pos()
返回画笔当前的坐标
isdown()
返回画笔是否处于放下的状态
4
画笔运动控制函数
turtle库中提供了一组用于控制画笔运动的函数,包括当前方向上前进、后退、左转、右转、绘制图形等的函数
函数
作用 pendown()
放下画笔
penup()
提起画笔,另起一个地方绘制时用,与pendown()配对使用
forward()或fd() 沿着当前方向前进指定距离(单位为像素)
backward()或bk()
沿着当前相反方向后退指定距离(单位为像素)
right(angle)或rt()
向右旋转angle角度
left()或 lt()
向左旋转angle角度
goto(x,y)
从当前坐标移动到坐标(x,y)处,当画笔处于放下的状态时,移动过程中画线,当画笔处于提起的状态时,移动过程中不画线
setx() 将当前x轴移动到指定位置
sety()
将当前y轴移动到指定位置
setheadings(angle) 或seth(angle)
设置当前朝向为angle角度(0表示向东,90表示向北,180表示向西,270表示向南)
home()
设置当前画笔为原点,朝向为东
circle(radius)
以当前坐标为起始点,绘制一个指定半径的圆,radius为正整数时画笔沿逆时针方向移动,radius为负整数时,画笔沿顺时针方向移动
circle(radius,angle)
以当前坐标为起始点,绘制一个指定半径和角度的圆弧,angle参数默认值为360
circle(radius,steps=n) 以当前坐标为起始点,绘制一个指定的圆内接n(n>2)边形
dot(d,color)
绘制一个指定直径d和颜色的圆点
5
全局控制函数
函数
作用
begin_fill()
填充图形前,调用该函数
end_fill()
填充图形结束
filling()
返回填充的状态,Ture为填充,False为为填充
clear()
清空当前窗口,但不改变当前画笔的位置
reset()
清空当前窗口,并重置、方向等为默认值
done()
结束绘画,用在绘图代码的最后
hideturle()
隐藏画笔的形状
showturtle()
显示画笔的形状
isvisible()
判断画笔是否显示,如果turtle可见,返回Ture
write(str,align,font)
输出字符串str,align表示对齐方式,其值有left、center、right三种,font表示字体,元组类型(字体、字号、字形)