Python图形绘制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

10图形绘制内容回顾2020年9月10日1异常的概念01异常的捕获02030405断言try…except子句自定义和主动抛出的异常10图形绘制本课内容2020年9月10日2Tkinter图形库的图形绘制功能01turtle图形模块0203Graphics图形库的操作方法10图形绘制Tkinter模块导入tkinter模块的方法为:importtkinterfromtkinterimport*2020年9月10日310图形绘制主窗口创建主窗口称为根窗口,即顶层窗口,所有图形均在该窗口绘制,其创建格式为:窗口对象名=Tk()例如,下列语句创建主窗口w。w=Tk()2020年9月10日410图形绘制窗体的运行fromtkinterimport*top=Tk()top.geometry('500x500+400+50’)#500和500是宽度和高度,窗体在屏幕上的左上角的横坐标,50是左上角的纵坐标top.mainloop()2020年9月10日510图形绘制画布对象的创建画布(canvas)就是用来进行绘图的区域,实际上是一个对象,可以在画布上绘制各种图形、标注文本。创建画布对象语句的格式如下:画布对象名=Canvas(窗口对象名,属性名=属性值,……)该语句创建一个画布对象,并对该对象的属性进行设置。语句中的Canvas代表tkinter模块提供的Canvas类,通过Canvas类的构造函数Canvas()创建画布对象。“窗口对象名”表示画布所在的窗口“属性名=属性值”用于设置画布对象的属性。2020年9月10日610图形绘制画布对象的创建下面的语句在主窗口w中创建一个宽度为300像素、高度为200像素、背景为白色的画布对象,并将画布对象命名为c。c=Canvas(w,width=300,height=200,bg=‘red’)注意,虽然已经创建了画布对象c,但在主窗口中并没有看到这块白色画布。为了让画布在窗口中显现出来,还需要执行如下语句。c.pack()其中c表示画布对象,pack()是画布对象的一个方法,这时在屏幕上看到原来的主窗口中放进一个300×200的白色画布。2020年9月10日710图形绘制画布对象的创建和运行fromtkinterimport*top=Tk()#width,height:设置画布的宽高,bg:设置背景色can=Canvas(top,width=400,height=300,bg=orange)can.pack()top.mainloop()2020年9月10日810图形绘制运行结果2020年9月10日910图形绘制画布对象的坐标系Tkinter为画布对象建立了坐标系画布坐标系以画布左上角为原点,从原点水平向右为x轴,从原点垂直向下为y轴。2020年9月10日10画布坐标系10图形绘制图形对象的标识画布中的图形对象的标识:画布中的图形对象需要采用某种方法来标识和引用,以便对该图形对象进行处理,具体采用标识号和标签(tag)两种标识方法。标识号是创建图形对象时自动为图形对象赋予的唯一的整数编号标签相当于给图形对象命名,一个图形对象可以与多个标签相关联,而同一个标签可以与多个图形对象相关联,即一个图形对象可以有多个名字,而且不同图形对象可以有相同的名字。2020年9月10日1110图形绘制图形对象的标签指定为图形对象指定标签有三种方法。(1)在创建图形时利用tags属性来指定标签,可以将tags属性设置为单个字符串,即单个名字,也可以设置为一个字符串元组,即多个名字。(2)在创建图形之后,可以利用画布的itemconfig()方法对tags属性进行设置。(3)利用画布的addtag_withtag()方法来为图形对象添加新标签。2020年9月10日1210图形绘制举例创建一个tags为‘s1‘、’s2‘和’s3‘的矩形对象(1)rt1=can.create_rectangle(200,200,300,300,outline='red',width=4,tags=('s1','s2','s3’))将rt1的tags属性更新为’s1’(2)can.itemconfig(rt1,tags='s1’)将rt1的tags属性更新为’s1’(3)can.addtag_withtag('new',rt1)2020年9月10日1310图形绘制图形对象的共性操作(1)gettags()方法:用于获取给定图形对象的所有标签。(2)find_withtag()方法:用于获取与给定标签相关联的所有图形对象。(3)delete()方法:用于从画布上删除指定的图形对象。(4)move()方法:用于在画布上移动指定图形。2020年9月10日1410图形绘制绘制图形举例fromtkinterimport*top=Tk()can=Canvas(top,width=400,height=400,bg='orange')rt1=can.create_rectangle(200,200,300,300,outline='red',width=4,tags=('s1','s2','s3'))rt2=can.create_rectangle(100,100,200,200,outline='green',width=1,tags=('s3'))can.pack()top.mainloop()2020年9月10日1510图形绘制移动对象坐标-move和coordsfromtkinterimport*top=Tk()can=Canvas(top,width=400,height=400,bg='orange')rt1=can.create_rectangle(200,200,300,300,outline='red',width=4,tags=('s1','s2','s3'))rt2=can.create_rectangle(100,100,200,200,outline='green',width=1,tags=('s3'))can.move(rt1,-100,-100)can.coords(rt2,300,300,400,400)can.pack()top.mainloop()2020年9月10日1610图形绘制输出标签对应的id以及id对应的标签fromtkinterimport*top=Tk()can=Canvas(top,width=400,height=400,bg='orange')rt1=can.create_rectangle(200,200,300,300,outline='red',width=4,tags=('s1','s2','s3'))rt2=can.create_rectangle(100,100,200,200,outline='green',width=1,tags=('s3'))print(rt1,rt2)print(can.find_withtag('s3'))print(can.gettags(rt1))can.pack()top.mainloop()2020年9月10日1710图形绘制在画布上绘制图形create_rectangle()方法画布对象提供create_rectangle()方法,用于在画布上创建矩形,其调用格式如下:画布对象名.create_rectangle(x0,y0,x1,y1,属性设置……)其中,(x0,y0)是矩形左上角的坐标,(x1,y1)是矩形右下角的坐标。属性设置即对矩形的属性进行设置。2020年9月10日1810图形绘制创建矩形下面的语句创建一个以(50,50)为左上角、以(200,100)为右下角的矩形:c.create_rectangle(50,30,200,150)下面的语句再创建一个矩形,并将矩形标识号存入变量r中。fromtkinterimport*top=Tk()c=Canvas(top,width=200,height=200,bg='red')r=c.create_rectangle(10,30,200,150,tags='Rect2')print(r)c.pack()top.mainloop()2020年9月10日1910图形绘制矩形对象的边框属性矩形对象的常见属性有:边框属性、内部填充属性、其它属性。outline属性矩形边框可以用outline属性来设置颜色,其默认值为黑色。如果将outline设置为空串,则不显示边框,即透明的边框。Width属性边框的宽度可以用width属性来设置,默认值为1像素dash属性边框可以画成虚线形式,这需要用到dash属性,该属性的值是整数元组。最常用的是二元组(a,b),其中a指定要画多少个像素,b指定要跳过多少个像素,如此重复,直至边框画完。若a、b相等,可以简记为(a,)2020年9月10日2010图形绘制矩形内部填充属性fill属性。矩形内部区域可以用fill属性来设置填充颜色,此属性的默认值是空串,效果是内部透明。stipple属性。在填充颜色时,可以使用stipple属性设置填充画刷,即填充的点刻效果,可以取gray12、gray25、gray50、gray75等值。2020年9月10日2110图形绘制其他属性矩形还有个属性state,用于设置图形的显示状态。默认值是NORMAL或normal,即正常显示。另一个有用的值是HIDDEN或hidden,它使矩形在画布上不可见。使一个图形在NORMAL和HIDDEN两个状态之间交替变化,即形成闪烁的效果。注意,属性值用大写字母形式时,不要加引号,而用小写字母形式时,一定要加引号,下面还有这种情况,到时只列出大写字母形式。rt1=can.create_rectangle(200,200,300,300,outline='',width=4,\tags=('s1','s2','s3'),fill='red',stipple='gray75',state=HIDDEN)2020年9月10日2210图形绘制思考绘制所示的四个正方形。2020年9月10日2310图形绘制源代码2020年9月10日24fromtkinterimport*#绘制窗体top=Tk()#绘制画布c=Canvas(top,width=290,height=290,bg='white')#显示画布c.pack()#在窗体上显示4个矩形c.create_rectangle(110,30,190,110,stipple='gray25',fill='red')c.create_rectangle(110,110,190,190,fill='green',outline='green',width=5)c.create_rectangle(30,110,110,190,fill='yellow',outline='red',width=5)c.create_rectangle(190,110,270,190,fill='red',dash=10,width=5)top.mainloop()10图形绘制思考绘制曲线2020年9月10日25tcost)3(sintytsint)3(costx,t∈[0,10π]。10图形绘制图形绘制绘制函数曲线可采用计算出函数曲线的各个点的坐标,将各点画出来。如果这些点足够密,绘出的曲线会比较光滑。画布对角没有提供画“点”的方法,但可以画一个很小的矩形来当作点。2020年9月10日2610图形绘制源代码fromtkinterimport*frommathimport*#绘制窗体top=Tk()#绘制画布c=Canvas(top,width=290,height=290,bg='white')

1 / 87
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功