- A+
turtle是一个简单的绘图工具,它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令,下面这篇文章主要给大家介绍了关于Python海龟turtle基础知识大全以及画图集合的相关资料,需要的朋友可以参考下
Turtle 库是 Python 内置的图形化模块,属于标准库之一,位于 Python 安装目录的 lib 文件夹下,常用函数有以下几种:
一.Turtle绘图的基础知识
画布是turtle用于绘图区域,我们可以设置它的大小和初始位置。
1.设置画布大小
turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别对应画布的宽(单位像素), 高, 背景颜色。
turtle.screensize(1000,800, "blue") turtle.screensize() #返回默认大小(500, 400) turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
2.画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
turtle.pensize() # 设置画笔的宽度; turtle.pencolor()# 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。 turtle.speed(speed)#设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
3.使用turtle绘图主要分为3种命令代码,分别为运动命令、画笔控制命令和全局控制命令。
画笔运动命令代码
turtle.forward(distance)—向当前画笔方向移动distance像素长度
turtle.backward(distance)—向当前画笔相反方向移动distance像素长度
turtle.right(degree)—顺时针移动degree° turtle.left(degree)—逆时针移动degree°
turtle.pendown()—移动时绘制图形,缺省时也为绘制 turtle.goto(x,y)—将画笔移动到坐标为x,y的位置
turtle.penup()—提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.circle()—画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 setx( )—将当前x轴移动到指定位置
sety( )—将当前y轴移动到指定位置 setheading(angle)—设置当前朝向为angle角度
home()—设置当前画笔位置为原点,朝向东 dot®—绘制一个指定直径和颜色的圆点
画笔控制命令代码
turtle.fillcolor(colorstring)—绘制图形的填充颜色 turtle.color(color1,color2)—同时设置pencolor=color1, fillcolor=color2
turtle.filling()—返回当前是否在填充状态 turtle.begin_fill()—准备开始填充图形
turtle.end_fill()—填充完成 turtle.hideturtle()—隐藏画笔的turtle形状
turtle.showturtle()—显示画笔的turtle形状
全局控制命令代码
turtle.clear()—清空turtle窗口,但是turtle的位置和状态不会改变
turtle.reset()—清空窗口,重置turtle状态为起始状态 turtle.undo()—撤销上一个turtle动作
turtle.isvisible()—返回当前turtle是否可见 stamp()—复制当前图形
turtle.write(s[,font=(“fontname”,font_size,“font_type”)])—文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项
绘图命令
操纵海龟绘图有很多命令,可以划分为三种:画笔运动命令、画笔控制命令、全局控制命令
1、画笔运动命令
命令 | 说明 |
---|---|
turtle.forward(distance) | 向当前画笔方向移动distance像素长度 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) | 顺时针移动degree° |
turtle.left(degree) | 逆时针移动degree° |
turtle.pendown() | 移动时绘制图形,缺少参数时也为绘制 |
turtle.goto(x,y) | 将画笔移动到坐标为(x,y)的位置 |
turtle.penuo() | 提起画笔,不绘制图形,用于另起一个地方绘制 |
turtle.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
setx() | 将当前x轴移动到指定位置 |
sety() | 将当前y轴移动到指定位置 |
setheading(angle) | 设置当前朝向为angle的角度 |
home() | 设置当前画笔位置为原点,朝向向东 ° |
2、画笔控制命令
命令 | 说明 |
---|---|
turtle.fillcolor(colorstring) | 绘制图形填充颜色 |
turtle.color(color1, color2) | 同时设置 pencolor = color1,fillcolor = color2 |
turtle.filling() | 返回当前是否在填充状态 |
turtle.begin_fill() | 准备开始填充图形 |
turtle.end_fill() | 填充完成 |
turtle.hideturtle() | 隐藏画笔的turtle形状 |
turtle.showturtle() | 显示画笔的turtle形状 |
3、全局控制命令
命令 | 说明 |
---|---|
turtle.clear() | 清空turtle窗口,但是turtle的位置和状态不会发生变化 |
turtle.reset() | 清空窗口,重置turtle状态为起始状态 |
turtle.undo() | 撤销上一个turtle动作 |
turtle.isvisible() | 返回当前turtle是否可见 |
stamp() | 复制当前图形 |
turtle.write(s[,font = ("font_name",font_size,"font_type")]) | 写文本,s为文本内容,font是字体参数,分别是字体名称,字体大小和类型,font和font的参数都是可选选项 |
熟悉turtle坐标体系
# 导入 turtle 模块 import turtle as t t.goto(100,100) t.goto(100,-100) t.goto(-100,-100) t.goto(-100,100) t.goto(0,0) t.done()
画笔自动绘图
# 用for循环初步实现画笔自动绘图 import turtle as t for i in range(20): # 画笔向前移动 t.forward(100 + 10 * i) # 顺时针旋转120° t.right(120) t.done()
显示画笔运动印记
# 用for循环初步实现画笔自动绘图并显示其印记 import turtle as t for i in range(20): # 画笔向前移动 t.forward(100 + 10 * i) #t.shape("turtle") # 海龟 #t.shape("circle") # 圆 t.shape("square") # 正方形 # 打印turtle印记 t.stamp() # 顺时针旋转60° t.right(60) t.done()