百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

python海龟绘图turtle(二):画笔

itomcoil 2025-01-18 20:44 29 浏览

海龟绘图(turtle)是python的一个有趣的内置模块,是python语言的标准库之一,是入门级的图形绘制函数库。

一、认识画笔

海龟绘图(turtle)可以想象为有一只小“海龟”在窗体正中间,即坐标原点(0,0)的位置,它会根据我们编写的控制指令(代码),在画布上来回游走移动,它走过的轨迹就形成了绘制的图形,这里的小“海龟”就是我们的画笔。

二、设置画笔属性

在海龟绘图中,可以通过设置画笔属性,控制线条的粗细、颜色、运动的速度等等。

1、设置画笔形状

默认的画笔形状为箭头,我们可以使用shape()修改画笔形状。

shape()方法的语法如下:

shape(self, name)

参数name用于指定形状名,如没有指定形状名,则返回当前的形状名。

常用的形状名有: arrow(向右的等腰三角形)、turtle(海龟)、circle(实心圆)、square(实心正方形)、triangle(向右的正三角形) 、classic(箭头)等 6 种,如下图所示:


例如,将当前的画笔形状设置为海龟形状,代码如下:

turtle.shape("circle")

程序运行结果如下:



2、设置画笔颜色

在海龟绘图中,画笔的默认颜色为黑色,我们可以使用 pencolor() 或者 color()修改画笔的颜色。

1)pencolor() 方法

pencolor() 方法可以修改画笔线条的颜色,同时画笔形状外圈也会添加一圈指定的颜色,但是内部还是默认的黑色。

pencolor() 方法的语法如下:

pencolor(self, *args)

参数args可以是一个英文颜色名,也可以是三个取值范围在 0~1 之间的小数值 (如 1.0,0.5,0.5,分别代表 r,g,b 的值),或者是三个取值范围在 0~255之间的整数值 (如192,255,128,分别代表 r,g,b 的值)。

关于颜色参数的具体取值说明:

turtle库中采用了计算机最常见的RGB色彩体系,取值范围可以是0-255的整数,也可以是0-1的小数。turtle库默认采用RGB的小数值来表示颜色.

函数turtle.colormode(mode)可以切换RGB数值模式。当mode为1.0时表示采用小数值来表现RGB,当mode为255时表示采用整数值来表现RGB。

常用颜色的RGB:

英文名称

RGB整数值

RGB小数值

中文名称

white

255,255,255

1,1,1

白色

yellow

255,255,0

1,1,0

黄色

red

255,0,0

1,0,0

纯红色

magenta

255,0,255

1,0,1

洋红

cyan

0,255,255

0,1,1

青色

blue

0,0,255

0,0,1

蓝色

black

0,0,0

0,0,0

黑色

purple

160,32,240

0.63,0.13,0.94

紫色

例如,使用pencolor() 方法的三种参数值,设置画笔颜色为红色,并且让海龟向前移动100像素,代码如下:

pencolor("red") #设置画笔颜色,参数为英文颜色名

forward(100) # 让海龟向前移动100像素

pencolor(1,0,0) #设置画笔颜色,参数为小数值

forward(100) # 让海龟向前移动100像素

colormode(255) # 调整颜色模式为整数型

pencolor(255, 0, 0) #设置画笔颜色,参数为整数值

forward(100) # 让海龟向前移动100像素

程序运行结果如下:



2)color() 方法:

color() 方法也可以修改画笔线条的颜色,而且整个画笔的形状也将修改为所设置的颜色。

color() 方法的语法如下:

color(self, *args)

args 参数值设置与 pencolor() 方法完全相同,

另外:color() 方法也可以设置两种颜色,分别用于指定轮廓颜色和填充颜色。

例如,使用 color() 方法设置画笔颜色为红色,填充颜色为黄色,并且让海龟向前移动 100 像素,代码如下:

color("red", "yellow")

程序运行结果如下:


3、设置画笔粗细

在海龟绘图中,默认的线条粗细为1像素。如果想改变线条粗细,可以通过方法pensize(width) 或者方法width(width)实现:

其中,参数width 为可选,如果不指定,则获取当前画笔的粗细,否则使用设置的值改变画笔的粗细。

例如,将画笔的粗细设置5像素,再修改为1像素。

代码如下:

pensize(5) # 设置画笔粗细

forward(100) # 让海龟向前移动100像素

width(1) # 设置画笔粗细

forward(100) # 让海龟向前移动100像素

程序运行效果如下图所示:



4、 设置画笔的速度

在海龟绘图时,画笔速度的快慢可以通过 speed() 方法进行调整。

speed() 方法的语法如下:

speed(self, s):

其中,参数 s取值范围为 0~10 之间的整数或速度字符串。

其中,0表示最快,1表示最慢,然后逐渐加快。如果缺省,则使用当前的画笔速度。

速度字符串有 fastest (最快)、fast (快)、normal (正常)、slow (慢)、slowest (最慢)。

例如,将画笔的速度设置为最快,

代码如下:

