会画画的海龟,Python Turtle库详解(27)

news2024/11/17 1:48:52

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

介绍下Python的turtle库,这是一个可以画画的库,非常适合小孩子在屏幕上画画。

先学习基础知识,下面三个有趣的程序都是turtle做的,漂亮吗?

LOGO语言

LOGO语言“logo”一词源于希腊文,原意为“文字”或“思考”、“想法”。

是一种过程性语言,是在1967年由美国麻省理工学院(MIT)佩帕特(Seymour Papert)教授指导下的一个研究小组在LISP语言基础上,专门为儿童研制开发的编程语言。

Logo语言虽然结构简单、却有丰富的表达方式,体现了现代计算机科学许多最新概念。

在LOGO的世界里,人们可以通过编程输入指令,让小海龟在画面上走动,向左右上下,或者按照设定的角度移动,或者重复做某一件事情。

简单的绘图指令,加上判断、循环等程序设计方法,可以绘制出美丽的图案,比如人物、动物、植物、抽象画等等。

turtle库

Python内置了turtle库,借鉴了LOGO语言海龟画图的所有绘图功能。

画布(canvas)

所谓画布,就是将这些东西都存放在一个位置进行设定,方便展开绘画的区域。

常见的方式有两种:

turtle.screensize(canvwidth=None, canvheight=None, bg=None)

三个参数,分别是设置画布的宽、高及背景样式的操作,在使用的时候,宽的单位为像素

比如:

turtle.screensize(600, 400, "green")

turtle.screensize() #返回默认大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

前面两个参数是设置画布的宽和高的,当它们为整数的时候表示的是像素,如果是小数就表示当前使用电脑的屏幕比例。

后面两个参数设置的是矩形窗口顶点的位置,当值为空时,默认窗口会在屏幕的中间出现。

比如:

turtle.setup(width=0.6, height=0.6)

turtle.setup(width=800, height=800, startx=100, starty=100)

绘图屏幕坐标系

画笔

turtle.shape("turtle")可指定画笔的形状

classic,arrow,tutle(缺省默认值),circle,square,triangle

turtle.pensize():设置画笔的宽度。

turtle.speed():画笔的移动速度,范围为0到无穷大。

turtle.pencolor():设置获取画笔颜色。

绘图控制

向前移动:tutle.forward(distance),tutle.fd(distance)

向后移动:tutle.backward(distance),tutle.bk(distance)

向左旋转:tutle.left(angle),tutle.lt(angle)

向右旋转:tutle.right(angle),tutle.rt(angle)

向左旋转角度:tutle.seth(angle)

画笔运动命令

tutle.forward(distance),tutle.fd(distance)

tutle.backward(distance),tutle.bk(distance)

tutle.left(angle),tutle.lt(angle)

tutle.right(angle),tutle.rt(angle)

tutle.pendown(),pd(),down():画笔落下,移动时绘制图形,缺省值

tutle.goto(x,y):画笔移动到(x,y)

tutle.penup(),pu(),up():画笔抬起,移动时不绘制图形

tutle.setx():将当前x轴移动到指定位

tutle.sety():将当前y轴移动到指定位置

tutle.setheading(angle),tutle.seth():设置当前朝向为angle的角度

tutle.home():设置画笔位置到原点,朝向东

画笔设置命令

tutle.pensize(width):画笔宽度

tutle.pencolor(colorstring):画笔颜色

tutle.colormode(mode):改变颜色生成模式

tutle.fillcolor(colorstring):绘制图形填充颜色

tutle.color(color1,color2):同时设置pencolor=color1,fillcolor=color2

tutle.filling():返回当前是否在填充装填

tutle.begin_fill():准备开始填充图形

tutle.end_fill():填充完成

tutle.hideturle():隐藏画笔形状

tutle.showturle():显示画笔形状

画笔控制命令

tutle.clear():清空turle窗口,但turtle位置和状态不改变

tutle.reset():清空窗口,重置turtle状态为起始状态

