人工智能通识实践教程 课件 第5章-2 turtle绘图与程序设计_第1页
人工智能通识实践教程 课件 第5章-2 turtle绘图与程序设计_第2页
人工智能通识实践教程 课件 第5章-2 turtle绘图与程序设计_第3页
人工智能通识实践教程 课件 第5章-2 turtle绘图与程序设计_第4页
人工智能通识实践教程 课件 第5章-2 turtle绘图与程序设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.2turtle库基础turtle绘图基础turtle绘图与程序设计的流程控制turtle绘图与函数模块化turtle绘图与动画效果turtle库turtle库是Python语言中绘制图像的标准库想象一个小海龟根据一组指令在平面坐标系中移动,从而在它爬行的路径上绘制出了图像画笔初始位于坐标点(0,0)朝向右侧xy0/36090/-270180/-180270/-90turtle绘图步骤importturtle结束绘图导入turtle库后获得一只默认的画笔turtle.done()绘图结束,画面停留turtle.bye()

绘图结束,画面消失turtle.exitonclick()

绘图结束,单击关闭利用画笔绘图turtle.函数(),使用默认画笔绘图画笔控制函数函数缩写说明setheading(angle)seth设置当前朝向为angle角度pendown()pd或down移动时绘制图形,为画笔默认状态penup()pu或up提起画笔移动,不绘制图形,用于另起一个地方绘制pensize(width)—设置画笔的粗细为width(单位为像素),与width()函数功能相同speed(n)—设置画笔的动画速度。n为1,最慢;10最快。若n设置为0,则不显示动画,直接跳到目标位置showturtle()—显示画笔图标(箭头)hideturtle()—隐藏画笔图标(箭头)画笔绘制状态和运动相关函数命令缩写说明home()—设置当前画笔位置为原点,朝向东goto(x,y)—将画笔移动到坐标为(x,y)的位置forward(distance)fd向当前画笔方向移动distance长度,单位为像素backward(distance)bd向当前画笔相反方向移动distance长度,单位为像素right(angle)rt顺时针移动degree角度left(angle)lt逆时针移动degree角度circle(r,angle)—画圆,半径为正(负),表示圆心在画笔的左边(右边)颜色相关函数命令说明pencolor(color)设置画笔的颜色fillcolor(color)设置填充颜色color(color1,color2)同时设置画笔颜色和填充颜色,color1为画笔颜色,color2为填充颜色begin_fill()设置封闭图形的填充起始位置end_fill()设置封闭图形的填充结束位置bgcolor()设置画布背景颜色实验目标

通过体验turtle绘图过程,建立程序的概念掌握如何通过函数封装重复逻辑,并理解如何通过参数化实现函数的灵活变化

通过将随机函数、图形绘制和延时技术结合,实现动态的视觉效果【例5-1】绘制如图5-6所示的颜色渐变的螺旋线

螺旋形状的形成:前进+旋转前进步长:步长逐渐增加旋转:固定角度颜色渐变:调整RGB三通道红色:从255递减绿色:固定255,营造对比蓝色:从0开始递增importturtle

#设置画布screen=turtle.Screen()screen.bgcolor("black")

#设置背景色为黑色

pen=turtle.Turtle()#创建Turtle对象pen.shape("turtle")

#设置画笔形状为海龟pen.speed(0)

#不显示动画

#设置颜色模式为RGB模式turtle.colormode(255)

#绘制颜色变化的螺旋线foriinrange(360):

#绘制360次

#计算颜色值,随着i的增大,红色减小,蓝色增大

red=int(255-(i/360)*255)

#红色从255减小到0

blue=int((i/360)*255)

#蓝色从0增大到255

#设置当前颜色

pen.pencolor(red,0,blue)

#设置画笔颜色,绿色固定为0

#绘制螺旋

pen.forward(i*3/2)

#每次的前进步长逐渐增大

pen.left(59)

#每次左转59度

turtle.done()#结束绘图实验任务绘制正三角形。边长为150像素,蓝色。绘制实心正五边形。输入颜色字符串,用循环结构绘制一个实心的正五边形,并总结绘制正多边形的规律。绘制实心长方形。长为200像素、宽为100像素。绘制五角星。绘制三色树叶。绘制彩虹圆。【例5-2】绘制5个正方形。各正方形的边长依次递增各正方形并排排列邻正方形之间保持固定间距【例5-2】绘制5个正方形。模块化思想分解问题:绘制正方形、绘制5个正方形提高重用性:绘制正方形提高可维护性:用参数传递变化的数据defdraw_square(size):for_inrange(4):

turtle.forward(size)

#绘制一条边

turtle.left(90)

#旋转90度defdraw_multiple_squares(initial_size,gap):

foriinrange(5):

#计算每个正方形的边长(递增40像素)side_length=initial_size+i*40

draw_square(side_length)

turtle.penup()

turtle.forward(side_length+gap)

turtle.pendown()

第一个正方形的边长正方形之间的间距实验任务编写一个draw_polygon函数,使用turtle库绘制一个正多边形。该函数至少包含边数和边长两个参数。编写一个draw_concentric_circles函数,使用turtle库绘制多个同心圆。该函数至少包含初始圆半径、半径递增量、同心圆数量3个参数。编写一个程序,使用turtle库绘制多个旋转的三角形。期中,绘制三角形编写函数实现。【例5-3】利用turtle库模拟星空效果,其中包含星星的随机生成和闪烁效果。设置一个黑色背景的画布,模拟夜空,使得星星更加醒目。随机选择星星的颜色。随机设置星星的位置和大小。利用延时功能模拟星星的闪烁效果。通过无限循环(whileTrue)实现持续的闪烁效果。【例5-3】利用turtle库模拟星空效果,其中包含星星的随机生成和闪烁效果。

动画效果:通过time.sleep(0.5)控制闪烁的间隔时间,产生类似星星在夜空中闪烁的效果模块化设计绘制星星随机绘制星星defdraw_star(size):

for_inrange(5):

pen.forward(size)

pen.right(144)

defrandom_star():

#随机选择星星的颜色colors=["white","yellow","lightblue","lightgreen","pink"]

pen.color(random.choice(colors))

#随机选择星星的大小和位置

size=random.randint(20,100)

#随机星星大小

x=random.randint(-300,300)

#随机横坐标

y=random.randint(-300,300)

#随机纵坐标

#移动到随机位置

pen.penup()

pen.goto(x,y)

pen.pendown()

#绘制星星

draw_star(size)#模拟星星闪烁的效果whileTrue:

#清除之前的星星

pen.clear()

#随机绘制20颗星星

for_inrange

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论