turtle.speed(0) # 设置画笔的速度,0为最快

将画笔的速度设置为正常,

代码如下:

turtle.speed(6) # 设置画笔的速度,6为正常

5、 隐藏与显示画笔

海龟绘图提供了以下隐藏或显示海龟光标的方法,在默认情况下采用海龟绘图时,会显示画笔光标。

showturtle() 或者 st() 方法:用于显示海龟光标。

hideturtle() 或者 ht() 方法:用于隐藏海龟光标。

例如,在默认情况下,让海龟向前爬行 100 像素,再隐藏海龟光标,并且让海龟向下爬行 100 像素,代码如下:

import turtle # 导入海龟绘图模块

turtle.shape("turtle") # 改变海龟光标的形状为海龟

turtle.forward(100) # 向前爬行100像素

turtle.hideturtle() # 隐藏海龟光标

turtle.forward(100) # 向下爬行100像素

程序运行效果如下图所示:

相关推荐

python创建文件夹,轻松搞定,喝咖啡去了

最近经常在录视频课程,一个课程下面往往有许多小课,需要分多个文件夹来放视频、PPT和案例,这下可好了,一个一个手工创建,手酸了都做不完。别急,来段PYTHON代码,轻松搞定,喝咖啡去了!import...

如何编写第一个Python程序_pycharm写第一个python程序

一、第一个python程序[掌握]python:python解释器,将python代码解释成计算机认识的语言pycharm:IDE(集成开发环境),写代码的一个软件,集成了写代码,...

Python文件怎么打包为exe程序?_python3.8打包成exe文件

PyInstaller是一个Python应用程序打包工具,它可以将Python程序打包为单个独立可执行文件。要使用PyInstaller打包Python程序,需要在命令行中使用py...

官方的Python环境_python环境版本

Python是一种解释型编程开发语言,根据Python语法编写出来的程序,需要经过Python解释器来进行执行。打开Python官网(https://www.python.org),找到下载页面,选择...

[编程基础] Python配置文件读取库ConfigParser总结

PythonConfigParser教程显示了如何使用ConfigParser在Python中使用配置文件。文章目录1介绍1.1PythonConfigParser读取文件1.2Python...

Python打包exe软件,用这个库真的很容易

初学Python的人会觉得开发一个exe软件非常复杂,其实不然,从.py到.exe文件的过程很简单。你甚至可以在一天之内用Python开发一个能正常运行的exe软件,因为Python有专门exe打包库...

2025 PyInstaller 打包说明(中文指南),python 打包成exe 都在这里

点赞标记,明天就能用上这几个技巧!linux运维、shell、python、网络爬虫、数据采集等定定做,请私信。。。PyInstaller打包说明(中文指南)下面按准备→基本使用→常用...

Python自动化办公应用学习笔记40—文件路径2

4.特殊路径操作用户主目录·获取当前用户的主目录路径非常常用:frompathlibimportPathhome_dir=Path.home()#返回当前用户主目录的Path对象...

Python内置tempfile模块: 生成临时文件和目录详解

1.引言在Python开发中,临时文件和目录的创建和管理是一个常见的需求。Python提供了内置模块tempfile,用于生成临时文件和目录。本文将详细介绍tempfile模块的使用方法、原理及相关...

python代码实现读取文件并生成韦恩图

00、背景今天战略解码,有同学用韦恩图展示各个产品线的占比,效果不错。韦恩图(Venndiagram),是在集合论数学分支中,在不太严格的意义下用以表示集合的一种图解。它们用于展示在不同的事物群组之...

Python技术解放双手,一键搞定海量文件重命名,一周工作量秒搞定

摘要:想象一下,周五傍晚,办公室的同事们纷纷准备享受周末,而你,面对着堆积如山的文件,需要将它们的文件名从美国日期格式改为欧洲日期格式,这似乎注定了你将与加班为伍。但别担心,Python自动化办公来...

Python路径操作的一些基础方法_python路径文件

带你走进@机器人时代Discover点击上面蓝色文字,关注我们Python自动化操作文件避开不了路径操作方法,今天我们来学习一下路径操作的一些基础。Pathlib库模块提供的路径操作包括路径的...

Python爬取下载m3u8加密视频,原来这么简单

1.前言爬取视频的时候发现,现在的视频都是经过加密(m3u8),不再是mp4或者avi链接直接在网页显示,都是经过加密形成ts文件分段进行播放。今天就教大家如果通过python爬取下载m3u8加密视频...

探秘 shutil:Python 高级文件操作的得力助手

在Python的标准库中,shutil模块犹如一位技艺精湛的工匠,为我们处理文件和目录提供了一系列高级操作功能。无论是文件的复制、移动、删除,还是归档与解压缩,shutil都能以简洁高效的方式完成...

怎么把 Python + Flet 开发的程序,打包为 exe ?这个方法很简单!

前面用Python+Flet开发的“我的计算器v3”,怎么打包为exe文件呢?这样才能分发给他人,直接“双击”运行使用啊!今天我给大家分享一个简单的、可用的,把Flet开发的程序打包为...