turtle模块介绍
通过操作“海龟”,进行一系列动作,绘制图像的模块
方法简介
1.画布属性(canvas)
turtle.screensize(canvwidth=None, canvheight=None, bg=None):
参数:canvwidth-正整数, 画布的新宽度(以像素为单位)
canvheight-正整数, 画布的新高度(以像素为单位)
bg-颜色字符串或颜色元组, 新背景颜色
如:turtle.screensize(800,600, "green")
turtle.screensize() #返回默认大小(400, 300)
turtle.setup(self, width=_CFG["width"], height=_CFG["height"],startx=_CFG["leftright"], starty=_CFG["topbottom"]):
参数:width:以像素为单位的整数;以屏幕的一小部分为浮点数,默认值为屏幕的50%
height:整数以像素为单位的高度,作为屏幕。默认值为屏幕的75%
startx:如果为正,则从左开始以像素为单位屏幕边缘;如果为负数,则从右开始以像素为单位屏幕边缘;默认情况下,startx=None是将窗口水平居中
starty:如果为正,则从顶部开始以像素为单位屏幕边缘;如果为负数,则从底边开始以像素为单位屏幕边缘;默认情况下,startx=None是将窗口垂直居中。
如:turtle.setup(width=0.6,height=0.6)
turtle.setup(width=800,height=800, startx=100, starty=100)
2.画笔属性:
turtle.pensize(width=None):设置或画笔的粗细;
参数:整数,数值越大,画笔越粗
turtle.pencolor(*args):返回或设置画笔的颜色
参数:没有参数传入,返回当前画笔颜色;
传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组或十六进制数格式
turtle.fillcolor(*args):返回或设置填充颜色
参数:没有参数传入,返回当前填充颜色
传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组或十六进制数格式
turtle.color(*args):返回或重新设置画笔颜色和填充颜色,与pencolor和fillcolor合并功能相似,使用color时,设置画笔颜色是与当前话题颜色进行对比的,因此必须在pencolor方法后面
参数:没有传入参数,返回当前画笔的颜色和填充颜色
传入参数设置话题颜色和填充颜色,可以是字符串如"green", "red",也可以是RGB 3元组或十六进制数格式
turtle.penup():抬起画笔,移动时不会在画布上画画
turtle.pendown():放下画笔,移动时会在画布上画画
turtle.isdown():判断画笔状态,如果笔放下返回True,如果笔抬起返回False
turtle.speed(speed=None):设置画笔移动速度,
参数:[0-10]的整数,数值越大,移动越快,但数值为0时,速度最快
turtle.showturtle():显示画笔在画布上
turtle.hideturtle():隐藏画笔,不显示在画布上
turtle.isvisible():判断画笔是否隐藏,隐藏返回False,显示返回True
turtle.pen(pen=None, **pendict):返回或设置画笔属性
参数:pen-传递画笔对象,当前画笔获取传递画笔的属性;若为空,则当前画笔恢复以前的属性
参数字典:
"shown" : True/False 画笔是都显示
"pendown" : True/False 画笔是否起落
"pencolor" : color-string or color-tuple 画笔颜色
"fillcolor" : color-string or color-tuple 画笔填充颜色
"pensize" : positive number 画笔的大小
"speed" : number in range 0..10 画笔移动速度
"resizemode" : "auto" or "user" or "noresize" 画笔自适应
"stretchfactor": (positive number, positive number)
"shearfactor": number
"outline" : positive number
"tilt" : number
如:penstate=turtle.pen()
turtle.pen(penstate, fillcolor="green")
3.画笔的动作:
turtle.forward(distance):画笔向前移动指定的距离 别名fd,不改变画笔的方向
参数:distance-整数或浮点数
如:turtle.forward(25)
turtle.back(distance):画笔向后移动一段距离 别名backward或bk,不改变画笔的方向
参数:distance-整数或浮点数
turtle.right(angle):向右旋转一定角度 别名rt,
参数:angle-角度 整数或浮点数 单位默认为角度,可以通过degrees和radians函数进行设置
turtle.left(angle):向左旋转一定角度,别名lt
参数:angle-角度 整数或浮点数 单位默认为角度,可以通过degrees和radians函数进行设置
turtle.pos():返回画笔当前位置(x,y) 别名position
turtle.xcor():返回画笔当前x坐标
turtle.ycor():返回画笔当前y坐标
turtle.goto(x, y=None):将画笔移动到绝对位置,如果放下笔,会画出一条线,海龟的方向不变
参数:x:一个数字或一对向量
y:一个数字或无
turtle.home()将画笔移动到原点位置
turtle.setx(x)将画笔的横坐标设置为x
参数:x:一个整数或浮点数
turtle.sety(y)将画笔的纵坐标设置为y
参数:y:一个整数或浮点数
turtle.distance(x, y=None)返回画笔到(x,y)坐标的距离
参数:x:一个整数或一对向量或画笔实例
y:一个整数
turtle.towards(x, y=None)返回画笔到(x,y)坐标的角度
参数:x:一个整数或一对向量或画笔实例
y:一个整数
turtle.heading()返回画笔当前的方向
turtle.setheading(to_angle)设置画笔的角度,别名seth
参数:to_angle:一个整数或浮点数
turtle.circle(radius, extent=None, steps=None)根据半径radius画一个圆
参数:radius:一个数字,半径
extent(可选) : 一个数字,范围,转多大弧度
steps(可选) :一个数字,步长,表示画圆的内接几边形
turtle.speed(s=0)画笔的移动速度
4.画笔的控制命令:
turtle.reset()删除画笔画的图,并回复默认值
turtle.clear()清除画笔画的图,不移动画笔
turtle.clone()创建并返回一个画笔的克隆
turtle.shape(name=None)设置画笔的形状
参数:name:一个字符串(有效的形状,'arrow', 'turtle', 'circle', 'square', 'triangle', 'classic')
turtle.shapesize(stretch_mid=None, stretch_len=None, outline=None)设置画笔的大小
参数:stretch_mid:正数,画笔宽度
stretch_len:正数,画笔长度
outline:正数,画笔轮廓
turtle.dot(size=None, *color)用颜色画一个size大小的点
参数:size:点的大小,正整数
*color:颜色字符串或颜色三元组
turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))在当前位置写文本
参数:arg:要写入的文本信息
move:是否要移动
align:对齐方式,left、center、right这三个中个一个
font:字体,三元组(字体、大小、类型)