除了之前文章中介绍的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










![[Square 2022] Hard Copy 复现](https://img-blog.csdnimg.cn/6cd71c6576b24c4081f6be6a84c88d3c.jpeg)