tutle.undo():撤销上一个turtle动作

tutle.isvisable():返回当前turtle是否可见

tutle.stamp():复制当前图形

tutle.write(s,font):写文本s,字体是font

tutle.dot(r,color):绘制一个指定直径和颜色的原点

tutle.circle(radius,extents,steps):以给定半径画圆,半径radius为正(负),表示圆心在画笔的左边(右边)画圆

其他高级命令

tutle.done():程序暂停,直到用户关闭。一般是最后一个语句

tutle.mode(mode=None):设置standard,logo,world

tutle.delay(delay=None):设置或返回以毫秒为单位的绘图延迟

tutle.begin_poly():开始记录多边形的顶点

tutle.end_poly():停止记录多边形的顶点

tutle.get_poly():返回最后记录的多边形

模式‘standard’与turtle.py兼容。

模式‘logo’与大多数Logo-Turtle-Graphics兼容。

模式‘world’使用用户定义的‘worldcoordinates’。

怎么样?

有趣吧?

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/419867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门教程+项目实战-9.4节: 字符串的格式化

目录 9.4.1 理解格式化 9.4.2 使用f-string进行格式化 9.4.3 使用格式化符号进行格式化 9.4.4 使用format方法进行格式化 9.4.5 知识要点 9.4.6 系统学习python 9.4.1 理解格式化 同学们比较熟悉的是磁盘格式化,将磁盘格式化以后,磁盘中的文件全部…

第10章_多线程

第10章_多线程 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 我们之前学习的程序在没有跳转语句的情况下,都是由上至下沿着一条路径依次执行。现在想要设计一个程序…

Spring概述及IoC,DI的理解

目录 一、Spring 是什么? 1.1 什么是容器? 1.2 如何理解IoC? 1.3 理解Spring Ioc 1.4 DI是什么 1.5 回顾IoC,DI 1.6 IoC和DI的对比 一、Spring 是什么? 我们通常所说的 Spring 指的是 Spring Framework&#x…

不会写代码也能做自动化?推荐一款自动化测试神器

在软件测试这条道路上,大部分的职业技能发展道路都会是纯业务手工测试→自动化测试→性能测试→安全测试/测试开发。 但是却有着一部分人起初进入软件测试这一行看重的就是软件测试属于IT行业,门槛比较低,不需要代码基础。 这就导致了这一部…

数据库系列之MySQL线程ID和操作系统线程ID对应关系

在日常运维工作中,MySQL数据库服务器出现SQL语句执行导致服务器CPU使用率突增,如何通过现有手段快速定位排查到哪个SQL语句,并采取应急措施。本文介绍基于传统的操作系统线程的CPU使用监控手段入手,利用操作系统线程ID和MySQL线程…

Leetcode.1631 最小体力消耗路径

题目链接 Leetcode.1631 最小体力消耗路径 Rating : 1948 题目描述 你准备参加一场远足活动。给你一个二维 rows x columns的地图 heights,其中 heights[row][col]表示格子 (row,col)(row, col)(row,col) 的高度。一开始你在最左上角的格子 (0,0)(0, 0)…

8.Java面向对象---类、属性和方法

Java面向对象—类、属性和方法 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同…

ActiveReportsJS 4.0 FIX ActiveReportsJS 4.0 Crack

JavaScript 报告工具是一组用于数据整合和可视化的 Web 组件。ActiveReportsJS 是前端开发人员用来在 Web 应用程序中嵌入报告的解决方案。报表设计器和查看器组件、强大的数据可视化器和丰富的 API 等主要功能使 ActiveReportsJS 成为行业领导者。 JavaScript 报告引擎 利用强…

【算法与数据结构】2 梅开二度,线性查找的究极优化

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于算法与数据结构体系专栏,本专栏对于0基础者极为友好,欢迎与我一起完成算法与数据结构的从0到1的跨越 线性查找的究极优化1.前言2.泛型1.1粗略介绍泛型类1.2使用泛型方法1…

