Python学习日记之学习turtle库(下 篇)

前言:

        书接上篇,我们继续来了解Python内置库 turtle功能库。在前面的文章中,我们初步的了解了一下 turtle库,画布和画笔相关的函数,那么我们继续来深入了解一下吧。

详情见:

Python学习日记之学习turtle库(上 篇)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Isaiah_Cohen/article/details/136581082?spm=1001.2014.3001.5501

一、画笔函数的控制指令

        在Python内置库 turtle是一个专门用于绘画的功能库,其中有一类专门用于绘画的指令函数。

表1 - 1 认识控制指令及其功能

指令别称说明
turtle.penup()

turtle.up()

turtle.pu()

笔从屏幕上拉起来,它在移动到另一个位置或方向时不提供任何绘图
 turtle.pendown()

 turtle.pd()

 turtle.down()

将拉起的画笔落回画布
turtle.isdown()检查画笔是否已经落下
turtle.fillcolor('color')该方法用于返回或设置填充色。如果turtleshape是一个多边形,那么该多边形的内部将用新设置的填充色绘制
turtle.color('pencolor', 'fillcolor')设置画笔颜色和填充颜色。如果只有一个颜色则画笔颜色和填充颜色相同。如果是两种颜色,则前者是画笔颜色,后者是填充颜色
turtle.filling()检查图形是否为填充状态
turtle.begin_fill()开始填充,这个方法用于在绘制一个要填充的形状之前调用,它不接受任何参数。
turtle.end_fill()结束填充,该方法用于填充调用begin_fill()后绘制的形状
turtle.hideturtle()turtle.ht()这个方法是用来使Turtle隐身的。当你正在进行复杂的绘图时,这样做是个好主意,因为隐藏Turtle会明显加快绘图速度。这个方法不需要任何参数
turtle.showturtle()turtle.st()该方法用于将隐藏起来的turtle使其可见。它不需要任何参数。
turtle.clear()这个功能是用来删除屏幕上的Turtle图画。Turtle的不移动状态和位置以及其他Turtle的绘图不受影响。它不需要任何参数。
turtle.reset()这个函数用来删除turtle的图画并恢复其默认值。它不需要任何参数。
turtle.undo()

这个函数用来撤消(重复)最后一个turtle动作。可用的撤销动作的数量由撤销缓冲区的大小决定。它不需要任何参数。

turtle.isvisible()检查画笔是否可见
turtle.shape()该函数用于将Turtle形状设置为具有给定名称的形状,如果没有给定名称,则返回当前形状的名称。
turtle.stamp()该方法用于在画布上印制一个turtle形的副本,相当于印章,并返回其ID。它不需要任何参数。不管turtle的形状是什么,它都会在这一点上被打印出来,然后继续下一个指令。
turtle.clearstamp()清除当前印章
turtle.clearstamps()清除全部印章
turtle.write(s [,font=('font_name',font_size,'font_type')])该函数用于在当前 turtle 位置书写文本,s为文本内容,字体font是可选项,其名称,大小和类型等参数也是可选项

二、关于turtle库绘图练习

        在练习之前我们先明确一个小知识,在使用Python turtle画图时,画完图形窗口一下子退出消失怎么办,如何能够停留在画完的窗口呢?

退出窗口停滞的解决方法

        程序退出画图界面的原因,本质上来说就是程序执行完成,程序结束窗口也随着程序一并结束。其实是解决的方法很简单,只要我们能够想办法让程序在画完图片后,不退出就好了。        

        turtle提供了几个可以让窗口一直保持着的方法:

  • 第一种方法:在程序的最后面加上:turtle.exitonclick(),让程序等待用户点击界面后才能够退出
  • 第二种方法:在程序的最后面加上:turtle.mainloop(),该语句必须放到最后一句,该句子后面的所有代码都无法执行
  • 第三种方法:在程序的最后面加上:turtle.done(),该语句的功能和mainloop()差不多。
绘制一个彩色正方形

代码

import turtle
from turtle import * # turtle库的调用
pensize(2) # 选择画笔大小
pencolor("red") # 选择画笔颜色
color = ["green","red","pink","blue"] # 对颜色进行一一枚举
for i in range(200): # 进行4次循环
    turtle.forward(i*2) # 向前前进100个像素
    pencolor(color[i%4])# 设置画笔颜色
    turtle.right(90)# 由前进方向,向右转90°
turtle.done() # 窗口停滞

运行结果

 

六芒星 

代码:

from turtle import *
def triangle():
    pensize(2)
    pencolor('black')
    for i in range(3):
        fd(60)
        right(120)

def main():
    colors=['green','red','yellow','pink','purple','orange']
    speed(7)
    for i in range(6):
        begin_fill()
        fillcolor(colors[i])
        triangle()
        fd(60)  #以坐标系为基准,左转60°
        left(60)
        end_fill()
    #填充中心颜色
    fillcolor("blue")
    begin_fill()
    for i in range(6):
        fd(60)
        left(60)
    end_fill()
    ht()#隐藏画笔
main()
done()

 运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring web MVC(入门)

1、什么是MVC(一种思想) Model View Controller : Model—模型 View—视图 Controller—控制器 2、Spring MVC是一种实现(我们现在学的是Spring web,Spring mvc过时了) View属于前端问题我们后端人员不必太过于关注…

Prometheus添加nginx节点显示不支持stub_status 解决办法

