除了之前文章中介绍的turtle模块的绘图函数,本文从turtle帮助文档中梳理了其它绘图或状态函数,编写复杂的绘图函数时也用得到,函数清单如下表所示:
序号 | 函数名称 | 说明 |
---|---|---|
1 | turtle.home | 返回初始坐标 (0,0),并设置朝向为初始方向 |
2 | turtle.dot | 在当前位置绘制一个直径为 size,颜色为 color 的圆点 |
3 | turtle.stamp | 在当前位置印制一个海龟形状,在本机测试时形状为一箭头,函数返回该印章的唯一标识,可以调用clearstamp和clearstamps删除标识 |
4 | turtle.undo | 撤消最近的一个海龟动作,连续调用本函数则会连续撤销多个动作 |
5 | turtle.distance | 返回从当前位置到指定点(或矢量或另一海龟实例)的直线距离 |
6 | turtle.towards | 返回从当前位置到指定点(或矢量或另一海龟实例)的连线的夹角 |
7 | turtle.pen | 集中设置画笔的属性,包括线条颜色、填充颜色、线条宽度等,其实就是相当于将pensize、pencolor、fillcolor等函数的作用集中在一个函数中设置 |
8 | turtle.isdown | 画笔落下时返回true,抬起时返回false |
9 | turtle.reset | 从屏幕中删除海龟的绘图,海龟回到原点并设置所有变量为默认值,也即调用该函数后所有的图形都清除,所有的设置都变为默认值 |
10 | turtle.clear | 从屏幕中删除指定海龟的绘图,但不是重置,海龟的状态和位置以及其他海龟的绘图不受影响 |
11 | turtle.isvisible | 返回海龟(或箭头)当前是显示还是隐藏 |
12 | turtle.shape | 设置海龟的形状,默认为classic,也即箭头形状,还可以选择"arrow", “turtle”, “circle”, “square”, “triangle”, "classic"等,选择turtle时为海龟形状 |
13 | 设置海龟形状 | 通过调用resizemode、shapesize、turtlesize、shearfactor、shapetransform、tilt等函数设置海龟的形状、朝向等 |
14 | turtle.textinput | 弹出一个对话框窗口用来输入一个字符串 |
15 | turtle.numinput | 弹出一个对话框窗口用来输入一个数字 |
16 | turtle.title | 设置海龟窗口标题 |
17 | turtle.bgpic | 设置背景图片 |
18 | turtle.screensize | 设置海龟窗口大小 |
19 | 绘制复杂形状 | 可以调用begin_poly、end_poly和get_poly绘制复杂多边形,也可以创建空 Shape 对象,然后调用addcomponent添加形状,不过从帮助文档中看到的用途主要是修改海龟的形状 |
对上述函数中的画点和画海龟图标函数进行测试,测试代码及运行效果如下所示(第二组示例代码中的海龟图标设置为了海龟形状):
import turtle as t
t.home()
t.dot()
t.fd(50)
t.dot(20,'red')
t.fd(50)
t.stamp()
t.fd(50)
t.hideturtle()
t.done()
import turtle as t
t.shape('turtle')
t.home()
t.dot()
t.fd(50)
t.dot(20,'red')
t.fd(50)
t.stamp()
t.fd(50)
t.hideturtle()
t.done()
基于上述测试代码,插入了弹出窗口获取数值的函数调用,程序及运行截图如下所示:
import turtle as t
t.shape('turtle')
t.home()
t.dot()
t.fd(50)
t.dot(20,'red')
t.fd(t.numinput('前进步数','输入前进的步数'))
t.stamp()
t.fd(50)
t.hideturtle()
t.done()
turtle模块还包括有屏幕事件、鼠标事件等高级用法,同时turtle模块自带的演示脚本中可以实现动画、鼠标交互等,后续会学习turtle模块自带的演示示例。
参考文献:
[1]https://docs.python.org/zh-cn/3/library/turtle.html