APP下载

基于Python语言的Turtle库绘图实例

2023-05-30林晓芬

电脑知识与技术 2023年3期
关键词:画圆画布画笔

林晓芬

关键词:Python语言;turtle库

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2023)03-0097-02

Python语言语法简洁、清晰,是一门适合非计算机专业大学生学习的编程语言。Python有着十分强大的类库,其中的Turtle库能绘制简单且有规律的图形。在讲解Turtle库的知识前,应先介绍Python语言的顺序结构、选择结构和循环结构和列表等基本知识。这样既有利于学生轻松地掌握代码的编写方法,又让学生更好地理解Pyhon语言的语法结构。

Turtle库是Python的标准库之一,属于入门级的图形绘制函数库。标准库是随解释器直接安装到操作系统中的功能模块,第三方库是需要经过安装才能使用的功能模块。Turtle的中文意思是海龟,turtle模块通过控制画笔的移动来绘图,画笔就像是一只海龟在画布上爬,爬过的地方留下了痕迹,痕迹形成了图形。海龟可以前进、后退、左转、右转。海龟有一条尾巴,当尾巴抬起时,爬过的地方不留下痕迹,尾巴放下时,爬过的地方留下痕迹[1-3]。

为提高学生的学习兴趣,教学时笔者选取了一些绘图案例,有正n边形、太阳花、彩色螺旋线、奥运五环等[4-5]。这些图案的代码十分简单,很适合初学者的学习。学生在学习这些绘图代码时,用到了Python語言中的循环语句、列表、索引等知识,让学生在绘图的时候加深了Python语法结构的理解和运用能力。

1 编程基础知识

1.1 Python 程序的语句结构

计算机程序一般有三种语句结构:顺序结构、选择结构以及循环结构,利用这三种结构,可以编写出各种复杂的应用程序。

顺序结构是程序中最基本的结构,它是任何程序的主体结构,在该结构中,各语句按照出现的先后次序依次执行。当需要根据给定的条件做出不同选择时,可以使用选择结构来处理。在Python中,选择结构有单分支结构、双分支结构和多分支结构,分别用if语句、if...else...语句和if...elif...else...语句来实现。循环语句用来重复执行一条或多条语句,使用循环结构可以减少源程序重复书写的工作量,简化程序结构。在Python中,循环结构语句主要有while语句和for循环语句。本绘图实例中,笔者使用的是for循环语句。

1.2 Turtle 库的导入

Turtle 的导入可以使用from turtle import * 或者import turtle 两种语句,前者在使用方法时不需要加turtle前缀,后者在使用方法时需要加上turtle.前缀,例如,向前语句turtle.forward(x)。

1.3 Turtle 库的基本函数

Turtle库中函数较少且容易记忆,且许多函数的名字与海龟动作名称的自然语言一致,便于学生记忆。如:screensize(x,y,color),设置宽x、高y、颜色为color的画布;setup(x,y),设置宽x,高y的画布;forward(x),画笔向前移动x像素;backward(x),画笔向后移动x像素;left(x),画笔方向向左旋转x角度;right(x),画笔方向向右旋转x角度;shape(x),设置绘图时的造型,默认为小箭头;pensize(x),设置画笔的粗细;width(x),设置画笔的粗细;pencolor(x),设置画笔的颜色;color(x,y),设置画笔的颜色为x,设置填充的颜色为y;fillcolor(x),设置图形的填充颜色;speed(x),设置画笔移动的速度,取值在0-10之间,1最慢,10最快,0不移动;penup(),画笔抬起;pen?down(),画笔落下;goto(x,y),画笔移动到x,y处,画布中心为坐标原点;circle(R,E,S),画圆,R为圆的半径,E是圆弧的角度。R半径为正时在画笔的左边画圆,半径为负值时在画笔的右边画圆;reset(),清空窗口,画笔重新回到画布中央;clear(),清空窗口,但是画笔的位置和状态不会改变;begin_fill(),准备开始填充图形;end_fill(),填充完成;write(),书写;done(),海龟绘图结束标识,防止脚本结束后关闭画布。

