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

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

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

海龟绘图(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像素

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

相关推荐

辣评1+1|幽默的男人运气不会太差,犯了罪的除外

一波冷空气吹来了全国大范围降温,也吹来了“年轻人不讲武德”“耗子尾汁”等爆梗。凡事有别,凡事有度。“不讲武德”换来大家津津乐道,“不讲规则”却让大家头皮发麻,更别提有些人“不通人性”“不守法律”了……...

养龟之人,不可不常备的几种龟药,必要时,可救龟命

养龟的过程中,总会出现这样那样的问题,有些新人因为不懂龟的习性或者管理不到位,容易导致自己的爱龟出问题,如果处理不及时不妥当,容易造成不必要的损失,所以,养龟的过程中,家中常备一些龟药十分必要,建议养...

宠物龟越狱摔伤了,饲主该如何正确地处理它的伤口?

昨晚有一个龟友发信息向我求救,他家的宠物龟越狱了,从高高的地方摔下来,砸在水泥板上,臀甲部位摔裂了,问我怎么处理妥当?现在就跟大家分享分享我们的实战经验:如何正确地处理宠物龟的外伤!(此处已添加圈子卡...

PS入门系列三(ps入门级教程)

PS软件基础(三)一、钢笔工具1.精细的抠图,也可以绘制精细的直线段和曲线段2.使用方法:(1)绘制直线:鼠标点击,两个点形成一条直线,按住SHIFT可绘制角度(45°的倍数)的直线。...

第一千五百一十七天:20250721(星期一.阵雨)

天是真地热啊,更加怀念东北的凉爽。即使说有新闻东北迎来了史上最热的酷署,但我依旧坚定地认为没有湖北热,至少没有湖北的闷热。上午开了一上午的会,会议室里即使有空调但可能由于人和电脑太多了,制冷效果非常一...

格力、美的、先锋和艾美特油汀取暖器拆机测试PK

人在家中坐,寒从脚底来,刷抖音的时候手脚真的是冰凉到没办法。南方的冬天,我琢磨了一下,感觉它只会慢慢折磨咱们,而且咱们南方还没集中供暖。于是就上网看了看,发现这个电热油汀可以烤袜子,好像很有用的样子,...

《photoshop教程》设计师PSD文档管理指南

这是一个重要但是容易被忽视的领域,很多设计师没有文档管理和文档规范意识。认为只有代码工作者才需要什么编码规范和版本控制系统,Photoshop作为一个应用软件,讨论这个有什么意义呢?作为工程文件,一个...

为何要坚决抵制“马保国式黑红”(抵制违规吃喝表态发言)

作者:天歌“耗子尾汁(好自为之)”“年轻人不讲武德”“我大意了啊没有闪”……最近流行的几句网络用语,都出自于马保国。然而,原本承诺退出“江湖”的他却频繁出现在公众视线,自曝拍电影、走穴参加网红活动。...

车圈父与子 看谁跟高级别车型长得更像

[爱卡汽车导购原创]故事发生在美孚小学的5W-40班。这天语文课上,老师给同学们布置作业“今天给大家布置一篇作文,题目是《长大之后我就成了你》。回去认真观察自己的父母,找出自己容貌、性格、爱好等方...

月季难养吗?药罐子、肥篓子是什么意思?养好月季连载教程(三)

大家好,我是木木。今天给大家带来月季养护系列教程的第四节(月季种植难度),这是为了给还没有入坑的花友简单介绍一下月季的种植难度,希望大家对月季的养护有一个大概的了解,不要因为感觉难度太大而望而却步,也...

Linux文件操作高频使用命令(linux文件操作高频使用命令是什么)

0.新建操作:mkdirabc#新建一个文件夹touchabc.sh#新建一个文件1.查看操作查看目录:ll#显示目录文件详细信息du-h文件/目录#查看大小pwd#显示路径查...

PS生化危机2游戏:里昂.S.肯尼迪流程攻略(里关)

浣熊镇警察局的探索克莱尔带着莎瑞逃出了浣熊镇,与和她们一起的那位警官的活跃也是分不开的,他的名字是-里昂.S.肯尼迪和克莱尔分手后一直向前跑,进警局后门停车场,先去右边值班室拿钥匙,然后打开停车场左边...

PS版在印刷过程中易出现的问题(印刷厂ps版)

PS版的任务是使图文部分尽可能精确地传到橡皮布上。图文部分亲水,非图文部分亲墨。但实际上并没有这么理想,会出现各种各样的与PS版有关的问题。下面举出一些并加以讨论。  1.版面非图文部分起脏,即非图文...

夜读|为什么我们要围观马保国?(为什么会有马保国)

张丰“打工是不可能打工的”那位去做直播了,“年轻人不讲武德”的马保国要去拍电影了。他在微博上发了条视频,解释参演原因,但网友需付费成为“真爱粉”才能看。视频中,他还推销了拳法书籍。咦?我怎么觉得,马老...

40种CAD常见问题解决方法,从此不再求人

前言:CAD软件是我们经常用到的办公软件,但是我们在用CAD软件的时候经常遇到一些棘手的问题,不知道怎么解决?这40个问题解决方法,可以收藏备用!正文:1.【Ctrl键无效之解决办法】有时我们会碰到这...