书签 分享 收藏 举报 版权申诉 / 104
上传文档赚钱

类型Python语言程序设计第12章-图形绘制-配源代码课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:2494231
  • 上传时间:2022-04-25
  • 格式:PPTX
  • 页数:104
  • 大小:591.86KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Python语言程序设计第12章-图形绘制-配源代码课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python 语言程序设计 12 图形 绘制 源代码 课件
    资源描述:

    1、 Python语言程序设计语言程序设计刘刘卫国卫国第第12章章 图形图形绘制绘制配源代码配源代码12.1.1 tkinter模块模块导导入入tkinter模块一般采用以下两种方法。模块一般采用以下两种方法。 import tkinter from tkinter import *12.1 Tkinter图形库概述图形库概述12.1.2 主窗口的主窗口的创建创建主主窗口也称为根窗口,这是一个顶层窗口,窗口也称为根窗口,这是一个顶层窗口,所有图形都是在这个窗口中绘制的。其创建格所有图形都是在这个窗口中绘制的。其创建格式为:式为:窗口窗口对象名对象名=Tk()例如例如,下列语句创建主窗口,下列语句创

    2、建主窗口w。 w=Tk()12.1.3 画布对象的创建画布对象的创建画布画布(canvas)就是用来进行绘图的区域,)就是用来进行绘图的区域,实际上是一个对象,可以在画布上绘制各种图形、实际上是一个对象,可以在画布上绘制各种图形、标注文本。创建画布对象语句的格式如下:标注文本。创建画布对象语句的格式如下:画布对象名画布对象名=Canvas(窗口对象名窗口对象名,属性名属性名=属性属性值值,)该该语句创建一个画布对象,并对该对象的属语句创建一个画布对象,并对该对象的属性进行设置。语句中的性进行设置。语句中的Canvas代表代表tkinter模块模块提供的提供的Canvas类,通过类,通过Canv

    3、as类的构造函数类的构造函数Canvas()创建画布对象。创建画布对象。“窗口对象名窗口对象名”表示画表示画布所在的布所在的窗口,窗口,“属性名属性名=属性值属性值”用于设置画用于设置画布对象的布对象的属性。属性。下面的语句在主窗口下面的语句在主窗口w中创建一个宽度为中创建一个宽度为300像素、高度为像素、高度为200像素、背景为白色的画布像素、背景为白色的画布对象,并将画布对象命名为对象,并将画布对象命名为c。 c=Canvas(w,width=300,height=200,bg=white)注意,虽然已经创建了画布对象注意,虽然已经创建了画布对象c,但在主,但在主窗口中并没有看到这块白色画

    4、布。为了让画布在窗口中并没有看到这块白色画布。为了让画布在窗口中显现出来,还需要执行如下语句。窗口中显现出来,还需要执行如下语句。 c.pack()其中其中c表示画布对象,表示画布对象,pack()是是画布对象的画布对象的一个方法,这时在屏幕上看到原来的一个方法,这时在屏幕上看到原来的主窗口中放主窗口中放进一个进一个300200的白色画布。的白色画布。12.1.4 画布对象的画布对象的坐标系坐标系tkinter模块为画布建立了坐标系。画布坐模块为画布建立了坐标系。画布坐标系以画布左上角为原点,从原点水平向右为标系以画布左上角为原点,从原点水平向右为x轴,从原点垂直向下为轴,从原点垂直向下为y轴

    5、。轴。画布坐标系画布坐标系12.1.5 画布中的图形对象画布中的图形对象1图形对象的标识图形对象的标识画布中的图形对象需要采用某种方法来标识画布中的图形对象需要采用某种方法来标识和引用,以便对该图形对象进行处理,具体采用和引用,以便对该图形对象进行处理,具体采用标识号和标签(标识号和标签(tag)两种标识方法。)两种标识方法。标识号是创建图形对象时自动为图形对象赋标识号是创建图形对象时自动为图形对象赋予的唯一的整数编号。标签相当于给图形对象命予的唯一的整数编号。标签相当于给图形对象命名,一个图形对象可以与多个标签相关联,而同名,一个图形对象可以与多个标签相关联,而同一个标签可以与多个图形对象相

    6、关联,一个标签可以与多个图形对象相关联,即一个图即一个图形对象可以有多个名字,而且不同形对象可以有多个名字,而且不同图形对象可以图形对象可以有相同的名字。有相同的名字。为图形对象指定标签有三种方法。为图形对象指定标签有三种方法。(1)在创建图形时利用)在创建图形时利用tags属性来指定标签,属性来指定标签,可以将可以将tags属性设置为单个字符串,即单个名属性设置为单个字符串,即单个名字,也可以设置为一个字符串元组,即多个名字,也可以设置为一个字符串元组,即多个名字。字。(2)在创建图形之后,可以利用画布的)在创建图形之后,可以利用画布的itemconfig()方法对方法对tags属性进行设置

    7、。属性进行设置。(3)利用画布的)利用画布的addtag_withtag()方法来为图方法来为图形对象添加新标签。形对象添加新标签。2图形对象的共性操作图形对象的共性操作(1)gettags()方法:用于获取给定图形对象的方法:用于获取给定图形对象的所有标签。所有标签。(2)find_withtag()方法:用于获取与给定标签方法:用于获取与给定标签相关联的所有图形对象。相关联的所有图形对象。(3)delete()方法:用于从画布上删除指定的方法:用于从画布上删除指定的图形对象。图形对象。(4)move()方法:用于在画布上移动方法:用于在画布上移动指定图形。指定图形。绘制绘制图形前,先要导入

    8、图形前,先要导入tkinter模块、创建主模块、创建主窗口、创建画布并使画布可见。相关的语句汇总窗口、创建画布并使画布可见。相关的语句汇总如下。如下。from tkinter import *w=Tk()c=Canvas(w,width=300,height=200,bg=white)c.pack()12.2 画布绘图画布绘图12.2.1 绘制矩形绘制矩形1create_rectangle()方法方法画布画布对象提供对象提供create_rectangle()方法,用方法,用于在画布上创建矩形,其调用格式如下:于在画布上创建矩形,其调用格式如下:画布对象名画布对象名.create_rectan

    9、gle(x0,y0,x1,y1,属属性设置性设置)其中其中,(,(x0,y0)是矩形左上角的坐标,)是矩形左上角的坐标,(x1,y1)是矩形右下角的坐标。属性设置即对矩是矩形右下角的坐标。属性设置即对矩形的属性进行设置。形的属性进行设置。例如,下面的语句创建一个以(例如,下面的语句创建一个以(50,50)为左)为左上角、以(上角、以(200,100)为右下角的矩形。)为右下角的矩形。 c.create_rectangle(50,30,200,150)下面的语句再创建一个矩形,并将矩形标识号下面的语句再创建一个矩形,并将矩形标识号存入变量存入变量r中。中。 r=c.create_rectangl

    10、e(80,70,250,180,tags=Rect2) r22矩形对象的常用属性矩形对象的常用属性(1)矩形边框属性)矩形边框属性outline属性。矩形边框可以用属性。矩形边框可以用outline属性来属性来设置颜色,其默认值为黑色。如果将设置颜色,其默认值为黑色。如果将outline设设置为空串,则不显示边框,即透明的边框。置为空串,则不显示边框,即透明的边框。width属性。边框的宽度可以用属性。边框的宽度可以用width属性来属性来设置,默认值为设置,默认值为1像素。像素。dash属性。边框可以画成虚线形式,这需要属性。边框可以画成虚线形式,这需要用到用到dash属性,该属性的值是整数

    11、元组。属性,该属性的值是整数元组。最常最常用用的是二元组的是二元组(a,b),其中,其中a指定要画指定要画多少个像素,多少个像素,b指定要跳过多少个像素,如此重复,指定要跳过多少个像素,如此重复,直至边框直至边框画画完。若完。若a、b相等,可以简记为(相等,可以简记为(a,)。)。(2)矩形内部填充属性)矩形内部填充属性fill属性。矩形内部区域可以用属性。矩形内部区域可以用fill属性来设置属性来设置填充颜色,此属性的默认值是空串,效果是内部填充颜色,此属性的默认值是空串,效果是内部透明。透明。stipple属性。在填充颜色时,可以使用属性。在填充颜色时,可以使用stipple属性设置填充画

    12、刷,即填充的点刻效果,属性设置填充画刷,即填充的点刻效果,可以取可以取gray12、gray25、gray50、gray75等值。等值。(3)其他属性)其他属性矩形还有个属性矩形还有个属性state,用于设置图形的显,用于设置图形的显示状态。默认值是示状态。默认值是NORMAL或或normal,即正常,即正常显示。另一个有用的值是显示。另一个有用的值是HIDDEN或或hidden,它使矩形在画布上不可见。使一个图形在它使矩形在画布上不可见。使一个图形在NORMAL和和HIDDEN两个状态之间交替变化,两个状态之间交替变化,即形成闪烁的效果。注意,属性值用大写字母即形成闪烁的效果。注意,属性值用

    13、大写字母形式时,不要加引号,而用小写字母形式时,形式时,不要加引号,而用小写字母形式时,一定要加引号,下面还有这种情况,一定要加引号,下面还有这种情况,到时只列到时只列出出大写字母形式。大写字母形式。例例12-1 绘制图绘制图12-7所示的四个正方形所示的四个正方形。图图12-7 绘制四个绘制四个正方形正方形分析分析:利用画布的:利用画布的create_rectangle()方法绘方法绘制制正方形,注意设置属性和四个正方形正方形,注意设置属性和四个正方形之间的之间的位位置关系。置关系。tcost)3(sintytsint)3(costx例例12-2 绘制曲线绘制曲线分析分析:绘制函数曲线可采用

    14、计算出函数曲线的各个点的:绘制函数曲线可采用计算出函数曲线的各个点的坐标,将各点画出来,如果这些点足够密,坐标,将各点画出来,如果这些点足够密,绘出的曲线会绘出的曲线会比较光滑。画布对角没有提供画比较光滑。画布对角没有提供画“点点”的方法,但可以画的方法,但可以画一个很小的矩形来当作点。一个很小的矩形来当作点。,t0,10。12.2.2 绘制椭圆与圆弧绘制椭圆与圆弧1绘制椭圆绘制椭圆画布画布对象提供对象提供create_oval()方法,用于在画布上方法,用于在画布上画一个椭圆,其特例是圆。椭圆的位置和尺寸通过其外画一个椭圆,其特例是圆。椭圆的位置和尺寸通过其外接矩形决定,而外接矩形由左上角坐

    15、标(接矩形决定,而外接矩形由左上角坐标(x0,y0)和右)和右下角坐标(下角坐标(x1,y1)定义)定义。create_oval()方法的调用格式如下:方法的调用格式如下:画布对象名画布对象名.create_oval(x0,y0,x1,y1,属性属性设置设置)create_oval()的返回值是所创建椭圆的标的返回值是所创建椭圆的标识号,可以将标识号存入变量。识号,可以将标识号存入变量。和矩形类似,椭圆的常用属性包括和矩形类似,椭圆的常用属性包括outline、width、dash、fill、state和和tags等。画布对等。画布对象的象的itemconfig()方法、方法、delete()

    16、方法和方法和move()方法同样可用于椭圆的属性设置、删除和移动方法同样可用于椭圆的属性设置、删除和移动。例例12-3 创建图创建图12-10所示的圆和椭圆。所示的圆和椭圆。图图12-10 绘制圆和椭圆绘制圆和椭圆分析:利用画布的分析:利用画布的create_oval方法绘制方法绘制一个圆一个圆和两个椭圆,注意设置属性和三个图形和两个椭圆,注意设置属性和三个图形之间的之间的位置关系。位置关系。例例12-4 描绘地球绕太阳旋转的轨道。描绘地球绕太阳旋转的轨道。分析:分别创建一个椭圆和两个圆,并且为大圆分析:分别创建一个椭圆和两个圆,并且为大圆形涂上红色表示太阳,为小圆形涂上蓝色表示地形涂上红色表

    17、示太阳,为小圆形涂上蓝色表示地球球。2绘制圆弧绘制圆弧画布对象提供画布对象提供create_arc()方法,用于在方法,用于在画布上创建一个弧形。与椭圆的绘制类似,画布上创建一个弧形。与椭圆的绘制类似,create_arc()的参数是用来定义一个矩形的左的参数是用来定义一个矩形的左上角和右下角的坐标,该矩形唯一确定了一个上角和右下角的坐标,该矩形唯一确定了一个内接椭圆(特例是圆),而最终要画的弧形是内接椭圆(特例是圆),而最终要画的弧形是该椭圆的一段。该椭圆的一段。create_arc()方法的调用格式如下:方法的调用格式如下:画布对象名画布对象名.create_arc(x0,y0,x1,y1

    18、,属性属性设设置置)create_arc()的返回值是所创建的返回值是所创建的圆弧的的圆弧的标识号标识号,可以将标识号存入变量。,可以将标识号存入变量。弧形的开始位置由属性弧形的开始位置由属性start定义,其值为定义,其值为一个角度(一个角度(x轴方向为轴方向为0);弧形的结束位置由);弧形的结束位置由属性属性extent定义,其值表示从开始位置逆时针旋定义,其值表示从开始位置逆时针旋转的角度。转的角度。start属性的默认值为属性的默认值为0,extent属性属性的默认值为的默认值为90。显然,如果。显然,如果start设置为设置为0,extent设置为设置为360,则画出一个完整的椭圆,

    19、效,则画出一个完整的椭圆,效果和果和create_oval()方法一样。方法一样。属性属性style用于规定圆弧的样式,可以取三用于规定圆弧的样式,可以取三种值:种值:PIESLICE是扇形,即圆弧两端与圆心相连;是扇形,即圆弧两端与圆心相连;ARC是弧,即圆周上的一段;是弧,即圆周上的一段;CHORD是弓形,是弓形,即即弧加连接弧两端的弦。弧加连接弧两端的弦。Style的默认值的默认值是是PIESLICE。from tkinter import *w=Tk()c=Canvas(w,width=350,height=150,bg=white)c.pack()c.create_arc(20,40

    20、,100,120,width=2) #默认样默认样式是式是PIESLICEc.create_arc(120,40,200,120,style=CHORD,width=2)c.create_arc(220,40,300,120,style=ARC,width=2)弧形的其他常用属性弧形的其他常用属性outline、width、dash、fill、state和和tags的意义和默认值都和的意义和默认值都和矩形类似。注意只有矩形类似。注意只有PIESLICE和和CHORD形状形状才可填充颜色才可填充颜色。画布画布对象的对象的itemconfig()方法、方法、delete()方法、和方法、和move

    21、()办法同样可用于弧形的属性设置、删除和移动。办法同样可用于弧形的属性设置、删除和移动。例例12-5 创建图创建图12-13所示的扇叶图形所示的扇叶图形。12.2.3 绘制线条与多边形绘制线条与多边形1绘制线条绘制线条画布画布对象提供对象提供create_line()方法,用于在画方法,用于在画布上创建连接多个点的线段序列,其调用格式如布上创建连接多个点的线段序列,其调用格式如下:下:画布对象名画布对象名.create_line(x0,y0,x1,y1,,xn,yn,属性设置属性设置)create_line()方法将各点(方法将各点(x0,y0),),(x1,y1),,(,(xn,yn)按顺序

    22、用线条连接起来,)按顺序用线条连接起来,返回值是所创建的线条的标识号,返回值是所创建的线条的标识号,可以将标识号可以将标识号存入变量。存入变量。没有没有特别说明的话,相邻两点间用直接连特别说明的话,相邻两点间用直接连接,即图形整体上是一条折线。但如果将属性接,即图形整体上是一条折线。但如果将属性smooth设置成非设置成非0值,则各点被解释成值,则各点被解释成B样条曲样条曲线的顶点,图形整体是一条平滑的曲线。线的顶点,图形整体是一条平滑的曲线。线条线条不能形成边框和内部区域两部分,因不能形成边框和内部区域两部分,因此没有此没有outline属性,只有属性,只有fill属性,表示线条的属性,表示

    23、线条的颜色,其默认值为黑色。颜色,其默认值为黑色。线条可以通过属性线条可以通过属性arrow来设置箭头,该属来设置箭头,该属性的默认值是性的默认值是NONE(无箭头)。如果将(无箭头)。如果将arrow设置为设置为FIRST,则箭头在,则箭头在(x0,y0)两端;设置为两端;设置为LAST,则箭头在(,则箭头在(xn,yn)端;设置为)端;设置为BOTH,则两端都有箭头。则两端都有箭头。属性属性arrowshape用于描述箭头形状,其值用于描述箭头形状,其值为三元组(为三元组(d1,d2,d3),含义如图所示。默认),含义如图所示。默认值为(值为(8,10,3)。和和前面介绍的各种图形一样,线

    24、条还具前面介绍的各种图形一样,线条还具有有width、dash、state、tags等属性。画布等属性。画布对象的对象的itemconfig()方法、方法、delete()方法和方法和move()方法同样可用于线条的属性设置、删方法同样可用于线条的属性设置、删除和移动。除和移动。例例12-6 绘制绘制y=sin x sin(4x)曲线。曲线。2绘制多边形绘制多边形画布画布对象提供对象提供create_polygon()方法,用于方法,用于在画布上创建一个多边形。在画布上创建一个多边形。create_polygon()方方法的调用格式如下:法的调用格式如下:画布对象名画布对象名.create_p

    25、olygon(x0,y0,x1,y1,,属性设置属性设置)create_polygon()的返回值是创建多边形的的返回值是创建多边形的标识号,可以将标识号存入一个变量。标识号,可以将标识号存入一个变量。和和矩形类似,矩形类似,outline和和fill分别设置多边形分别设置多边形的边框颜色和内部填充色,但与矩形的边框颜色和内部填充色,但与矩形不同的是,不同的是,多边形的多边形的outline属性默认值为空串,属性默认值为空串,即边框不即边框不可见,而可见,而fill属性的默认值为黑色属性的默认值为黑色。与线条类似,一般用直线连接顶点,但如与线条类似,一般用直线连接顶点,但如果将属性果将属性sm

    26、ooth设置成非设置成非0值,则表示用值,则表示用B样条样条曲线连接顶点,这样绘制的是由平滑曲线围成曲线连接顶点,这样绘制的是由平滑曲线围成的图形。的图形。多边形的另几个常用属性多边形的另几个常用属性width、dash、state和和tags的用法都和矩形类似。画布对象的的用法都和矩形类似。画布对象的itemconfig()方法、方法、delete()方法和方法和move()方法方法同样可用于多边形的属性设置、删除和移动。同样可用于多边形的属性设置、删除和移动。例例12-7 用红、黄、绿三种颜色填充矩形用红、黄、绿三种颜色填充矩形。图图12-16 三种颜色填充的矩形三种颜色填充的矩形分析:先

    27、画矩形,再用红、黄、绿三种分析:先画矩形,再用红、黄、绿三种颜色分别颜色分别绘制三角形、平行四边形和三角形,绘制三角形、平行四边形和三角形,三个图形连三个图形连在一起填充矩形。在一起填充矩形。12.2.4 显示文本与图像显示文本与图像1显示文本显示文本画布画布对象提供对象提供create_text()方法,用于在画方法,用于在画布上显示一行或多行文本。与普通的字符串不同布上显示一行或多行文本。与普通的字符串不同,这里的文本被当作图形对象。这里的文本被当作图形对象。create_text()方法的调用格式如下:方法的调用格式如下:画布画布对象名对象名.create_text(x,y,属性设置属性

    28、设置)其中其中(x,y)指定文本显示的参考位置)指定文本显示的参考位置。create_text()的返回值是所创造的文本的的返回值是所创造的文本的标识号,标识号,可以将标识号存入变量中。可以将标识号存入变量中。文本文本内容由内容由text属性设置,其值就是要显示属性设置,其值就是要显示的字符串。字符串中可以使用换行字符的字符串。字符串中可以使用换行字符“n”,从,从而实现多行文本的显示。而实现多行文本的显示。anchor属性用于指定文本的哪个锚点与显示属性用于指定文本的哪个锚点与显示位置位置(x,y)对齐,通过锚点可以控制文本的相对位对齐,通过锚点可以控制文本的相对位置,例如,若将置,例如,若

    29、将anchor设置为设置为N,则将文本边界,则将文本边界框的顶边中点置于参考点(框的顶边中点置于参考点(x,y)。pfill属性用于设置文本的颜色,默认值为黑色。属性用于设置文本的颜色,默认值为黑色。如果设置为空串,则文本不可见。如果设置为空串,则文本不可见。justify属性用属性用于控制多行文本的对齐方式,其值为于控制多行文本的对齐方式,其值为LEFT、CENTER或或RIGHT,默认值为,默认值为LEFT。pwidth属性用于控制文本的宽度,超出宽度就要属性用于控制文本的宽度,超出宽度就要换行。换行。pFont属性指定文本字体。字体描述使用一个三属性指定文本字体。字体描述使用一个三元组,

    30、包含字体名称、大小和字形名称,例如元组,包含字体名称、大小和字形名称,例如(Times New Roman,10,bold)表示)表示10号号加黑新罗马字,(加黑新罗马字,(宋体宋体,12,italic)表示)表示12号号斜体斜体宋体。宋体。pstate属性、属性、tags属性的意义与其他图形属性的意义与其他图形对象相对象相同同。画布画布对象的对象的itemcget()和和intemconfig()方方法可用于读取或修改文本的内容,画布对象的法可用于读取或修改文本的内容,画布对象的delete()方法、方法、move()方法可用于文本的删除方法可用于文本的删除和移动。和移动。例例12-8 画布

    31、文本显示示例画布文本显示示例。2显示图像显示图像tkinter模块针对不同格式的图像文件有不同模块针对不同格式的图像文件有不同的显示方法,这里只介绍显示的显示方法,这里只介绍显示gif格式图像的方法。格式图像的方法。具体步骤如下。具体步骤如下。(1)利用)利用tkinter模块提供的模块提供的PhotoImage类来创类来创建图像对象,语句格式如下:建图像对象,语句格式如下:图形对象图形对象=PhotoImage(file=图像文件名图像文件名)其中,属性其中,属性file用于指定图像文件(支持用于指定图像文件(支持gif、png、bmp、pgm、ppm等格式),等格式),PhotoImage

    32、()返返回值是一个图像对象,可以用变量来引用回值是一个图像对象,可以用变量来引用这个对这个对象。象。(2)通过画布对象提供的)通过画布对象提供的create_image()方法方法在在画布画布上显示图像,方法的调用格上显示图像,方法的调用格式如下式如下:画布画布对象名对象名.create_image(x,y,image=图像对象图像对象,属性设置属性设置)其中其中,(x,y)是决定图像显示位置的参考点是决定图像显示位置的参考点。create_image()方法的返回值是所创建的图像在方法的返回值是所创建的图像在画布上的标识号,可以将标识号存入一个变量中。画布上的标识号,可以将标识号存入一个变量

    33、中。图像在画布上的位置由参考点(图像在画布上的位置由参考点(x,y)和)和anchor属性决定,具体设置与文本相同。可以属性决定,具体设置与文本相同。可以为图像设置属性为图像设置属性state、tags,意义与其他图形,意义与其他图形对象相同。画布对象的对象相同。画布对象的delete()方法、方法、move()方法同样可用于图像的删除和移动。方法同样可用于图像的删除和移动。例例12-9 假设有图像文件假设有图像文件e:mypythonpython.png,将该图像显示在,将该图像显示在画布中。画布中。12.3 图形的事件处理图形的事件处理画布画布及画布上的图形都是对象,都可以与操作及画布上的

    34、图形都是对象,都可以与操作事件绑定,这样用户可以利用键盘、鼠标来操作、事件绑定,这样用户可以利用键盘、鼠标来操作、控制画布和图形。控制画布和图形。例例12-10 在画布轮换交替显示两行文本,鼠标左在画布轮换交替显示两行文本,鼠标左键单击文本时替换一次,右键单击文本时隐藏文本键单击文本时替换一次,右键单击文本时隐藏文本,鼠标指针指向文本时使文本随机移动,鼠标指针指向文本时使文本随机移动。12.4.1 turtle绘图绘图1导入导入turtle模块模块使用使用turtle绘图,首先需要导入绘图,首先需要导入turtle模块,模块,有以下两种方法。有以下两种方法。 import turtle fro

    35、m turtle import *12.4 turtle绘图与绘图与Graphics图形库图形库2turtle绘图属性绘图属性turtle绘图有三个要素,分别是位置、方向绘图有三个要素,分别是位置、方向和画笔。和画笔。(1)位置是指箭头在)位置是指箭头在Turtle 图形窗口中的位置。图形窗口中的位置。(2)方向是指箭头的指向,使用)方向是指箭头的指向,使用left(degree)、right(degree)函数使得箭头分别向左、向右旋函数使得箭头分别向左、向右旋转转degree度。度。(3)画笔是指绘制的线条的颜色和宽度。)画笔是指绘制的线条的颜色和宽度。有关画笔控制函数如下。有关画笔控制函

    36、数如下。down():放下画笔,移动时绘制图形。这也:放下画笔,移动时绘制图形。这也是默认的状态。是默认的状态。up():提起画笔,移动时不绘制图形。:提起画笔,移动时不绘制图形。pensize(w)或或width(w):绘制图形时画笔的:绘制图形时画笔的宽度,宽度,w为一个正数。为一个正数。pencolor(s)或或color(s):绘制图形时画笔的颜:绘制图形时画笔的颜色,色,s是一个字符串,例如是一个字符串,例如red、blue、green分别表示红色、蓝色、绿色。分别表示红色、蓝色、绿色。fillcolor(s):绘制图形的填充颜色。:绘制图形的填充颜色。3turtle绘图命令绘图命令

    37、turtle绘图有着许多控制箭头运动的命令,绘图有着许多控制箭头运动的命令,从而绘制出各种图形。从而绘制出各种图形。goto(x,y):将箭头从当前位置径直移动到坐标:将箭头从当前位置径直移动到坐标为(为(x,y)的位置,这时当前方向不起作用,移)的位置,这时当前方向不起作用,移动后方向也不改变。如果想要移动箭头到(动后方向也不改变。如果想要移动箭头到(x,y)处理,但不要绘制图形,可以使用处理,但不要绘制图形,可以使用up()函数。例函数。例如,下列命令绘制一根水平直线。如,下列命令绘制一根水平直线。from turtle import *reset() #将整个绘图窗口清空并将箭头置于原点

    38、将整个绘图窗口清空并将箭头置于原点(窗口的中心)。(窗口的中心)。goto(100,0) #当前位置(当前位置(0,0)运动到运动到(100,0)位置位置forward(d):控制箭头向前移动,其中:控制箭头向前移动,其中d代表代表移动的距离。在移动前,需要设置箭头的位置、移动的距离。在移动前,需要设置箭头的位置、方向和画笔三个属性。方向和画笔三个属性。backward(d):与:与forward()函数相反,控制函数相反,控制箭头向后移动,其中箭头向后移动,其中d代表移动的距离。代表移动的距离。speed(v):控制箭头移动的速度,:控制箭头移动的速度,v取取0,10范围的整数,数字越大,速

    39、度越快。也可以范围的整数,数字越大,速度越快。也可以使用使用slow、fast来控制速度。来控制速度。例例12-11 绘制一个正方形。绘制一个正方形。程序如下:程序如下:from turtle import *color(blue) #定义绘制时画笔的颜色定义绘制时画笔的颜色pensize(5) #定义绘制时画笔的线条宽度定义绘制时画笔的线条宽度speed(10) #定义绘图的速度定义绘图的速度for i in range(4): #绘出正方形的四条边绘出正方形的四条边 forward(100) right(90)在在设置了绘图状态之后,控制箭头前进设置了绘图状态之后,控制箭头前进(forwa

    40、rd)一段距离,右转()一段距离,右转(right)90度,度,重重复四次即可。复四次即可。turtle模块还有一些内置函数,例如画圆的模块还有一些内置函数,例如画圆的函数函数circle(r),该函数以箭头当前位置为圆的底,该函数以箭头当前位置为圆的底部坐标,以部坐标,以r为半径画圆。为半径画圆。例例12-12 绘制三个同心圆。绘制三个同心圆。程序如下:程序如下:from turtle import *for i in range(3): up() #提起画笔提起画笔 goto(0,-50-i*50) #确定画圆的起点确定画圆的起点 down() #放下画笔放下画笔 circle(50+i*

    41、50) #画圆画圆12.4.2 Graphics图形库图形库1模块导入与图形窗口模块导入与图形窗口graphics模块文件(模块文件(graphics.py)可以从网)可以从网站站http:/mcsp.wartburg.edu/zelle/python下下载,下载后将载,下载后将graphics.py文件与用户自己的图形文件与用户自己的图形程序放在一个目录中,或者放在程序放在一个目录中,或者放在Python安装目录安装目录中即可。中即可。使用使用graphics绘图,首先要导入绘图,首先要导入graphics模模块,语句格式有如下两种。块,语句格式有如下两种。 import graphics

    42、from graphics import *其次其次,使用,使用graphics提供的提供的GraphWin()函函数创建一个图形窗口。在图形窗口中,设有标题数创建一个图形窗口。在图形窗口中,设有标题栏,以及最小化、最大化、关闭等按钮。例如:栏,以及最小化、最大化、关闭等按钮。例如: win=GraphWin()GraphWin()函数在屏幕上创建了函数在屏幕上创建了一个图形一个图形窗口窗口。graphics图形窗口也有各种属性,在调用图形窗口也有各种属性,在调用GraphWin()函数时可以提供各种参数。例如:函数时可以提供各种参数。例如: win=GraphWin(My Graphics

    43、Window,300,200)这这条语句的含义是在屏幕上创建一个窗口对条语句的含义是在屏幕上创建一个窗口对象,窗口标题为象,窗口标题为“My Graphics Window”,宽,宽度为度为300像素,高度为像素,高度为200像素。像素。窗口窗口操作结束后应该关闭图形窗口,关闭窗操作结束后应该关闭图形窗口,关闭窗口的函数调用方法为:口的函数调用方法为: win.close()2图形对象图形对象在在graphics模块中,提供了模块中,提供了GraphWin(图形窗口)、(图形窗口)、Point(点)、(点)、Line(直线)、(直线)、Circle(圆)、(圆)、Oval(椭圆)、(椭圆)、R

    44、ectangle(矩(矩形)、形)、Polygon(多边形)、(多边形)、Text(文本)等(文本)等类,利用类可以创建相应的图形对象。每个对类,利用类可以创建相应的图形对象。每个对象都是相应的类的实例,对象都具有自己的属象都是相应的类的实例,对象都具有自己的属性和方法(操作)。性和方法(操作)。(1)点)点graphics模块提供了模块提供了point类,用于在窗口中画类,用于在窗口中画点。创建点对象的语句格式为:点。创建点对象的语句格式为:p=Point(x坐标坐标,y坐标坐标) from graphics import * win=GraphWin() p=Point(100,50) p

    45、.draw(win) print(p.getX(),p.getY()100 50 p.move(20,30) print(p.getX(),p.getY()120 80此外,此外,Point对象还提供以下方法。对象还提供以下方法。pp.setFill():设置点:设置点p的颜色。的颜色。pp.setOutline():设置边框的颜色。对:设置边框的颜色。对Point对象来说,与对象来说,与setFill()方法没有区别。方法没有区别。pp.undraw():随藏对象:随藏对象p,即在图形窗口中,即在图形窗口中对象对象p变成不可见。注意,隐藏并非删除,对变成不可见。注意,隐藏并非删除,对象象p仍

    46、然存在,随时可以重新执行仍然存在,随时可以重新执行draw()。pp.clone():复制一个与:复制一个与p一模一样的对象。一模一样的对象。除了除了用字符串指定颜色之外,用字符串指定颜色之外,graphics模模块还提供了块还提供了color_rgb(r,g,b)函数来设置颜色,函数来设置颜色,其中的其中的r,g,b参数取参数取0255之间的整数,分之间的整数,分别表示红色、绿色、蓝色的数值,别表示红色、绿色、蓝色的数值,color_rgb()函数表示的颜色就是三种颜色混合以后的颜色。函数表示的颜色就是三种颜色混合以后的颜色。例如例如color_rgb(255,0,0)表示亮红色,表示亮红色

    47、,color_rgb(0,255,0)表示亮绿色。表示亮绿色。(2)直线)直线直线直线类类Line用于绘制直线。创建直线对象用于绘制直线。创建直线对象的语句格式为:的语句格式为:line=Line(端点端点1,端点端点2)其中其中,两个端点都是,两个端点都是Point对象。对象。和和Point对象一样,对象一样,Line对象也支持对象也支持draw()、undraw()、move()、setFill()、setOutline()、clone()等方法。此外,等方法。此外,Line对象还支持对象还支持setArrow()方法,用于为直线画箭方法,用于为直线画箭头头,setWidth()方法用于设

    48、置方法用于设置直线宽度。直线宽度。例例12-13 利用直线对象绘制一个正方形利用直线对象绘制一个正方形。(3)圆)圆圆圆类为类为Circle,创建圆形对象的语句格式,创建圆形对象的语句格式为:为:c=Circle(圆心圆心,半径半径)其中其中,圆心是,圆心是Point对象,半径是个数值。对象,半径是个数值。Circle对象同样支持对象同样支持draw()、undraw()、setFill()、setOutline、clone()、setWidth()等方法。此外,等方法。此外,Circle对象还支持对象还支持c.getRadius()方法,用于获取圆形对象方法,用于获取圆形对象c的半径。的半径

    49、。例例12-14 绘制三个同心圆,并且将它们填充不绘制三个同心圆,并且将它们填充不同颜色同颜色。(4)椭圆)椭圆椭圆椭圆类为类为Oval,创建椭圆对象的语句格式,创建椭圆对象的语句格式为:为:o=Oval(左上角左上角,右下角右下角)其中其中,左上角和右下角是两个,左上角和右下角是两个Point对象,对象,用于指定一个矩形,再由这个矩形定义一个内用于指定一个矩形,再由这个矩形定义一个内接椭圆。椭圆对象同样支持接椭圆。椭圆对象同样支持draw()、undraw()、move()、setFill()、setOutline()、clone()、setWidth()等方法。等方法。例例12-15 绘制

    50、四个相扣的圆,并且将它们绘制四个相扣的圆,并且将它们的边线设置成不同颜色,边线宽度相同。的边线设置成不同颜色,边线宽度相同。(5)矩形)矩形矩形矩形类为类为Rectangle,创建矩形对象的语句,创建矩形对象的语句格式为:格式为:r=Rectangle(左上角左上角,右下角右下角)其中其中,左上角和右下角是两个,左上角和右下角是两个Point对象,对象,用于指定矩形。用于指定矩形。矩形矩形对象同样支持对象同样支持draw()、undraw()、move()、setFill()、setOutline()、clone()、setWidth()等方法。此外,矩形还支持的等方法。此外,矩形还支持的方法

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python语言程序设计第12章-图形绘制-配源代码课件.pptx
    链接地址:https://www.163wenku.com/p-2494231.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库