Python 中如果键不存在,则将键添加到字典

文章目录使用 not in 检查键是否存在如果字典不存在则使用 dict.get() 添加键到字典如果字典不存在,则使用 setdefault() 将键添加到字典中使用 not in 检查键是否存在 如果字典不存在,则将键添加到字典中: 使用 not in 运算符检查键是否不…

如何用ChatGPT写文章?只需要这3步,10倍提升写作效率

随着技术的不断进步和创新,我们的生活方式和工作方式也在不断变化。在日常工作中,越来越多的人使用人工智能和机器学习等技术提高效率减少时间成本。最近ChatGPT火出圈了,很多人通过使用ChatGPT提高了工作效率。那么,在写作领域&a…

【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点 p269 -- Java Version

题目链接:https://leetcode.cn/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 1. 题目介绍( 54. 二叉搜索树的第k大节点) 给定一棵二叉搜索树,请找出其中第 k 大的节点的值。 【测试用例】: 示例 1: 示例2&…

UTONMOS:打造你的梦想,开启元宇宙无限彩排的游戏时代

有人认为,元宇宙不过是 VR 概念的“旧瓶换新酒式”的炒作。 有人认为,元宇宙是被资本和巨头绑架的另一场“游戏”。 有人认为,元宇宙是骗局,是智商税。 更多人对元宇宙的评价是“呵呵”。 媒体朋友对元宇宙的描述更具艺术性&a…

详解FreeRTOS中的软件定时器

软件定时器用于让某个任务定时执行,或者周期性执行。比如设定某个时间后执行某个函数,或者每隔一段时间执行某个函数。由软件定时器执行的函数称为软件定时器的回调函数。 参考资料: 《Mastering the FreeRTOS™ Real Time Kernel》——Cha…

vue2、vue3使用i18n实现国际化

一、目标效果 源码地址:git clone i18n-demo: vue2、vue3实现i18n国际化功能 默认语言是中文: 点击语言切换,变成英文(这里简单设置了中文、英文两种语言) 注意:vue2支持 vue-i18n 版本8.0 ,vu…

本轮沙尘已跨过长江!这些地区请注意加强防范

气象台4月12日06时继续发布沙尘暴蓝色预警:受冷空气大风影响,预计4月12日08时至13日08时,新疆南疆盆地和东部、内蒙古中西部、甘肃河西和中部、宁夏、陕西中部、山西、河北、辽宁、北京、天津、山东、河南、安徽、江苏、上海、湖北中北部、浙…

漏洞利用之弱口令

漏洞利用之弱口令1.弱口令的定义2.弱口令字典生成收集用户信息,组成爆破字典特殊字符增强的字典生成字典生成项目3.利用 Burp Suite 进行密码爆破1.弱口令的定义 弱口令没有严格和准确的定义,通常认为容易被别人猜测到或被破解工具破解的口令均为弱口令…

【Mysql】mysql8.0.26解压包部署方式

版本背景: 操作系统:centos7.3 mysql版本:mysql-8.0.26-linux-glibc2.12-x86_64.tar 一、前期准备 1、检测操作系统自带安装的mysql和mariadb服务,如存在,需卸载 rpm -qa | grep mysql rpm -qa | grep mariadb 卸载…

vim编辑器使用

目录 vim基本概念 vim基本操作 插入模式 命令模式 移动光标 删除字符 复制剪切 替换 撤销 更改 移动指定行 底行模式 命令集 vim简单配置 vim基本概念 vim编辑器有三种模式: 命令模式:光标移动,字符或行移动&#x…

iTOP-RK3568开发板Android kernel移植-单独编译内核

此方法常用于 kernel 的开发和调试,以下的方法既编译 kernel 部分时, 同 时打包成 boot.img, 这样加快了我们开发的速度; 进入内核目录下, 输入以下命令: cd kernel make ARCHarm64 CC../prebuilts/cla…