有趣的Python turtle绘图
- 格式:doc
- 大小:583.00 KB
- 文档页数:8
pythonturtle画山代码Python Turtle画山代码Python Turtle是一个非常有趣的模块,它允许我们使用简单的命令来控制一个小乌龟在屏幕上移动,并且可以绘制出各种形状。
在这篇文章中,我们将学习如何使用Python Turtle模块来画一座美丽的山。
1. 准备工作首先,我们需要安装Python和Turtle模块。
如果你已经安装了Python,那么可以在命令行窗口中输入以下命令来安装Turtle模块:```pip install turtle```2. 创建画布接下来,我们需要创建一个画布,在画布上绘制出我们的山。
可以使用以下代码来创建一个大小为800x600像素的画布:```pythonimport turtle# 创建一个名为“screen”的窗口screen = turtle.Screen()# 设置窗口大小为800x600像素screen.setup(800, 600)# 设置窗口背景颜色为深蓝色screen.bgcolor("#003366")```3. 绘制山体现在,让我们开始绘制山体。
我们将使用Turtle模块提供的pencolor()、fillcolor()、begin_fill()和end_fill()函数来设置线条颜色、填充颜色以及开始和结束填充。
```pythonimport turtle# 创建一个名为“screen”的窗口screen = turtle.Screen()# 设置窗口大小为800x600像素screen.setup(800, 600)# 设置窗口背景颜色为深蓝色screen.bgcolor("#003366")# 创建一个名为“pen”的Turtle对象pen = turtle.Turtle()# 设置笔的颜色和填充颜色pen.pencolor("#FFFFFF")pen.fillcolor("#CCCCCC")# 开始填充pen.begin_fill()# 绘制三角形山体pen.forward(200)pen.left(120)pen.forward(200)pen.left(120)pen.forward(200)# 结束填充pen.end_fill()```4. 添加山顶和山脚现在,我们已经绘制出了一个三角形的山体,但是它看起来有些单调。
使用Turtle绘制一个正方形。
创建一个绘制五角星的函数。
使用循环绘制一个彩虹。
编写一个程序,绘制一个迷宫并寻找路径。
创建一个绘制螺旋线的函数。
使用Turtle绘制一个太阳花。
编写一个交互式程序,允许用户控制Turtle的移动。
使用Turtle绘制一个风车。
创建一个模拟时钟的程序,让指针走动。
编写一个绘制随机图案的函数。
创造一个绘制立体感的图案。
绘制一个具有渐变颜色的圆形。
编写一个生成分形树的函数。
制作一个能绘制螺线的交互界面。
绘制一个抽象艺术作品。
创建一个Turtle画板,允许用户绘制自由图形。
制作一个Turtle追逐游戏,让Turtle追赶鼠标光标。
创造一个绘制多边形的函数,支持不同边数和大小。
编写一个Turtle画板,可以记录用户绘制的路径,然后重新绘制。
绘制一个渐变色的心形。
创建一个能绘制动画的Turtle程序。
绘制一个螺旋状的曲线。
制作一个Turtle版本的植物大战僵尸小游戏。
绘制一个有规律的图案,如棋盘或蜂窝。
编写一个程序,在窗口内随机生成一些Turtle,让它们漫游。
绘制一个类似万花筒效果的图案。
制作一个Turtle版本的井字棋游戏。
绘制一个抽象的城市风景。
创建一个Turtle绘制花纹的艺术工具。
绘制一个立体的魔方。
制作一个Turtle版本的弹球小游戏。
编写一个可以绘制旋转图案的函数。
绘制一个变化颜色的正弦曲线。
创建一个Turtle模拟火焰的效果。
绘制一个Turtle版本的扫雷游戏。
编写一个程序,让Turtle在屏幕上显示文字信息。
制作一个能在画布上绘制轨迹的Turtle程序。
绘制一个蝴蝶状的图案。
创建一个Turtle模拟水波纹的效果。
绘制一个多层次的星星图案。
编写一个程序,绘制一个Turtle赛车游戏。
制作一个能画出分形图案的Turtle工具。
绘制一个抽象的宇宙星空。
创建一个Turtle模拟钟摆的摆动。
编写一个Turtle版本的弹幕屏保。
绘制一个环绕的螺旋图案。
制作一个Turtle模拟雨滴的效果。
turtle的简单绘图接触python,就发现python是⼀门很有趣的课程。
往往只需要利⽤⼏⾏简单的代码,就能绘制出简单漂亮的图案。
毫不夸张的说,掌握好turtle库,就能绘制⼀整⽚蓝图。
有时候,当我们遇到⼀些对称图形的时候,利⽤ for in 循环语句,也能达到很好的效果。
我们先了解⼀些关于turtle库的基本函数。
turtle库的基本函数:⼀、绘图窗⼝设置命令①turtle.setup(width,height,starty,starty) 注:(starty,starty)指的是绘图窗体左上⾓位置的坐标,这两个参数可选,若为空,则窗⼝位于屏幕中⼼turtle.setup(100,100)turtle.setup800, 800, 100,100)②turtle.screensize(canvwidth=None, canvheight=None, bg=None) 参数分别为画布的宽(单位像素), ⾼, 背景颜⾊注:若括号为空,则默认值为(400,300)turtle.screensize(400, 300, "red")⼆、坐标体系(1)空间坐标体系①turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗⼝中⼼为原点,向右为x轴,向上为y轴。
②turtle.fd(d)、turtle.forward(d):以当前⽅向,往前⾏进d像素。
③turtle.bk(d)、turtle.backword(d):保持当前⽅向不变,往后退⾏d像素。
④turtle.circle(r,angle):从当前位置以r为半径圆的angle⾓度旋转。
(2)⾓度坐标体系①turtle.setheading(angle)也可简写为turtle.seth() 表⽰海龟改变⾏进⾓度,但不运动。
绘图窗体以x轴为起点,将⽅向偏转为angle度,逆时针为正。
②turtle.left(angle):在当前⾏进⽅向的基础上,向左旋转angle度。
python海龟画图知识点总结一、海龟绘图简介海龟绘图是Python语言中的一个标准库,它提供了一个简单的图形绘制功能。
这个模块的灵感来源于小孩子玩耍时的画画游戏,通过调用不同的函数来控制海龟的行为,我们可以在画布上绘制出各种各样的图案和图形。
海龟绘图是一个很好的初学者入门编程的工具,因为它的操作简单直观,而且很容易理解。
二、海龟模块的基本功能在Python中使用海龟绘图,首先我们需要导入turtle这个模块:```pythonimport turtle```接着我们创建一个海龟对象,我们可以给海龟对象取一个名字,比如叫做“t”:```pythont = turtle.Turtle()```接下来,我们就可以开始控制海龟来绘制图形了。
海龟绘图主要通过控制海龟对象的移动和转向来完成,下面是一些常用的海龟操作方法:- 前进:t.forward(distance),表示海龟向当前方向前进一定距离。
- 后退:t.backward(distance),表示海龟向当前方向后退一定距离。
- 左转:t.left(angle),表示海龟向左转动一定角度。
- 右转:t.right(angle),表示海龟向右转动一定角度。
- 提起笔:t.penup(),表示海龟抬起笔,不在绘制图形。
- 落下笔:t.pendown(),表示海龟落下笔,开始绘制图形。
- 设置颜色:t.color(color),表示设置海龟的颜色。
通过组合这些操作方法,我们就可以控制海龟画出各种各样的图案。
下面我们来看几个简单的例子,来演示一下海龟绘图的具体操作。
```pythonimport turtlet = turtle.Turtle()t.forward(100)t.left(90)t.forward(100)t.left(90)t.forward(100)t.left(90)t.forward(100)t.left(90)```这段代码就是使用海龟绘制了一个正方形。
python中import turtle的用法Python是一种简单而强大的编程语言,是许多初学者和专业开发人员的首选语言之一。
Python的强大之处在于它具有许多内置库和模块,通过调用这些库和模块可以轻松实现各种功能。
在Python中,有一个非常有趣和有用的库叫做turtle。
turtle库是一个Python绘图工具,它提供了一个简单而直观的方式来绘制图形。
通过使用turtle库,我们可以轻松地创建各种图形,包括线条、圆形、多边形等等。
在本文中,我将一步一步地向您介绍如何在Python中使用turtle库。
首先,我们需要导入turtle库。
要做到这一点,我们可以使用import语句,如下所示:import turtle导入turtle后,我们可以创建一个turtle对象来进行绘图。
我们可以使用以下代码创建一个名为"my_turtle"的turtle对象:my_turtle = turtle.Turtle()创建一个turtle对象之后,我们可以使用该对象的方法来绘制图形。
下面是一些常用的绘图方法和它们的作用:- forward(distance):向前移动一定距离,距离由distance参数指定。
- backward(distance):向后移动一定距离,距离由distance参数指定。
- right(angle):向右旋转一定角度,角度由angle参数指定。
- left(angle):向左旋转一定角度,角度由angle参数指定。
- pendown():将画笔放下,开始绘制。
- penup():将画笔抬起,停止绘制。
- speed(speed):设置绘图速度,速度范围为1-10。
下面是一个简单的例子,展示如何使用turtle绘制一个正方形:pythonimport turtlemy_turtle = turtle.Turtle()for i in range(4):my_turtle.forward(100)my_turtle.right(90)在上面的代码中,我们首先导入了turtle库。
turtle库高级用法Turtle是一个Python的图形化库,提供了一个绘制图形的环境。
它可以帮助我们绘制出各种各样的图形,包括线条、矩形、圆形等等。
Turtle库非常适合用于教学和学习编程的初学者,因为它简单易懂,操作起来也非常方便。
然而,除了基本的绘图功能外,Turtle还有一些高级用法,本文将会介绍这些高级用法,并且给出相应的示例代码。
# 1. Turtle画笔属性Turtle模块中的笔是一个可以改变形状和颜色的图形,可以用来绘制线条和填充图形。
下面是一些常用的画笔属性:## 1.1 笔形状Turtle的默认形状是箭头,但是你也可以将其改变为其他形状。
Turtle模块中提供了一些默认的形状,如"arrow"、"turtle"、"circle"、"square"等等。
同时,你也可以自定义特定形状的图片,然后使用Turtle.register\_shape()方法来注册该图片。
```pythonimport turtle# 修改画笔形状turtle.shape("turtle") # 将画笔形状修改为"turtle"# 注册自定义形状turtle.register_shape("my_shape.gif") # 注册名为"my_shape.gif"的自定义形状turtle.shape("my_shape.gif") # 将画笔形状修改为自定义形状```## 1.2 笔颜色Turtle可以绘制出多种颜色的图形,包括常见的红色、绿色、蓝色等等。
```pythonimport turtle# 绘制红色线条turtle.color("red")turtle.forward(100)# 绘制蓝色线条turtle.color("blue")turtle.forward(100)```## 1.3 笔粗细你可以通过改变画笔的粗细来控制绘制线条的宽度。
PythonTurtle绘画初学编程——六芒星,浪形圈⽼师上课说可以⾃学⼀下python中的绘图turtle,就⾃⼰初步学习了⼀下,做了两个简单的绘图——六芒星和浪形圈(其实我也不知道该叫它什么,就照样⼦编了个词 )。
六芒星的代码:1import turtle #引⼊⼀个绘图库2import math #因为后⾯⽤到了根号,所以引⼊了math库3 turtle.setup(650,350,200,200) #确定画布的⼤⼩和位置4 turtle.penup() #提起画笔5 turtle.pendown() #放下画笔6 turtle.pensize(7) #设置画笔的粗细7 turtle.pencolor("gold") #设置画笔颜⾊8 turtle.fillcolor('#33cc8c') #设置填充颜⾊9 turtle.seth(30) #设置画笔绘制⽅向,参数值为直⾓坐标的⾓度10 turtle.begin_fill() #准备开始填充图形11 turtle.fd(200) #向指定⽅向直⾏12 turtle.seth(-90) #改变画笔绘制⽅向13 turtle.fd(200)14 turtle.seth(150)15 turtle.fd(200)16 turtle.seth(270)17 turtle.circle(math.sqrt(3)*200/3,420) #画圆,前⼀个参数是圆的半径,后⼀个参数是要画的⾓度18 turtle.seth(90)19 turtle.fd(200)20 turtle.seth(-30)21 turtle.fd(200)22 turtle.seth(210)23 turtle.fd(200)24 turtle.end_fill() #结束填充颜⾊25 turtle.done() #停⽌画笔绘制,使绘画窗⼝不关闭运⾏出来的结果是:其中 turtle.penup() 的作⽤是抬起画笔,如果要变换绘笔的绘图位置就要先抬起画笔,此时移动画笔不绘制图形;turtle.pendown()的作⽤是放下画笔,此时则可以绘制图形。
python的turtle语句Python的turtle模块是一个绘图工具,它允许用户使用简单的命令来绘制图形。
下面是一些常用的turtle语句:1. 导入turtle模块:python.import turtle.2. 创建一个画布和画笔对象:python.t = turtle.Turtle()。
3. 移动画笔:python.t.forward(100) # 向前移动100个像素。
t.backward(50) # 向后移动50个像素。
t.right(90) # 向右旋转90度。
t.left(45) # 向左旋转45度。
4. 改变画笔的状态:python.t.penup() # 抬起画笔,移动时不绘制。
t.pendown() # 放下画笔,移动时绘制。
5. 改变画笔的属性:python.t.pensize(2) # 设置画笔宽度为2个像素。
t.pencolor("red") # 设置画笔颜色为红色。
6. 绘制图形:python.t.circle(50) # 绘制半径为50的圆。
t.dot(20, "blue") # 绘制一个蓝色的直径为20像素的圆点。
t.begin_fill() # 开始填充。
t.fillcolor("yellow") # 设置填充颜色为黄色。
t.circle(100) # 绘制半径为100的圆并填充。
t.end_fill() # 结束填充。
7. 控制画笔的显示和隐藏:python.t.hideturtle() # 隐藏画笔。
t.showturtle() # 显示画笔。
以上是一些常用的turtle语句,可以让你通过Python的turtle模块来绘制各种图形。
希望这些例子能够帮助你更好地理解如何使用turtle模块。
python turtle案例PythonTurtle是一个非常有趣的绘图工具,它可以帮助我们用编程的方式在屏幕上绘制各种各样的图形。
下面介绍几个Python Turtle的案例,希望大家能够从中体验到编程的乐趣。
1. 绘制五角星五角星是一个比较特殊的图形,可以通过Python Turtle来实现。
代码如下:```import turtlet = turtle.Turtle()def draw_star(size, color):t.color(color)t.begin_fill()for i in range(5):t.forward(size)t.right(144)t.forward(size)t.left(72)t.end_fill()draw_star(100, 'yellow')```运行上面的代码,就可以在屏幕上看到一个黄色的五角星。
2. 绘制螺旋线螺旋线是一种比较有趣的图形,可以用Python Turtle来实现。
代码如下:```import turtlet = turtle.Turtle()def draw_spiral(size, angle, shift):total = 0while total < 500:t.forward(size)t.right(angle)size += shifttotal += 1draw_spiral(5, 90, 1)```运行上面的代码,就可以在屏幕上看到一个螺旋线。
3. 绘制彩色螺旋线如果想要让螺旋线更加有趣,可以尝试添加一些颜色。
代码如下: ```import turtlet = turtle.Turtle()colors = ['red', 'orange', 'yellow', 'green', 'blue','purple']def draw_spiral(size, angle, shift):total = 0while total < 500:t.color(colors[total%6])t.forward(size)t.right(angle)size += shifttotal += 1draw_spiral(5, 90, 1)```运行上面的代码,就可以在屏幕上看到一个彩色的螺旋线。
使⽤python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例今天为⼤家介绍⼏个Python“装逼”实例代码,python绘制樱花、玫瑰、圣诞树代码实例,主要使⽤了turtle库Python绘制樱花代码实例动态⽣成樱花效果图(这个是动态的):实现代码import turtle as Timport randomimport time# 画樱花的躯⼲(60,t)def Tree(branch, t):time.sleep(0.0005)if branch > 3:if 8 <= branch <= 12:if random.randint(0, 2) == 0:t.color('snow') # ⽩else:t.color('lightcoral') # 淡珊瑚⾊t.pensize(branch / 3)elif branch < 8:if random.randint(0, 1) == 0:t.color('snow')else:t.color('lightcoral') # 淡珊瑚⾊t.pensize(branch / 2)else:t.color('sienna') # 赭(zhě)⾊t.pensize(branch / 10) # 6t.forward(branch)a = 1.5 * random.random()t.right(20 * a)b = 1.5 * random.random()Tree(branch - 10 * b, t)t.left(40 * a)Tree(branch - 10 * b, t)t.right(20 * a)t.up()t.backward(branch)t.down()# 掉落的花瓣def Petal(m, t):for i in range(m):a = 200 - 400 * random.random()b = 10 - 20 * random.random()t.up()t.forward(b)t.left(90)t.forward(a)t.down()t.color('lightcoral') # 淡珊瑚⾊t.circle(1)t.up()t.backward(a)t.right(90)t.backward(b)# 绘图区域t = T.Turtle()# 画布⼤⼩w = T.Screen()t.hideturtle() # 隐藏画笔t.getscreen().tracer(5, 0)w.screensize(bg='wheat') # wheat⼩麦t.left(90)t.up()t.backward(150)t.down()t.color('sienna')# 画樱花的躯⼲Tree(60, t)# 掉落的花瓣Petal(200, t)w.exitonclick()飘落效果效果图:代码:from turtle import *from random import *from math import *def tree(n,l):pd()#下笔#阴影效果t = cos(radians(heading()+45))/8+0.25pencolor(t,t,t)pensize(n/3)forward(l)#画树枝if n>0:b = random()*15+10 #右分⽀偏转⾓度c = random()*15+10 #左分⽀偏转⾓度d = l*(random()*0.25+0.7) #下⼀个分⽀的长度#右转⼀定⾓度,画右分⽀right(b)tree(n-1,d)#左转⼀定⾓度,画左分⽀left(b+c)tree(n-1,d)#转回来right(c)else:#画叶⼦right(90)n=cos(radians(heading()-45))/4+0.5pencolor(n,n*0.8,n*0.8)circle(3)left(90)#添加0.3倍的飘落叶⼦if(random()>0.7):pu()#飘落t = heading()an = -40 +random()*40setheading(an)dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2) forward(dis)setheading(t)#画叶⼦pd()right(90)n = cos(radians(heading()-45))/4+0.5pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)circle(2)left(90)pu()#返回t=heading()setheading(an)backward(dis)setheading(t)pu()backward(l)#退回bgcolor(0.5,0.5,0.5)#背景⾊ht()#隐藏turtlespeed(0)#速度 1-10渐进,0 最快tracer(0,0)pu()#抬笔left(90)#左转90度pu()#抬笔backward(300)#后退300tree(12,100)#递归7层done()暗⾊效果效果:代码from turtle import *from random import *from math import *def tree(n, l):pd()t = cos(radians(heading() + 45)) / 8 + 0.25pencolor(t, t, t)pensize(n / 4)forward(l)if n > 0:b = random() * 15 + 10c = random() * 15 + 10d = l * (random() * 0.35 + 0.6)right(b)tree(n - 1, d)left(b + c)tree(n - 1, d)right(c)else:right(90)n = cos(radians(heading() - 45)) / 4 + 0.5pencolor(n, n, n)circle(2)left(90)pu()backward(l)bgcolor(0.5, 0.5, 0.5)ht()speed(0)tracer(0, 0)left(90)pu()backward(300)tree(13, 100)done()Python绘制玫瑰花代码实例效果(有绘制过程)代码from turtle import *import timesetup(1000,800,0,0)speed(0)penup()seth(90)fd(340)seth(0)pendown()speed(5)begin_fill()fillcolor('red')circle(50,30)for i in range(10):fd(1)left(10)circle(40,40)circle(80,40)for i in range(20): fd(0.5)left(5)circle(80,45)for i in range(10): fd(2)left(1)circle(80,25)for i in range(20): fd(1)left(4)circle(50,50) time.sleep(0.1) circle(120,55) speed(0)seth(-90)fd(70)right(150)fd(20)left(140)circle(140,90) left(30)circle(160,100) left(130)fd(25)penup()right(150) circle(40,80) pendown()left(115)fd(60)penup()left(180)fd(60) pendown()end_fill()right(120) circle(-50,50) circle(-20,90) speed(1)fd(75)speed(0)circle(90,110) penup()left(162)fd(185)left(170) pendown() circle(200,10) circle(100,40) circle(-52,115) left(20)circle(100,20) circle(300,20) speed(1)fd(250)penup()speed(0)left(180)fd(250)circle(-300,7) right(80)circle(200,5) pendown()left(60)begin_fill() fillcolor('green') circle(-80,100) right(90)fd(10)left(20)circle(-63,127)fd(20)left(180)pendown()circle(200,25)penup()right(150)fd(180)right(40)pendown()begin_fill()fillcolor('green')circle(-100,80)right(150)fd(10)left(60)circle(-80,98)end_fill()penup()left(60)fd(13)left(180)pendown()speed(1)circle(-200,23)exitonclick()Python绘制圣诞树代码实例圣诞树(动态⽣成效果)代码:from turtle import *import randomimport timen = 100.0speed("fastest")screensize(bg='seashell')left(90)forward(3*n)color("orange", "yellow")begin_fill()left(126)for i in range(5):forward(n/5)right(144)forward(n/5)left(72)end_fill()right(126)color("dark green")backward(n*4.8)def tree(d, s):if d <= 0: returnforward(s)tree(d-1, s*.8)right(120)tree(d-3, s*.5)right(120)tree(d-3, s*.5)right(120)backward(s)tree(15, n)backward(n/2)for i in range(200):a = 200 - 400 * random.random()b = 10 - 20 * random.random()up()forward(b)left(90)forward(a)if random.randint(0, 1) == 0:color('tomato')else:color('wheat')circle(2)up()backward(a)right(90)backward(b)time.sleep(60)本⽂主要介绍了Python使⽤turtle库绘制樱花、玫瑰、圣诞树代码实例,更多关于Python图像模块turtle库的使⽤⽅法请查看下⾯的相关链接。
有趣的Python turtle绘图作者:毛京宇魏云靖
来源:《中国科技教育》2019年第06期
Python turtle的发展
Python中的turtle模塊受启发于在欧美有着广泛基础且历史悠久的LOGO语言。
LOGO语言形式非常直接,通过一组简单的指令就可以指挥计算机在屏幕上绘制出或极具现代感或抽象复杂的图像。
正是因为LOGO教学的广泛开展,使得很多青少年不再将编程等同于geeks或nuts的专长,并对数学、逻辑和计算机等相关学科产生了浓厚的兴趣。
初代turtle模块随2001年12月21日发布的Python 2.2版本被添加到了Python标准库之中。
后经多个版本的调整逐渐稳定并形成当前版本中的功能和操作。
Python turtle是向LOGO语言的致敬,可以通过turtle .mode0函数予以调整,尽最大可能还原LOGO语言中小海龟操作的特点。
随着Python语言的流行和普及,一位名叫Ram Rachum的网络工程师重构了Python turtle 并单独封装形成了一款叫作PythonTurtle的教学软件,可以在Windows和Mac计算机上安装和运行。
Python海龟绘图课
在正式上课之前,请注意:
(1) Python是一种开放标准的通用开发语言,不少组织发行了各具特色的版本。
本文所载程序使用的Python编译器为CPython(官方社区发行版本)3.7.3。
当然,如果读者使用其他发行版就不能运行示例脚本。
当出现意外情况时,请您在检查时考虑版本因素。
(2)尽管现在互联网上有很多在线版本的Python运行环境(无论是Python官方社区的Interactive Shell,又或者各大厂家提供的在线Jupyter Notebook服务),并且turtle是Python标准库,但是由于无法加载并创建tkinter.Canvas画布的原因,所以在线平台无法让海龟畅游作画。
本文以偏概全仅对绝大多数常用turtle模块函数进行梳理,希望能对初学者有所引领。
学习Python晟好的平台当然还是官方社区提供的文档站点,读者可以访问https://docs.python. org/zh-cn/3/Library/turtle. html进行更为全面的学习。
让海龟畅游起来
挥毫创作当然要首先学会运笔。
Python Turtle的基础就是让海龟能够在画布中畅快遨游。
有了表1这些基础我们就可以绘图了。
怎么turtle画图一上来就让读者碰了钉子?也许你觉得海龟画图太过平淡,那我们就在上面程序的基础上加入for循环做点儿炫目的效果。
这里我有意识地使用了2个之前没有讲解过的turtle模块中的绘图函数,相信聪明的读者在阅读源代码的过程中一定能够理解其中深意。
“油漆桶”工具
一笔一笔“挥毫”虽然有趣,但如果需要大面积着色时还是“泼墨”画法更有效率。
表2中的一组turtle函数不但完成画笔“油漆桶”般的填充着色功能,而且还能设置和判断海龟绘图时的状态。
准备好了吗?这回我们加入了函数这种结构化程序设计的技术优化脚本,现在要验证所学的新知识了。
用Python turtle打太极,是不是很有趣?
互动绘图板
Python turtle除了能够完成基本的绘图任务之外,还可以在程序中添加键盘和鼠标交互函数,制作出具有互动功能的程序甚至小游戏。
下面是与交互有关的常用函数,让我们一起来学习一下吧。
有了表3这些函数的辅助,我们就可以制作一个绘图板程序。
在操作时,鼠标左键控制“画笔”在绘图板中运动,鼠标中键可以切换绘图时的颜色,鼠标右键控制图形填充及“画笔”在绘图板上的“落笔”“抬笔”操作。
总结
turtle绘图模块受LOGO语言启发而创建,能够有效激发初学者的学习热情并释放创意。
turtle绘图模块仅仅是Python不断发展壮大标准库中的其中一员,无论是浅尝辄止热衷于在计算机上挥毫泼墨,还是循序渐进探究前沿科技,都是一个非常具有潜力的终南捷径。
参考资料
Python turtle官方文档(https:///zh-cn/3/library/turtle.html)。