学习Python中turtle模块的基本用法(6:其它函数)

news/2025/1/12 8:45:29/

  除了之前文章中介绍的turtle模块的绘图函数,本文从turtle帮助文档中梳理了其它绘图或状态函数,编写复杂的绘图函数时也用得到,函数清单如下表所示:

序号函数名称说明
1turtle.home返回初始坐标 (0,0),并设置朝向为初始方向
2turtle.dot在当前位置绘制一个直径为 size,颜色为 color 的圆点
3turtle.stamp在当前位置印制一个海龟形状,在本机测试时形状为一箭头,函数返回该印章的唯一标识,可以调用clearstamp和clearstamps删除标识
4turtle.undo撤消最近的一个海龟动作,连续调用本函数则会连续撤销多个动作
5turtle.distance返回从当前位置到指定点(或矢量或另一海龟实例)的直线距离
6turtle.towards返回从当前位置到指定点(或矢量或另一海龟实例)的连线的夹角
7turtle.pen集中设置画笔的属性,包括线条颜色、填充颜色、线条宽度等,其实就是相当于将pensize、pencolor、fillcolor等函数的作用集中在一个函数中设置
8turtle.isdown画笔落下时返回true,抬起时返回false
9turtle.reset从屏幕中删除海龟的绘图,海龟回到原点并设置所有变量为默认值,也即调用该函数后所有的图形都清除,所有的设置都变为默认值
10turtle.clear从屏幕中删除指定海龟的绘图,但不是重置,海龟的状态和位置以及其他海龟的绘图不受影响
11turtle.isvisible返回海龟(或箭头)当前是显示还是隐藏
12turtle.shape设置海龟的形状,默认为classic,也即箭头形状,还可以选择"arrow", “turtle”, “circle”, “square”, “triangle”, "classic"等,选择turtle时为海龟形状
13设置海龟形状通过调用resizemode、shapesize、turtlesize、shearfactor、shapetransform、tilt等函数设置海龟的形状、朝向等
14turtle.textinput弹出一个对话框窗口用来输入一个字符串
15turtle.numinput弹出一个对话框窗口用来输入一个数字
16turtle.title设置海龟窗口标题
17turtle.bgpic设置背景图片
18turtle.screensize设置海龟窗口大小
19绘制复杂形状可以调用begin_poly、end_poly和get_poly绘制复杂多边形,也可以创建空 Shape 对象,然后调用addcomponent添加形状,不过从帮助文档中看到的用途主要是修改海龟的形状

  对上述函数中的画点和画海龟图标函数进行测试,测试代码及运行效果如下所示(第二组示例代码中的海龟图标设置为了海龟形状):

import turtle as tt.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 tt.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 tt.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


http://www.ppmy.cn/news/6884.html

相关文章

景联文科技2D3D融合标注案例分享|数据标注

在自动驾驶场景中,激光雷达生成的点云数据可用于测量物体的形状和轮廓,并估算出周围物体的位置和速度,但由于激光雷达生成的点云数据缺少RGB数据中存在的纹理和颜色信息,无法精确地识别出路上的汽车、行人、障碍物、信号灯等。而2…

[DonkeyCar][树莓派]基础01 - 首次配置 - WIFI

2022年圣诞节到来啦,疫情把刚刚起来的工作似乎又慢了下来,在冲刺决赛圈的同时,也许开一个新的领域,写一个博客是比较好的方式。 一、前言 拿到树莓派开发板的时候,一般,供应商都会配合烧录的镜像。但是&am…

jQuery库冲突

文章目录jQuery库冲突原因jQuery.noConflict()如还想使用$可以这么做jQuery库冲突 原因 在某些情况下,可能有必要在同一个页面中使用多个JavaScript库。但是很多库都使用了“$”这个符号(因为它简短方便),这时就需要用一种方式来…

volantis使用php实现Gitee友链

介绍 本文使用Gitee实现Volantis主题友链功能,其中友链使用的是site标签,因为该标签可以展示图片,如 {% sites repo:example.json api:https://example.dearxuan.com %} 友链api的最终路径为 api “版本” repo,如上面代码的最…

【UE4 第一人称射击游戏】11-武器跟随鼠标移动并添加开火音效

上一篇: 【UE4 第一人称射击游戏】10-添加冲刺功能 本篇效果: 步骤: 1.打开“SWAT_AnimBP”,添加3个“变换(修改)骨骼”节点 选中第一个“变换(修改)骨骼”节点,在细节…

分布式微服务治理面试题大全

分布式微服务治理面试题大全 目录 面试题汇总 Q:为什么系统需要分布式微服务治理 Q:如何对系统进行微服务拆分 Q:有哪些分布式微服务治理框架 面试题汇总 Q:为什么系统需要分布式微服务治理 当服务出现异常时,互…

vue前端登录token验证

用户在首次访问网站时,应在登录页面填写账号密码,前端携带用户信息向服务器请求。 1、服务器验证用户信息 验证失败:给前端响应数据 验证通过:对该用户创建token,并以响应数据返回给前端 2、前端接受后端响应的数据…

JAVA——把一批压缩文件中存放的部分数据进行处理(替换)

JAVA——把一批压缩文件中存放的部分数据进行处理(替换)一、需求二、分析三、具体实现1.解压压缩文件2.读取解压后的文件并且按照一定逻辑处理3.把文件压缩存储4.方法的调用5.需要添加的依赖四、执行结果五、用到的工具类六、可以改进的地方1.文件处理完…