您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Python图形绘制
10图形绘制内容回顾2020年9月10日1异常的概念01异常的捕获02030405断言try…except子句自定义和主动抛出的异常10图形绘制本课内容2020年9月10日2Tkinter图形库的图形绘制功能01turtle图形模块0203Graphics图形库的操作方法10图形绘制Tkinter模块导入tkinter模块的方法为:importtkinterfromtkinterimport*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和coordsfromtkinterimport*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日24fromtkinterimport*#绘制窗体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日25tcost)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')
本文标题:Python图形绘制
链接地址:https://www.777doc.com/doc-6909614 .html