版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章
turtle绘图python程序设计基础教程8.1画布设置
海龟绘图(TurtleGraphics),turtle库是python的内部库。>>>importturtle>>>fromturtleimport*8.1画布设置画布是turtle模块的绘图区域(窗口),可以直接使用默认,也可以定义它的大小和初始位置。屏幕左上角为其坐标系原点,横轴为x、纵轴为y。画布的单位是像素。turtle.screensize(width,height,bg)定义画布的大小和背景颜色,其中width表示画布的宽度,height表示画布的高,bg表示画布的颜色,若width和height为0-1之间小数,则表示其占屏幕的比例若为空,则返回默认大小。turtle.setup(width,height,startx,starty)定义画布的大小以及距离屏幕左侧和屏幕上边的距离,其中width表示画布的宽度,height表示画布的高,startx表示画布距离屏幕左侧的距离,starty表示画布距离屏幕上边的距离,若为空,则画布居中。8.1画布设置在进行图形绘制之前需要了解下turtle的空间坐标体系。1)绝对坐标体系:以画布中心为坐标原点,向右为x轴,向上为y轴。与数学中的直角坐标系相同。turtle.goto(x,y)表示直接跳转到相应的坐标点(x,y),这里的坐标是绝对坐标。8.1画布设置在进行图形绘制之前需要了解下turtle的空间坐标体系。2)相对海龟坐标体系:以海龟的方向来看,有前、后、前进方向左侧、前进方向右侧四个方向。8.1画布设置turtle.fd(distance)/turtle.forward(distance)从海龟的方向向前前进distance像素的距离。turtle.bk(distance)/turtle.backward(distance)从海龟的方向向后前进distance像素的距离。turtle.circle(r,extent)表示以r为半径,旋转extent角度。当r>0时,圆心在画笔的左边,当r<0,圆心在画笔的右边。extent为正数,则沿着海龟方向画圆,extent为负数,则逆着海龟方向画圆。8.1画布设置circle(r,extent)的应用fromturtleimport*setup(500,500,0,0)#设置画布大小和起始点circle(100,90)circle(-100,90)fromturtleimport*setup(500,500,0,0)#设置画布大小和起始点circle(100,-90)circle(-100,-90)8.1画布设置角度坐标体系:(1)绝对角度坐标:x轴为0度,逆时针为角度正值,顺时针为角度负值。
(2)相对角度坐标:以海龟为参考系改变方向。8.1画布设置RGB色彩模式turtle.colormode(mode)参数mode=1,则为小数,mode=255,则为整数.turtle.pencolor(‘color’)参数color可以为颜色字符串如red,blue
。color也可以取RGB值。ColorRGB整数RGB小数White255,255,2551,1,1Yellow255,255,01,1,0Magenta255,0,2551,0,1Cyan0,255,2550,1,1Blue0,0,2550,0,1Black0,0,00,0,0Purple160,32,2400.63,0.13,0.948.2画笔设置画笔描述了绘制图形时的位置、方向、粗细、移动速度等信息。初始位置位于画布正中央,正方向默认为沿着x轴数值增大方向。操纵画笔绘图的命令可以划分为3种基本类型:画笔设置命令,画笔控制命令,画笔运动命令。方法含义turtle.pensize(width)设置画笔的宽度,width是像素值。turtle.pencolor(color)设置画笔颜色,color取值可以是字符串,可以是RGB整数,RGB小数,默认返回当前画笔颜色。turtle.penup()提起画笔,不绘制图形,之后移动画笔不再绘图。turtle.pendown()落下画笔,进行绘图。turtle.speed(speed)设置画笔移动速度,速度范围[0,10],数字越大越快。turtle.hideturtle()隐藏画笔的turtle形状turtle.showturtle()显示画笔的turtle形状8.2画笔设置turtle绘图importturtleturtle.pensize(4)#设置画笔宽度为4像素turtle.pencolor("green")#设置画笔颜色为绿色turtle.penup()#抬起画笔,不作画turtle.pendown()#落下画笔,进行作画turtle.speed(1)#设置画笔速度R=50turtle.circle(R)#绘制半径是R的圆turtle.showturtle()#显示画笔形状8.2画笔设置常用画笔运动命令有turtle.goto(x,y),turtle.forward(distance),turtle.backward(distance)等,具体含义如表8-3所示。方法含义turtle.goto(x,y)海龟位置跳转至指定坐标(x,y)处。turtle.forward(distance)沿海龟方向前进distance距离。turtle.backward(distance)沿海龟后退方向前景distance距离。turtle.circle(r,extent)以r为半径绘制圆。turtle.right(angle)顺时针旋转angle角度。turtle.left(angle)逆时针旋转angle角度。turtle.setheading(angle)设置行进方向为angle角度,角度为绝对角度。turtle.dot(r)绘制指定颜色和直径的圆点turtle.setx()将当前x轴移动至指定位置turtle.sety()将当前y轴移动至指定位置turtle.home()设置画笔当前位置为原点,朝向东8.2画笔设置turtle绘图importturtle#导入turtle库turtle.pensize(4)#设置画笔宽度turtle.pencolor("green")#设置画笔颜色turtle.fillcolor("blue")#设置填充颜色R=50turtle.fd(R)#前进R像素turtle.bk(R)#后退R像素turtle.circle(R)#绘制半径是R的圆turtle.right(180)#顺时针旋转90°turtle.circle(R)#绘制半径是R的圆turtle.home()#设置画笔回到原点,方向朝东8.2画笔设置常用画笔控制命令有turtle.begin_fill(),turtle.end_fill()等方法含义turtle.fillcolor(colorstring)设置图形的填充颜色。turtle.color(color1,color2)设置pencolor=color1,fillcolor=color2。turtle.filling()返回当前是否在填充状态。turtle.begin_fill()准备开始填充图形。turtle.end_fill()填充结束。8.2画笔设置turtle绘图importturtle#导入turtle库turtle.pensize(4)#设置画笔宽度turtle.pencolor("green")#设置画笔颜色turtle.fillcolor("blue")#设置填充颜色R=50turtle.fd(R)#前进R像素turtle.bk(R)#后退R像素turtle.begin_fill()#准备开始填充图形turtle.circle(R)#绘制半径是R的圆turtle.right(180)#顺时针旋转90°turtle.circle(R)#绘制半径是R的圆turtle.end_fill()#完成填充图形turtle.home()#设置画笔回到原点,方向朝东8.2画笔设置常用画笔控制命令有turtle.begin_fill(),turtle.end_fill()等方法含义turtle.fillcolor(colorstring)设置图形的填充颜色。turtle.color(color1,color2)设置pencolor=color1,fillcolor=color2。turtle.filling()返回当前是否在填充状态。turtle.begin_fill()准备开始填充图形。turtle.end_fill()填充结束。8.2画笔设置turtle绘图importturtle#导入turtle库turtle.pensize(4)#设置画笔宽度turtle.pencolor("green")#设置画笔颜色turtle.fillcolor("blue")#设置填充颜色R=50turtle.fd(R)#前进R像素turtle.bk(R)#后退R像素turtle.begin_fill()#准备开始填充图形turtle.circle(R)#绘制半径是R的圆turtle.right(180)#顺时针旋转90°turtle.circle(R)#绘制半径是R的圆turtle.end_fill()#完成填充图形turtle.home()#设置画笔回到原点,方向朝东8.3图形绘制图形绘制方法如下。方法含义turtle.clear()清空turtle窗口,但是turtle的位置和状态不会改变。turtle.reset()重置turtle窗口为起始状态。turtle.undo()撤销上一个动作。turtle.isvisible()返回turtle是否可见。turtle.stamp()复制当前图形。turtle.write(s[,font=("font-name",font_size,"font_type")])写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型。turtle.mode(mode=None)设置海龟模式并执行重置。turtle.delay(delay=None)设置或返回以毫秒为单位的绘图延迟。turtle.begin_poly()开始记录多边形的顶点。turtle.end_poly()停止记录多边形的顶点,并与第一个顶点相连。turtle.get_poly()返回记录的多边形。8.4综合案例例8-1:绘制五角星。编程思路:从起点开始,默认方向是正东0°,第一次使画笔移动200像素,以画笔当前的角度右转144°,并沿此方向使画笔进行第二轮的移动,以此类推,循环4次画笔回到原点。importturtle#导入turtle库turtle.pensize(4)#设置画笔宽度turtle.pencolor("green")#设置画笔颜色turtle.fillcolor("blue")#设置填充颜色turtle.begin_fill()#开始填充foriinrange(5):turtle.forward(200)turtle.right(144)#向右偏转144°turtle.end_fill()turtle.penup()#抬起画笔turtle.goto(50,-150)#定位至指定位置turtle.color("blue")turtle.write("五角星",font=('Arial',20,'normal'))回到原点,方向朝东8.4综合案例例8-2:绘制四叶草。编程思路:从起点开始,默认方向是正东0°,以画笔当前角度左转(逆时针)旋转135°,第一次使画笔移动50像素,在画笔方向的右侧画一个半径为25的半圆,以画笔当前的角度左转90°,在画笔方向的右侧画一个半径是25的半圆,沿着画笔当前的方向前进50像素,并沿此方向使画笔进行第二轮的移动,以此类推,循环4次画笔回到原点。importturtle#导入turtle库turtle.pensize(4)#设置画笔像素为4像素turtle.pencolor("black")#设置画笔颜色为黑色turtle.fillcolor("green")#设置填充颜色为绿色turtle.left(135)i=1while(i<=4):turtle.begin_fill()#开始填充turtle.forward(50)turtle.circle(-25,180)turtle.left(90)turtle.circle(-25,180)turtle.forward(50)turtle.end_fill()#结束填充i+=18.4综合案例例8-3:绘制旋转风车。编程思路:从起点开始,首先绘制一个风车的棒子,之后通过for循环绘制四个风车叶子,每个风车叶子由两个三角形构成。最后风车的旋转通过循环绘制不同角度的风车完成,风车旋转100圈结束循环。importturtleastimporttimedefdraw(r):#画一个风车的棒子t.pensize(5)t.penup()t.goto(0,0)t.pendown()t.goto(0,-150)t.pensize(1)#循环生成四个叶子foriinrange(4):t.setheading(i*90+r)t.penup()t.goto(0,0)t.pendown()#绘制深蓝色三角形t.fillcolor('deepskyblue')t.begin_fill()
t.forward(100)t.left(150)t.forward(70)t.end_fill()
#绘制绿色三角形t.fillcolor('green')t.begin_fill()t.left(30)t.forward(40)t.left(90)t.forward(35)t.end_fill()forrinrange(0,360*100,3):#这里是旋转100圈,步长3对应转速。t.tracer(False)#跳过绘图过程直接生成图形t.clear()draw(r)time.sleep(0.01)t.hideturtle()t.tracer(True)8.4综合案例例8-4.绘制圆环。编程思路:定义一个函数,用于绘制大圆和小圆。调用该函数,传入大圆和小圆的半径,绘制圆环。importturtle#设置画笔速度和颜色turtle.speed(0)turtle.color("blue")#定义一个函数,用于绘制大圆和小圆defdraw_circles(big_radius,small_radius):turtle.penup()turtle.goto(0,-big_radius)turtle.pendown()turtle.circle(big_radius)turtle.penup()turtle.goto(0,-small_radius)turtle.pendown()turtle.circle(small_radius)#调用该函数,传入大圆和小圆的半径draw_circles(100,50)#结束绘制turtle.done()8.4综合案例例8-5.绘制图形实现圆形和矩形相切。编程思路:绘制半径是10的圆,然后沿着圆的方向绘制长为40,宽为20的矩形。fromturtleimport*color('red')R=10pensize(4)circle(R)#绘制圆foriinrange(2):forward(20)right(90)fd(40)right(90)fd(20)right(90)fd(20)penup()#抬起画笔goto(-50,-100)#定位至指定位置color("blue")write('圆形矩形相切',font=(10))8.4综合案例例8-6.用turtle绘制一个圆形螺旋,画笔宽4像素,画笔颜色红色,下方用10号字写“圆形螺旋”。编程思路:设置画笔颜色红色,画笔宽度4像素,第一次绘制半圆的半径为10,将半径增加10,第二次绘制半圆的半径为20,并将半径增加10,以此类推,循环10次结束绘制,并在下方写上“圆形螺旋”。fromturtleimport*co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西南交通大学《热流体》2022-2023学年第一学期期末试卷
- 西京学院《产品造型材料与工艺》2023-2024学年第一学期期末试卷
- 2024年01月11289中国当代文学专题期末试题答案
- 西昌学院《包装设计》2022-2023学年第一学期期末试卷
- 西北大学《社会心理学》2021-2022学年第一学期期末试卷
- 《上菜与分菜训练》课件
- 《健美生营养美容学》课件
- 购房合同和房屋买卖合同
- erc314协议部署流程
- 2024年买卖合同印花税计算方法
- 动火安全作业票填写模板2022年更新
- 建设工程监理概论(PPT)
- 闸室及交通桥施工方案
- 加强民航空管设施建设实施方案
- 读者文摘精选100篇【文摘】
- (高清正版)T-CAGHP 032—2018崩塌防治工程设计规范(试行)
- 公园绿化养护景观绿化维护项目迎接重大节会活动的保障措施
- 电机安装技术规范
- 航运企业船员安全培训及宣传制度
- 数据库及数据仓库精要Adhoc报表系统
- 《口腔修复学(一)》教学大纲
评论
0/150
提交评论