任务9.1 绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 41页
| 453人阅读
| 119人下载
普通

内容正文:

任务9.1 绘图库turtle的应用 绘制奥运五环标志 python 9.1 绘图库turtle的应用——绘制奥运五环标志 【任务描述】 截止至2022年,奥林匹克运动会已经举办了32届,奥运会以“更快、更高、更强”的格言向人们传递不断进取、不畏艰险、敢攀高峰的拼搏精神。在每届奥林匹克运动会开幕时,运动场中间都要高高地悬挂一面奥林匹克旗帜,这面白色无边旗中间有5个圆环组成的图案。小T非常热爱体育运动,他打算用Python绘图工具turtle来绘制奥运五环标志,如图9-1所示,让我们跟随他一起来学习Python的第三方库——turtle库吧。 python 9.1 绘图库turtle的应用——绘制奥运五环标志 素养小课堂: 设计者:皮埃尔·德·顾拜旦 形态:由5个奥林匹克环套接组成,有蓝、黄、黑、绿、红5种颜色。环从左到右互相套接,上面是蓝、黑、红环,下面是是黄、绿环。 象征:五环——五大洲,白色——旗帜的底色,意指所有国家都毫无例外地能在自己的旗帜下参加比赛。” python 9.1 绘图库turtle的应用——绘制奥运五环标志 【任务分析】 (1)确定奥运五环各环的位置、厚度、颜色。 (2)将上面的蓝、黑、红环,下面的黄、绿环依次画出来。 (3)完成(2)后,下面的黄环和绿环完全覆盖在上面的蓝、黑、红环上,之后对环的交叉处进行适当修改,以达到环间互相套接效果。 python 9.1 绘图库turtle的应用——绘制奥运五环标志 任务解决: 画图库turtle的引入? 圆环如何绘制? 颜色如何设定? 环交叉点如何绘制? python 9.1 绘图库turtle的应用——绘制奥运五环标志 9.1.1 turtle库常用函数 9.1.2 任务实现——绘制奥运五环标志 python 9.1.1 turtle库常用函数 python 9.1.1 turtle库常用函数 turtle库(也叫作海龟绘图库)是Python语言中一个很流行的用于绘制图像的函数库,来源于1969年诞生的Logo语言,后被Python接纳并将其作为标准库提供给用户使用。 可以将turtle库想象成一个小海龟,在一个横轴为X、纵轴为Y的坐标系原点,从(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系上移动,从而在爬行的路径上绘制出图形。 python 9.1.1 turtle库常用函数 turtle库哪些常用方法? turtle库的引入 画布的创建方法 画笔的控制方法 画笔的运动方法 python 1.画布方法 坐标原点:绘图窗口的中心为坐标原点(0,0) X轴方向:X轴正方向为前进方向,负方向为后退方向 转向方向:X轴下方为右转方向,X轴上方为左转方向 X轴 Y轴 (0,0) 右转方向 左转方向 前进方向 后退方向 9.1.1 turtle库常用函数 python (1)绘图窗口创建 turtle.setup()方法用来设置绘图窗口的大小和位置。 width、height:表示绘图窗口的宽和高,表示以像素或窗口占据屏幕的百分比。 startx、starty:窗口位置距离屏幕边缘距离的像素,为正整数是表示窗口位置距离屏幕左边缘/上边缘的像素;为负整数时,表示窗口位置距离屏幕右边缘/下边缘的像素;为空,则表示窗口水平/垂直位于屏幕中心。 turtle.setup(width,height,startx,starty) 9.1.1 turtle库常用函数 python 【例9-1】创建绘图窗口。 注意:使用turtle模块实现图形化程序时setup()函数并不是必须的,如果程序未调用setup()函数,程序执行时会生成一个默认窗口 import turtle turtle.setup(width=800,height=600,startx=100,starty=100) 代码功能:创建800*600的窗口,窗口距离屏幕左边缘100像素、上边缘100像素 9.1.1 turtle库常用函数 python (2)设置画布的大小和背景色 turtle.screensize()方法来设置画布大小和背景颜色。 canvwidth:正整数,表示像素表示画布的宽度。 canvheight:正整数,以像素表示画布的高度。 bg:字符串,表示画布背景颜色。 turtle.screensize(canvwidth=None, canvheight=None, bg=None) 如果画布大于窗体,窗体会出现滚动条,如果画布小于窗体,画布会填充整个窗体。 9.1.1 turtle库常用函数 python turtle库中颜色的表示方法: 第二种,采用十六进制颜色值字符串表示,如“#FF0000”、“#FFFF00”等。 第一种,采用颜色英文单词表示,如“red”表示红色,“green”表示绿色,“yellow”表示黄色,等等。 第三种,RGB颜色元组,采元组格式(r, g, b),每个颜色取值0~255或者0~1。例如(0, 255, 0)或者(1, 0.5, 0)。 9.1.1 turtle库常用函数 python 例:【例9-2】设置画布大小和背景色。 import turtle turtle.screensize(600,400,"green") 代码功能:创建600*400,背景色为绿色的画布 9.1.1 turtle库常用函数 python 即学即答: turtle绘图中角度坐标系的绝对0度方向是( )。 A.画布正下方 B.画布正左方 C.画布正上方 D.画布正右方。 9.1.1 turtle库常用函数 python (1)设置画笔的粗细 turtle.pensize():设置画笔的粗细。 width:正数,设置画笔绘制线条时的粗细,如未指定参数,则返回当前画笔的粗细 turtle.pensize(width) 2.画笔控制方法 9.1.1 turtle库常用函数 python (2)设置画笔的颜色 turtle.color():来设置画笔的颜色。 color1:画笔的颜色 color2:填充的颜色 turtle.color(color1, color2) 9.1.1 turtle库常用函数 python (3)画笔的抬起和落下 在移动时不画线,turtle.pu()将画笔抬起。 需要绘图时,再用turtle.pd()将画笔落下 turtle.pu() # 抬起画笔 turtle.pd() # 落下画笔 9.1.1 turtle库常用函数 python 【例9-3】画笔的控制。 import turtle turtle.screensize(400,100,'black') turtle.pensize(10) # 设置画笔粗细 turtle.color('red') # 设置画笔颜色 turtle.forward(50) #直接画直线 (1)画一条粗细为10、长度为50像素的红线 9.1.1 turtle库常用函数 python turtle.pu() turtle.forward(50) # 画笔抬起,移动画笔,不画直线 (2)挪动画笔50像素,不画线 turtle.pd() turtle.pensize(5) # 设置画笔粗细 turtle.color('green') # 设置画笔颜色 turtle.forward(100) # 直接画直线 (3)画一条粗细为5、长度为100的绿线 9.1.1 turtle库常用函数 python 3.画笔运动函数 turle中画笔落下时,画笔才会在沿经过的路径绘制线条。 改变画笔位置时,画笔会在前后两个位置之间绘制图形。 9.1.1 turtle库常用函数 python (1)画笔的前进和后退 turtle.forward()或者turtle.fd()方法:画笔的直线前进 turtle.backward() 或者turtle.bk()方法: 画笔的直线后退 turtle.forward(distance)或者turtle.fd(distance) turtle.backward(distance) 或者turtle.bk(distance) distance:画笔前进或后退的距离,不改变当前画笔的朝向。 9.1.1 turtle库常用函数 python (2)画笔的左旋转和右旋转 turtle.left()方法:画笔的左旋转 turtle.right()方法:画笔的右旋转 tutle.left(angle) tutle.right(angle) angle:画笔的旋转角度。 右转120度 右转120度 9.1.1 turtle库常用函数 python 【例9-4】绘制等边三角形。 import turtle turtle.setup(800,600) turtle.screensize(800,600) turtle.pensize(3) #设置画笔粗细 turtle.color('black','yellow') turtle.begin_fill() turtle.forward(100) #画第一条边直线 turtle.right(120) #向右旋转120度 turtle.forward(100) #画第二条边直线 turtle.right(120) #向右旋转120度 turtle.forward(100) #画第三条边直线 turtle.end_fill() 9.1.1 turtle库常用函数 python (3)移动画笔到绝对位置 turtle.goto()函数:将画笔移动到绝对坐标位置 turtle.goto(x,y) x、y:移动到的目标新坐标 9.1.1 turtle库常用函数 python (4)设置画笔的移动速度: turtle.speed()方法:画笔的移动速度 turtle.speed(speed) speed:取值范围为[0,10]的整数。speed为0是表示没有动画效果(即速度最快)。速度为1~10时,数字越大,绘制的速度越快。 9.1.1 turtle库常用函数 python (5)画圆、弧或其他规则图形 turtle.circle()函数:绘制圆形、弧线或其他规则图形 turtle.circle(radius, extent=None, steps=None) radius:数值型数据,表示圆的半径,圆心在画笔的左侧randius个单位的位置。 extentd:数值型,表示绘制指定角度的圆弧。参数radius为正值时,沿逆时针方向绘制圆弧,否则沿顺时针方向绘制圆弧。绘制完毕后画笔的朝向有extent决定。 注意:turtle实际上是用内切正多边形来近似表示圆,其边数由steps参数指定。因此turtle.circle()函数也可以用来绘制正多边形。 9.1.1 turtle库常用函数 python 【例9-5】绘制圆、正多边形等图形。 import turtle turtle.screensize(600,400) turtle.pensize(5) #设置画笔粗细 turtle.speed(8) #设置画笔运行速度 turtle.penup() turtle.goto(-200,0) turtle.pendown() turtle.circle(50) # 绘制半径为50的圆 9.1.1 turtle库常用函数 python turtle.penup() turtle.goto(0,0) turtle.pendown() turtle.circle(50,None,6) # 绘制对角线为100的六边形 turtle.penup() turtle.goto(200,0) turtle.pendown() turtle.circle(50,180) #绘制半径为50的半圆弧 9.1.1 turtle库常用函数 python 边学边练: 在600*400的画布上绘制一个边长为100的正六边形,画笔粗细为3,填充其颜色为Orange,线条颜色为Purple,如下图所示。 9.1.1 turtle库常用函数 python 9.1.2 任务实现——绘制奥运五环标志 python 9.1.2 任务实现——绘制奥运五环标志 【任务描述】 小T查找了各项资料,得知奥运五环的大小和间距是按比例描绘的,假设圆环内圈半径为1,外圈半径为1.2,相邻圆环圆心水平距离为2.6,两排圆环圆心垂直距离为1.1。5个环套接组成,有蓝、黑、红、黄、绿5种颜色。环从左到右互相套接,上面是蓝、黑、红环,下面是黄、绿环。整个造型为一个底部小的规则梯形。在前面所学知识的基础上,跟随小T一起开始奥运五环标志的绘制吧。 python 9.1.2 任务实现——绘制奥运五环标志 【任务分析】 (1)确定奥运五环的比例,计算各环的圆心位置、半径、画笔的粗细。设圆环内半径为100(画圆时半径为110),则需设置画笔粗细为20。如果上面中间的黑环的坐标是(0,0),那么其左边蓝环的坐标为(-260,0),依次类推,右边红环坐标为(0,260),下面左边的黄环坐标(-130,-110),右边的绿环坐标(130,110),环间的坐标关系如图所示。 python 9.1.2 任务实现——绘制奥运五环标志 【任务分析】 (2)设置绘画窗口、画布、画笔粗细、五环的颜色等。 (3)找到各环坐标相对于(0,0)的规律,用循环语句计算各个圆的圆心,画出圆环。 (4)完成步骤(3)后各圆环间的交叉点均是下面的圆环覆盖上面的圆环。现需将图中标有“×”的交叉点进行修改以达到环间互相套接效果,即黄环与蓝环标“×”处交叉点被蓝环覆盖,黄环与黑环标“×”处交叉点被黑环覆盖,绿环与黑环标“×”处交叉点被黑环覆盖、绿环与红环的标“×”处交叉点被红覆盖,因此需要对蓝环、黑环、红环的部分弧线进行重画,覆盖黄、绿环。 python 9.1.2 任务实现——绘制奥运五环标志 计算各环的圆心位置、半径、画笔的粗细 用循环语句计算各个圆的圆心,画出圆环。 修正各圆环间的交叉点 (1)根据奥运五环的比例,计算各环的圆心位置、半径、画笔的粗细 (3)找到各环坐标相对于(0,0)的规律,用循环语句计算各个圆的圆心,画出圆环 (4)将图标有“×”的交叉点进行修改以达到环间互相套接效果 设置绘画窗口、画布、画笔粗细、五环的颜色 (2)设置绘画窗口、画布、画笔粗细、五环的颜色等 python 9.1.2 任务实现——绘制奥运五环标志 260 R100 R120 110 设圆环内半径为100(画圆时半径为110),则需设置画笔粗细为20 设上层中间的黑环的坐标是(0,0),那么其左边蓝环的坐标为(-260,0),右边红环坐标为(0,260),下层左边的黄环坐标(-130,-110),右边的绿环坐标(130,110) (0,0) (260,0) (-260,0) (-130,-110) (130,-110) (1)根据奥运五环的比例,计算各环的圆心位置、半径、画笔的粗细 【例9-6】绘制奥运五环标志。 python 9.1.2 任务实现——绘制奥运五环标志 import turtle turtle.setup(width=0.8,height=0.8) turtle.screensize(1200,800) colors = ['blue', 'black', 'red', 'yellow', 'green'] # 五环颜色列表 turtle.speed(6) turtle.width(20) (2)设置绘画窗口、画布、画笔粗细、五环的颜色等 【例9-6】绘制奥运五环标志。 python 9.1.2 任务实现——绘制奥运五环标志 for i in range(5): # 计算下一个环的坐标 if i<3: x=260*(i-1) y = 0 else: x=260*(i-3)-130 y=-110 turtle.penup() turtle.goto(x, y) # 将画笔移动到下一个圆环圆心 turtle.pendown() turtle.color(colors[i]) # 设置画笔颜色 turtle.circle(110) (3)找到各环坐标相对于(0,0)的规律,用循环语句计算各个圆的圆心,画出圆环 python 39 9.1.2 任务实现——绘制奥运五环标志 # 处理蓝、黄环交叉点 turtle.penup() turtle.goto(-260,0) # 抬起画笔画圆弧,未标“×”处交叉点不覆盖 turtle.circle(110,30) turtle.pendown() turtle.color('blue') # 落下画笔,把标“×”处交叉点的弧线重画为蓝色 turtle.circle(110,90) # 设置画笔方向指向东 turtle.seth(0) (4)将图标有“×”的交叉点进行修改以达到环间互相套接效果(蓝、黄环交叉点;绿、红环交叉点) # 处理绿、红环交叉点 turtle.penup() turtle.goto(260,0) turtle.circle(110,330) turtle.pendown() turtle.color('red') turtle.circle(110,30) turtle.seth(0) python 9.1.2 任务实现——绘制奥运五环标志 # 处理绿、黑环交叉点 turtle.penup() turtle.goto(0,0) turtle.circle(110,60) turtle.pendown() turtle.color('black') turtle.circle(110,60) (4)将图标有“×”的交叉点进行修改以达到环间互相套接效果(绿、黑环交叉点;黄、黑环交叉点) # 处理黄、黑环交叉点 turtle.penup() turtle.circle(110,210) turtle.pendown() turtle.circle(110,30) python $$

资源预览图

任务9.1  绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
1
任务9.1  绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
2
任务9.1  绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
3
任务9.1  绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
4
任务9.1  绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
5
任务9.1  绘图库turtle的应用(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。