1、我们在使用Prometheus监控添加nginx节点监控的时候,在被监控节点的nginx配置文件中添加下面的模块 server { listen 80; server_name localhost; location /stub_status { stub_status on; access_log off; …

Leetcode 73. 矩阵置零

给定一个 m x n 的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为 0 。请使用原地算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2: 输入&a…

力扣hot100题解(python版63-68题)

63、搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输…

在Blender中清理由Instant-NGP等几何学习技术生成的网格

使用布尔运算: 创建一个大的立方体或其他简单几何体包裹住全部网格。使用布尔修改器对两个网格进行“差集”运算。这将移除超出包裹体之外的多余网格部分。 手动选择并删除: 进入编辑模式(按Tab键)。按A键取消选择所有顶点。按B键并拖动以选择您想要删除…

【论文笔记】Language Models are Few-Shot Learners

Language Models are Few-Shot Learners 本部分是 GPT-3 技术报告的第一部分:论文正文、部分附录。 后续还有第二部分:GPT-3 的广泛影响、剩下的附录。 以及第三部分(自己感兴趣的):GPT-3 的数据集重叠性研究。 回顾…

vue2 div滚动条下拉到底部时触发事件(懒加载) 超级简易版本的懒加载

文章目录 导文文章重点内容效果展示:代码展示这些方法适用于哪些场景 总结 导文 vue2 div滚动条下拉到底部时触发事件(懒加载) 超级简易版本的懒加载 文章重点 内容效果展示: 当div拉到底部的时候: 编辑器返回: 代码展示 在…

来点基础的吧,JavaScript、JSP怎么打印输出,方便调试

这个对初学者肯定有用,自己写了代码,想看看对不对,想打印到页面上看看,都有哪些地方需要打印用哪些方法呢? 一、JavaScript的打印输出 1、console.log() console.log()是JavaScript中最常用的打印值方法之一。它将指…

React-router之简单使用

1.概念 说明:页面的跳转 2.安装 说明:路由采用CRA创建项目的方式进行基础环境配置。 npx create-react-app react-router-pro npm i react-router-dom 3.使用 import React from react; import ReactDOM from react-dom/client; import ./index.css;…

嵌入式学习第二十五天!(网络的概念、UDP编程)

网络: 可以用来:数据传输、数据共享 1. 网络协议模型: 1. OSI协议模型: 应用层实际收发的数据表示层发送的数据是否加密会话层是否建立会话连接传输层数据传输的方式(数据包,流式)网络层数据的…

C#学习:初识各类应用程序

编写我们第一个程序——Hello,World! 1.编程不是“学”出来的,而是“练”出来的 2.在反复应用中积累,忽然有一天就会顿悟 3.学习原则: 3.1从感官到原理 3.2从使用别人的到创建自己的 3.3必需亲自动手 3.4必需学以致用,紧跟实际…

大模型思维链(CoT prompting)

思维链(Chain of Thought,CoT) **CoT 提示过程是一种大模型提示方法,它鼓励大语言模型解释其推理过程。**思维链的主要思想是通过向大语言模型展示一些少量的 exapmles,在样例中解释推理过程,大语言模型在…

HTML 学习笔记(七)列表

html中的列表分为以下三种:有序列表,无序列表和自定义列表 1.有序列表 有序列表由两个元素组成:元素ol和元素li,此两个元素是父子关系,li必须包裹在ol里使用, ol里直接嵌套的只有li,其嵌套效果…

【亲身经历】linux中使用mv命令之后,文件找不到

先说解决方案:移动过程的目的目录,使用了"/",这个斜杠标识加到目录名前面,表示会移动到根目录下的文件夹,而不是你想移动的那个文件夹,最后导致没找到。 某次升级tomcat的过程中,使用了mv移动文…

ky10 server 银河麒麟服务器主备搭建 (nginx+keepalived)

下载脚本代码 git clone https://gitcode.net/zengliguang/nginx_keepalived_ky10_x.git 进入脚本路径 更新脚本代码 更新完成 执行安装脚本 安装nginx离线编译安装依赖 解压nginx源码 检查环境 编译 nginx安装成功 安装keepalived keepalived安装成功

详解前端登录流程:实现原理与最佳实践

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Mysql安装好后my.ini文件在何处

文章目录 报错 Invalid default value for ‘‘begin_time‘‘my.ini文件何在 背景:导入一个sql脚本时执行报错,需要修改my.ini中的一个配置 报错 Invalid default value for ‘‘begin_time‘‘ 需要修改my.ini中的slq-mode配置 参考的这个哥们博客配…

unityplayer.dll是什么,电脑缺少unityplayer.dll的解决方法分享

如何解决“缺失unityplayer.dll”错误?当您尝试启动一个应用程序或游戏时,您可能会看到一个错误消息,显示“找不到unityplayer.dll”或unityplayer.dll丢失。这通常是因为Unity引擎未正确安装或文件已丢失或损坏。这篇文章将向您介绍如何解决…

Redis进阶--一篇文章带你走出Redis

目录 什么是Redis?? Redis有哪些使用场景? Redis是单线程还是多线程? 为什么Redis是单线程速度还是很快?? Redis持久化 RDB机制:(Redis DataBase) [是redis中默认的持久化方式] AOF机制:(Append Only File) Redis和MySQL如何保持数据一致????…

Unity中PICO实现 隔空取物 和 接触抓取物体

文章目录 前言一、隔空取物1、XR Grab Interactable2、调节扔出去时的相关系数3、用手柄射线指向需要抓取的物体后,按下侧边扳机键即可抓取 二、接触抓取物体1、替换手柄上抓取物体的脚本2、在手柄上添加 接触抓取物体的脚本3、在手柄上添加碰撞盒触发器4、在需要抓…