Turtle简介
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
Turtle基本操作
画布
画布就是turtle为我们展开用于绘图区域,我们可以使用以下代码设置它的大小和初始位置:
turtle.screensize(canvwidth=None,canvheight=None,bg=None)
# 参数分别为画布的宽(单位像素),高,背景颜色
turtle.screensize(800,600,"green")
# 宽高分别为800,600像素的画框,背景设为绿色
turtle.screensize()
#返回默认大小(400,300)
turtle.setup(width=0.5,height=0.75,startx=None,starty=None)
# 参数:width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例,(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。
画笔
画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向),turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态,可使用以下方法进行设置:
方法 | 作用 |
---|---|
right(degree) | 顺时针转动degree度 |
left(degree) | 逆时针转动degree度 |
setheading(angle) | 设置朝向为angle角度(默认为0度朝东) |
pendown() | 画笔落下 |
penup() | 画笔抬起 |
画笔的属性
可以使用以下方法设置画笔的颜色,线条的粗细等属性:
方法 | 作用 |
---|---|
pensize() | 设置画笔线条的粗细 |
pencolor() | 设置画笔线条颜色 |
speed() | 设置画笔的速度 |
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
画笔的运动
方法 | 作用 |
---|---|
forward(distance) | 画笔向前移动 |
backword(distance) | 画笔向后移动 |
goto(x,y) | 画笔移动到某个坐标 |
circle(r,extent,step) | 画出以r为半径的圆,extent为弧度,step为多边形的边数 |
setx(x) | 将x轴移动到某个位置 |
sety(y) | 将y轴移动到某个位置 |
dot® | 画出以r为半径的圆点 |
画笔的控制
方法 | 作用 |
---|---|
fillcolor(colorstring) | 设置画图时填充的颜色 |
color(color1,color2) | 设置画笔颜色和填充颜色 |
begin_fill() | 开始填充 |
end_fill() | 结束填充 |
hideturtle() | 隐藏画笔 |
showturtle() | 显示画笔 |
全局控制及其他
方法 | 作用 |
---|---|
clear() | 清空窗口,画笔状态不变 |
reset() | 清空窗口,画笔状态复原 |
stamp() | 复制当前图形 |
write(s,font=(fontname,fontsize,fonttype)) | 写文本,可设置字体 |
mode() | 设置画笔模式,standard:向右,逆时针;logo:向上,顺时针 |
mainloop()/done() | 启动程序循环 |
delay(t) | 设置绘图延时 |
示例
from turtle import * # 引用turtle库
fillcolor("red") # 设置填充颜色为红色
begin_fill() # 开始绘制
while True:
forward(200)
right(144)
if abs(pos()) < 1:
break
end_fill()