Oct1a

Python绘图Turtle库详解

Tutrle

在Python中有很多编写图形程序的方法,一个简单的启动图形化程序设计的方法是使用Python内嵌的Turtle模块。Turtle是Python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。它很容易学习并且使用简单。

使用import turtle导入即可。

一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对象,然后,可以调用Turtle对象的各种方法完成不同的操作。

当创建一个Turtle对象时,它的位置被设定在(0,0)处——窗口的中心,而且它的方向被设置为向右。Turtle模块用笔来绘制图形。默认情况下,笔是向下的(就像真实的笔尖触碰着一张纸)。如果笔是向下的,那么当移动Turtle的时候,它就会绘制出一条从当前位置到新位置的线。

画笔状态控制函数

函数 简写 作用
turtle.pendown() turtle.pd() 放下画笔
turtle.penup() turtle.pu() 抬起画笔
turtle.pensize(width) turtle.width(width) 画笔大小(宽度)
turtle.pencolor(rgb) Null 控制画笔颜色

运动控制函数

函数 简写 作用
turtle.forward(d) turtle.fd(d) 移动画笔距离(d为正值向前,负值向后)
turtle.backward(d) turtle.bk(d) 移动画笔的相反方向(向后移动)
turtle.setpos(x,y) turtle.goto(x,y) 移动画笔到绝对位置
函数 作用
turtle.circle(r, ext, step) 控制画笔画弧线(默认绘制360度)
turtle.setx(x) 设置画笔X坐标
turtle.sety(y) 设置画笔Y坐标
turtle.home() 移动画笔到原点(0,0)
turtle.dot(diameter, color) 绘制具有指定直径和颜色的圆
turtle.undo() 撤消(重复)最后一次乌龟动作
turtle.speed(s) 设置画笔速度设置为1到10之间的整数(10最快)

circle方法有三个参数:radius是必需的,extent和step是可有可无的。extent是一个角度,它决定绘制圆的哪一部分。step决定使用的阶数。如果step是3/4/5/6……,那么circle方法将绘制一个里面包含被圆括住的的三边、四边、五边、六边或更多边形(即正三角形、正方形、五边形、六边形等)。如果不指定阶数,那么circle方法就只画一个圆。

方向控制函数

函数 简写 作用
turtle.right(angle) turtle.rt(angle) 改变画笔的角度
turtle.left(angle) turtle.lt(angle) 改变画笔的角度
turtle.setheading(angle) turtle.seth(angle) 调整画笔的运动方向(0-东, 90-北, 180-西 270-南)

画笔颜色填充函数

函数 作用
turtle.color(c1,c2) 同时设置pencolor=c1, fillcolor=c2
turtle.fillcolor 设置填充图形的填充颜色
turtle.begin_fill() 开始填充图形
turtle.end_fill() 结束填充命令
turtle.filling() 返回是否在填充状态

文字写入命令

函数 作用
turtle.write(s, font=(“Arial”, 8, “normal”)) 写文本,s为文本内容,font是字体的参数(字体名称,大小,类型) font为可选项, font的参数也是可选项

全局控制命令

函数 作用
turtle.clear() 清空窗口(但画笔位置和状态不变)
turtle.reset() 重置窗口(但画笔位置和状态成初始状态)
turtle.isvisible() 设置画笔是否可见
turtle.screensize(w, h) 设置画布的宽高
turtle.hideturtle() 隐藏箭头显示
turtle.showturtle() 显示画笔箭头

更改默认的屏幕外观与行为

在工作目录文件下,新建turtle.cfg文件,写入

width = 0.5             #窗体宽度——个整数(单位:像素)或者是小数(单位:百分比),默认是屏幕宽的50%
height = 0.75             #窗体高度——个整数(单位:像素)或者是小数(单位:百分比),默认是屏幕宽的75%
leftright = None        #窗体距离屏幕左边的距离
topbottom = None        #窗体距离屏幕顶部的距离
canvwidth = 400            #画布宽度
canvheight = 300        #画布高度
mode = standard            #笔刷模式:standard(向右逆时针);logo(向上顺时针);world(用户定义的坐标)
colormode = 1.0            #颜色模式,范围(1-255)
delay = 10                #每一笔的延迟时间
undobuffersize = 1000    #缓存大小
shape = classic            #形状可选模式:polygon(多边形) image(图片) compound(复合形状)
pencolor = black        #画笔的默认颜色
fillcolor = black        #如果想让箭头成透明,可以给个空字符串,fillcolor=""
resizemode = noresize    #auto(根据pensize来自动调整)、user(自定义)、noresize(不改变箭头外观)
visible = True            #是否显示箭头
title = Python Turtle     #窗体的标题
using_IDLE = False        #如果你经常使用IDLE程序运行,请将这项设置成True

lib/turtledemo 目录下已经有默认的文件,新建后会覆盖默认设置

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。