Python语言中的颜色非常丰富,常见的表示颜色的字符串有:“while”白色、“black”黑色、“green”绿色、“blue”蓝色、“yellow”黄色、“cyan”青色、“magenta”洋红色、“purple”紫色、“brown”棕色、“pink”粉色、“gold”金色、“tomato”番茄色等。

1.4 Turtle 坐标系

Turtle的坐标系有屏幕坐标系、空间坐标系和角度坐标系等。屏幕坐标系指的是画布与屏幕之间的相对位置关系,显示器屏幕的左上角为坐标原点,如图1所示。可以用setup(width,height,startx,starty) 方法设置画布左上角与屏幕左上角之间的距离。空间坐标系是指画笔与画布之间的相对位置关系,默认坐标原点在画布的正中心,绘图时,画笔从画布的中心位置开始移动,画笔的方向默认是x轴的正方向,如图2所示。角度坐标系如图3所示,x轴的正方向为0度,y轴的正方向为90度,可以通过setheading(angle) 方法来设置画笔的方向。

2 绘图实例

笔者安装的Python版本是Python -3.8.1(64-bit) 。

2.1 绘制彩色六边形

图4中的彩色六边形实际上是由6个正三角形组成的。利用circle()方法中的steps参数来画三角形,利用color() 方法设置画笔颜色和填充颜色,利用列表colors和for循环语句来实现颜色的变化。程序设计结构是计算机语言教学中的重点和难点,结构化的程序设计有三种基本的结构:顺序结构、选择结构和循环结构。在这个教学案例中,通过绘制正六边形,引导学生深入地理解循环结构。

图5中的图形是由六个三角形和一个正六边形构成的。代码段中,首先定义了一个函数triangle,这个函数的作用是画正三角形。然后创建了一个列表colors,列表用来放颜色。然后用for循环画正六边形,循环六次,每循环一次的时候调用一次triangle函数,最终得到图5的图形。在这个教学案例中,通过绘图实例,引导学生理解循环的嵌套是如何实现图形的绘制。

2.2 绘制彩虹

图6中的彩虹是通过一个for循环语句和列表col?ors实现的。先创建一个列表colors来放颜色,然后设置画笔的宽度,因为是画彩虹,所以画笔宽度要设得比较宽。然后用circle() 方法来画半圆,每循环一次,circle()中的半径就要增大一次,画笔的颜色也要不断改变,这些是通过循环语句来实现的。setheading()方法用来设置画笔的方向。每次画笔的起点都不一样,这是通过goto()方法来实现的,但每一次画笔的起始方向都是一样的。

2.3 绘制箭靶

图7和图8是实现彩色圆环的两种方法。图7中所采用的方法,是从最外圈开始画圆,然后逐渐缩小画圆所用的半径值。图8中所采用的方法,是从最里圈开始画圆,然后逐渐增大画圆所用的半径值。

这两种方法都使用了for 循环语句和circle() 方法。画图时,要注意画笔的初始位置和画笔的方向,才能画出想要的图形。

3 结论

Turtle库是一个简单易学的绘图库,学习门槛低,绘图函数易学易记。在计算机程序设计教学中,改变以往把解决数学问题作为编程例题的做法,把图形绘制带入程序设计教学中。教学实践表明,通过各种有趣、生动鲜明、贴合生活实际的绘图实例,可以激发学生学习Python语言的兴趣,增强学生学习编程的信心[6],Turtle库可以作为学习Python语言的入门库。

猜你喜欢

画圆画布画笔
圆的启示
“画圆法”在力学解题中的应用
画圆的月亮
小画笔
小画笔
为什么要在画布上割一刀?
让鲜花在画布上盛开
神奇的画笔
连线·画圆·揉团——浅谈人教版小学语文教材《语文园地》的有效教学
大师的画布