第9章图形处理及多媒体应用.ppt

上传人:sccc 文档编号:5932731 上传时间:2023-09-05 格式:PPT 页数:65 大小:481.54KB
返回 下载 相关 举报
第9章图形处理及多媒体应用.ppt_第1页
第1页 / 共65页
第9章图形处理及多媒体应用.ppt_第2页
第2页 / 共65页
第9章图形处理及多媒体应用.ppt_第3页
第3页 / 共65页
第9章图形处理及多媒体应用.ppt_第4页
第4页 / 共65页
第9章图形处理及多媒体应用.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《第9章图形处理及多媒体应用.ppt》由会员分享,可在线阅读,更多相关《第9章图形处理及多媒体应用.ppt(65页珍藏版)》请在三一办公上搜索。

1、2023/9/5,Visual Basic Programming,图形处理及多媒体应用 第9章,图形处理多媒体应用Points to Remember,2023/9/5,Visual Basic Programming,图形处理,利用VB除了可以处理数值型及文本型数据之外,还可以处理各种图形,比如可在窗体或其他容器类控件上绘制直线、圆、椭圆、矩形以及函数曲线等图形。为此,VB不仅提供了相应的控件,还提供了若干用于绘图的方法。坐标系统 色彩函数 使用绘图控件 使用绘图方法 使用图片框 应用鼠标事件,9.1,2023/9/5,Visual Basic Programming,坐标系统,在绘制图形

2、时,图形的大小与位置至关重要。不仅如此,窗体以及窗体中的各种控件对象在显示时,也有一个大小与显示位置的问题。这些均由坐标系统决定。VB规定了两种坐标系统:系统坐标系和容器坐标系 系统坐标系 容器坐标系,9.1.1,2023/9/5,Visual Basic Programming,系统坐标系,系统坐标系也称为“桌面(屏幕)坐标系”。它的原点位于屏幕左上角的象素处,即屏幕最左上角的象素的坐标值为(0,0),从原点出发,水平向左方向为X轴正方向;垂直向下为Y轴正方向。坐标系的单位为Twip(特维,1Twip=1/1440英寸)窗体在桌面上的显示位置及大小,就是由系统坐标系决定的(右图),2023/

3、9/5,Visual Basic Programming,容器坐标系,窗体以及图片框、框架等控件都可包容各种其他的控件对象,因此被称为“容器类对象”。当改变或移动容器类对象内部的控件的大小或位置时,则使用容器坐标系。容器坐标系的原点位于容器对象工作区最左上角的象素处,即该点的坐标值为(0,0),从原点出发,水平向左方向为容器坐标系X轴的正方向;垂直向下为容器坐标系Y轴的正方向。坐标系的单位仍为Twip若利用绘图方法在窗体或某容器类对象上绘图,均使用容器坐标系 容器坐标系的度量单位,2023/9/5,Visual Basic Programming,容器坐标系的度量单位,2023/9/5,Vis

4、ual Basic Programming,色彩函数,在设计时,可以通过属性窗口打开BackColor、ForeColor等与颜色有关的属性的调色板,进行设置,但要在程序运行时通过代码改变对象的色彩,则大多通过使用色彩常量或色彩函数来进行。色彩常量是系统内置的,可不加说明直接使用,如 Label1.ForeColor=vbRed 色彩函数的调用格式是:RGB(r,g,b)自变量r、g、b 分别为红色、绿色、兰色三种基本色的亮度等级、取值范围为0255。RGB函数可以根据r、g、b的设置值自动生成相应的色彩数据。例如,上面的示例可改为:Label1.ForeColor=RGB(255,0,0),

5、9.1.2,2023/9/5,Visual Basic Programming,使用绘图控件,绘图控件Shape和Line都仅用于在窗体或图片框控件内绘制图形或画线。绘制的图形或线段只能作为某种装饰,也就是说,绘出的图形不支持任何事件。Shape控件 Line控件,9.1.3,2023/9/5,Visual Basic Programming,Shape控件,Shape控件的主要属性 改变Shape属性的取值,可以绘制不同形状的图形 Shape属性的设置值 例9-1图形变换程序,2023/9/5,Visual Basic Programming,Shape控件的主要属性,2023/9/5,Vi

6、sual Basic Programming,Shape属性的设置值,2023/9/5,Visual Basic Programming,例9-1图形变换程序,本程序窗体中的图形的形状可在每次单击窗体时变换,图形的颜色则每运行一次程序就变换一次 程序代码,2023/9/5,Visual Basic Programming,Line控件,Line控件的常用属性 改变BorderStyle属性的取值,可以得到不同形式的划线 BorderStyle属性的各种设置值 例9-2转动的指针程序,2023/9/5,Visual Basic Programming,Line控件的常用属性,2023/9/5,V

7、isual Basic Programming,BorderStyle属性的各种设置值,2023/9/5,Visual Basic Programming,例9-2转动的指针程序,本程序的界面上有一个作为指针的红色细线,当单击窗体时,该细线就会绕着一个固定点旋转一周 程序代码,2023/9/5,Visual Basic Programming,使用绘图方法,使用绘图方法也可在窗体或图片框一类控件上绘图。绘图方法共有三种,分别是画点、划线和绘制圆与椭圆的方法。画点方法 划线方法 画圆或椭圆方法 清除图形 在图形中加入文本,9.1.4,2023/9/5,Visual Basic Programmi

8、ng,画点方法,画点实质是通过为指定象素设置颜色来实现的。画点方法的一般形式绘制点的大小取决于DrawWidth属性。若DrawWidth的值为1,则点的大小为一个象素,若DrawWidth的值大于1,则点的中心位于指定坐标。如果需要清除一个点,则只需将Color参数设为容器的背景色即可。例9-3画彩色点程序 例9-4清除标签文字程序,2023/9/5,Visual Basic Programming,画点方法的一般形式,Object.Pset Step(x,y),Color 其中,Object是用于绘图板的“容器”对象名;x、y分别是绘制点在容器坐标系中的水平坐标值与垂直坐标值,类型为单精度

9、型;Color用于指定绘制点的色彩。若在本窗体上画点,Object参数可以缺省;若不指定Color,则缺省颜色为当前设定的ForeColor颜色;可选的Step是由CurrentX和CurrentY属性所指定的图形当前位置的参数。,2023/9/5,Visual Basic Programming,例9-3画彩色点程序,右图是本程序执行后得到的画面。运行程序,将在图片框Pic1中填充30000个彩色点。点的位置是随机生成的,点的颜色也是随机生成的。程序代码,2023/9/5,Visual Basic Programming,例9-4清除标签文字程序,单击“清除”命令按钮,标签文字将逐渐消失。尽

10、管随机生成的点的位置有可能重复,但处理的点的个数达到对象范围内的总点数时,从视觉角度看,可以认为标签文字已被清除了。程序代码,2023/9/5,Visual Basic Programming,划线方法,划线方法既可以单个划线,也可以连续划线,还可以用于绘制矩形 划线方法的一般形式是:各个参数的意义 在窗体上绘制一个三角形 使用Step参数的最大好处是起点与终点的坐标可以采用与上一坐标点的相对值,这对于连续划线十分方便。使用Step参数在窗体上绘制三角形 利用Line方法绘制矩形,更为简便,只要给出矩形对角线两个端点的坐标,再加上一个B选项即可例9-5在窗体上绘制0360度的正弦函数曲线,Ob

11、ject.Line Step(x1,y1)-Step(x2,y2),Color,B F,2023/9/5,Visual Basic Programming,各个参数的意义,Object:对象名,在当前对象上划线则可缺省;第一个Step:可选项,用于指定由CurrentX与CurrentY属性所提供的当前图形起点坐标;(x1,y1):起点坐标;第二个Step:可选项,用于指定由CurrentX与CurrentY属性所提供的图形当前终点坐标;(x2,y2):必选项,终点坐标;Color:设置划线颜色的长整型数;B:可选项,用于绘制矩形,(x1,y1)、(x2,y2)分别用于指定矩形对角线的两个端点

12、的坐标;F:在使用B参数的前提下使用,用于指定对矩形以矩形边框的颜色进行填充。,2023/9/5,Visual Basic Programming,在窗体上绘制一个三角形,Private Sub Command1_Click()Line(1500,500)-(2500,750)Line-(1750,1500)Line-(1500,500)End Sub,2023/9/5,Visual Basic Programming,使用Step参数在窗体上绘制三角形,Private Sub Command1_Click()Line(1500,500)-Step(1000,250)Line Step(-75

13、0,750)Line Step(-250,-1000)End Sub,2023/9/5,Visual Basic Programming,例9-5在窗体上绘制0360度的正弦函数曲线,首先可使用Line方法绘制坐标系的两个坐标轴线,再依次求出每个自变量x对应的函数值y,使用Pset方法画点即可。根据自变量的变化范围,可使用循环实现。程序代码,2023/9/5,Visual Basic Programming,画圆或椭圆方法,画圆与椭圆的方法都是Circle,它的一般形式是:Circle方法既可用于画圆,也可用于画椭圆,还可以画圆弧 它的各个参数的意义 例9-6在窗体上画一个圆和一个圆弧 例9-

14、7绘制一个立体饼图,Object.Circle Step(x,y),Radius,Color,Start,End,Aspect,2023/9/5,Visual Basic Programming,各个参数的意义,Object:绘图容器的对象名,在当前对象上画图时可省略;Step:可选项,意义同Line方法;(x,y):x、y分别为绘制的圆的圆心或椭圆的中心水平与垂直坐标,单精度数;Radius:圆的半径或椭圆的长轴半径;Color:指定图形颜色的长整型数,如果缺省,则使用ForeColor属性规定的颜色;Start:在画圆弧时用于设置圆弧的起始弧度值;End:在画圆弧时用于设置圆弧的结束弧度值

15、;Aspect:在画椭圆时用于指定水平长度和垂直长度比的正浮点数。,2023/9/5,Visual Basic Programming,例9-6在窗体上画一个圆和一个圆弧,Private Sub Command1_Click()Const pi=3.14159265 DrawWidth=2 设置图形宽度 Circle(1000,1000),500,RGB(255,0,0)Circle(3000,1000),500,RGB(255,0,0),9-pi/2,9-pi/6End Sub,Private Sub Command1_Click()Const pi=3.14159265 DrawWidth

16、=2Circle(2000,1500),800,RGB(255,0,0),9-pi/2,9-pi/6 将圆心移位,绘出楔型部分Circle Step(100,9-150),800,RGB(255,0,0),9-pi/6,9-pi/2End Sub,2023/9/5,Visual Basic Programming,例9-7绘制一个立体饼图,立体饼图的主体就是一个椭圆,为了产生立体感,可连续绘制多条原始椭圆的弧线,弧线的中心与原始椭圆平行位移,如果再设置与原始椭圆边框不同的颜色,就会得到具有立体感的饼图程序代码,2023/9/5,Visual Basic Programming,Option E

17、xplicitPrivate Sub Command1_Click()Dim i As Integer,n As Single Const pi=3.14159265 FillStyle=4 用斜线填充 Circle(2000,1200),1500,RGB(0,0,255),0.5 For i=1 To 100 n=i*5 Circle(2000,1200+n),1500,RGB(0,120,255),pi,2*pi,0.5 Next iEnd Sub,2023/9/5,Visual Basic Programming,清除图形,使用Cls方法可以清除绘制的图形。Cls方法的一般使用形式是:O

18、bject.Cls 其中,Object是绘制图形所在的容器对象名。,2023/9/5,Visual Basic Programming,在图形中加入文本,在窗体、图片框中增加文字说明时,可使用容器控件的CurrentX与CurrentY属性指定文字输出的位置。CurrentX与CurrentY属性均为运行时属性。执行结果,就会在窗体指定位置输出指定的文字。,例如使用语句:CurrentX=1000CurrentY=1000 Print“输出位置”,2023/9/5,Visual Basic Programming,使用图片框,图片框不仅可用于绘制图形、显示各种图片或图象以及文本或数据,还经常被

19、用作其他控件的容器。使用图片框可以显示各种种类与格式的图形文件,如位图文件、图标文件、矢量图文件(又称元文件)等等,其中还包括jpeg格式和gif格式的文件。使用Picture属性显示图片 使用LoadPicture函数加载图片 使用PaintPicture方法,9.1.5,2023/9/5,Visual Basic Programming,使用Picture属性显示图片,在设计时可通过Picture属性为图片框加载图片。如果把图片框的AutoSize属性设为True,则图片框就能自动适应图片的大小了。如在图片框内还加入了其他控件对象,则加载的图片将作为背景位于这些控件的后面。当使用Pictu

20、re属性加载了图片之后,如果需要在图片框中另加载一个文件,则需要把原设置值用“Del”键删除,这时设置值将变为“(None)”。可以从其它绘图软件把一个图形或一幅图片剪切/复制再粘贴到图片框中,其效果与通过Picture属性加载完全相同。,2023/9/5,Visual Basic Programming,使用LoadPicture函数加载图片,此函数是专用于给窗体、图片框或图象控件的Picture属性赋值以加载图片,调用形式是:Fname是要加载的图片文件及其路径名,如果缺省,将清除图象或图片框控件;Size参数用以指定加载图片的大小;Colordepth参数用以指定图片的颜色深度;x、y用

21、以指定图片的最佳位置。在程序中加入如下的代码,即可将指定的文件加载到图片框Pic1中:Pic1.Picture=LoadPicture(“c:dmttest9city.bmp”),LoadPicture(Fname,Size,Colordepth,x,y),2023/9/5,Visual Basic Programming,使用PaintPicture方法,该方法可用于对加载到窗体或图片框中的图片进行处理。它的一般使用形式一个使用PaintPicture方法的简单程序示例Image(图象)控件也可以用于显示图片,但功能与应用范围远不及PictureBox控件。,2023/9/5,Visual

22、Basic Programming,PaintPicture方法的一般使用形式,Object是目标对象名,缺省则为当前窗体名;Picture是要处理的图片源,它必须是某窗体或某图片框的Picture属性;Dx、Dy用于指定在目标对象中图片的X、Y坐标值;Dw、Dh用于指定目标对象中图片的宽度与高度;Sx、Sy用于指定对欲处理的图片进行剪裁时,剪裁图片左上角的坐标值;Sw、Sh用于指定对欲处理的图片进行剪裁时,剪裁图片的宽度与高度;Op参数用于指定在目标对象上绘图时的光栅操作。当Dw或Dh使用负值时,可实现图片对象的水平或垂直翻转。,Object.PaintPicture Picture,Dx,

23、Dy,Dw,Dh,Sx,Sy,Sw,Sh,Op,2023/9/5,Visual Basic Programming,使用PaintPicture方法的程序示例,Private Sub Command1_Click()Picture1.PaintPicture Form1.Picture,2200,0,9-2200 End Sub,2023/9/5,Visual Basic Programming,应用鼠标事件,鼠标是图形界面下应用最多的输入与控制设备。当鼠标在对象上时,鼠标按钮的按下、释放或鼠标的移动,将引发鼠标的MouseDown、MouseUp及MouseMove事件。MouseDown、

24、MouseUp与MouseMove事件过程的一般形式 示例程序一示例程序二 示例程序三,9.1.6,2023/9/5,Visual Basic Programming,三事件过程的一般形式,Private Sub Object_MouseDown(Button As Integer,Shift As Integer,_X As Single,Y As Single)End Sub,Private Sub Object_MouseUp(Button As Integer,Shift As Integer,_X As Single,Y As Single)End Sub,Private Sub O

25、bject_MouseMove(Button As Integer,Shift As Integer,_X As Single,Y As Single)End Sub,2023/9/5,Visual Basic Programming,示例程序一,运行右面的示例程序代码,用户可在窗体上随意绘制直线。方法是先在直线起点处点击,接着再在直线终点点击,窗体上就会出现一条线段。利用这种方法,可在窗体上“画”出字来。示例程序代码,2023/9/5,Visual Basic Programming,示例程序二,利用下面的代码,即可在窗体上绘出若干个圆。只要在窗体任意位置上点击以下,就会以该点为中心出现一个

26、圆形示例程序代码,2023/9/5,Visual Basic Programming,示例程序代码,Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)Dim r As Single Randomize r=Int(Rnd*400)+100 Form1.Circle(X,Y),r End Sub,2023/9/5,Visual Basic Programming,示例程序三,可以将这三个事件综合起来使用。以下是微软公司提供的一个示例程序的程序代码。运行该程序,用户按住鼠标按键

27、拖动,即可在窗体上如同使用一个“刷子”一样绘制任意图形,放开鼠标按键,停止绘图。示例程序代码,2023/9/5,Visual Basic Programming,多媒体应用,在VB的控件工具箱中并没有与多媒体有关的控件,多媒体应用控件是以另一种形式提供的,这就是所谓的ActiveX控件,又称为“部件”。ActiveX控件,是利用Micrisoft公司的ActiveX技术开发的一类控件的总称。VB中与多媒体有关的ActiveX控件使用较多的有两个:一个是“媒体控制器(MCI)”控件,一个是“动画(Animation)”控件。使用动画控件 多媒体控件,9.2,2023/9/5,Visual Bas

28、ic Programming,使用动画控件,动画控件用于播放无声的.avi数字电影文件。利用它可通过播放有关应用程序的无声动画,提供应用程序的使用指导;也可用在对话框中显示出操作的时间长短和特征。在工具箱中添加动画控件 动画控件的Open、Play、Stop和Close方法 动画控件的常用属性,9.2.1,2023/9/5,Visual Basic Programming,在工具箱中添加动画控件,使用“工程/部件”命令打开“部件”对话框,在控件列表框中选定“Microsoft Windows Common Contral9-2 6.0”后(注意,必须在该控件名前面的方框内单击,并确认方框中出现

29、表示选中的标记“”),单击“确定”按钮即可。此时的工具箱中将会增加包括动画控件在内的几个新的控件按钮。,2023/9/5,Visual Basic Programming,动画控件的Open、Play、Stop和Close方法,使用动画控件播放无声.avi文件时,需要先使用Open方法打开要播放的文件;再使用Play方法进行播放;使用Stop方法可以停止播放,播放结束,应使用Close方法关闭文件。Open方法的一般形式 Play方法的一般形式 Stop与Close方法的一般形式 例9-8播放无声动画的程序,2023/9/5,Visual Basic Programming,Open方法的一般

30、形式,Open方法的一般形式是:Object.Open fname 其中Object是动画控件名,fname是欲打开播放的文件名。,2023/9/5,Visual Basic Programming,Play方法的一般形式,Play方法的一般形式是:Object.Play repeat,start,end Object是动画控件名;repeat:重复播放次数的正整数;start:起始播放的帧号,.avi文件由若干幅可以连续播放的画面组成,每一幅画面称为1帧,第1幅画面为第0帧,Play方法可以控制从指定的帧开始播放;end:停止播放的帧号。,2023/9/5,Visual Basic Prog

31、ramming,Stop与Close方法的一般形式,Object.Stop Object.Close,2023/9/5,Visual Basic Programming,例9-8播放无声动画的程序,窗体中包含有名为anim1的动画控件、三个分别名为cmdopen、cmdplay、cmdstop的命令按钮和一个名为Commondialog1的公共对话框控件。程序代码,2023/9/5,Visual Basic Programming,动画控件的常用属性,动画控件的常用属性有两个:Center和AutoPlay。Center属性用于设置动画播放的位置。由于动画控件并不提供专门的播放图文框,而用户播

32、放前可能并不了解动画每一帧的大小,所以动画的实际播放位置难以把握。如将Center属性设为True,则可确保播放的画面位于动画控件的中间位置;AutoPlay属性用于设定已打开的动画文件的自动播放。使用下面的程序代码可以获得与上述代码同等的执行效果:程序代码,2023/9/5,Visual Basic Programming,多媒体控件,多媒体控件是用于管理、控制各种MCI(Media Contral Interface媒体控制接口)设备的控件。MCI提供了应用程序与相关的多媒体设备进行通信的命令驱动机制,多媒体控件正是通过MCI实现多媒体文件的保存与播放。表9-6 MCI所支持的主要多媒体设

33、备 VB的多媒体控件从概念上说,就是提供了一组控制按钮,可以通过这些按钮控制如表所示的各种多媒体设备来记录或播放多媒体数据。向工具箱添加多媒体控件 使用多媒体控件,9.2.2,2023/9/5,Visual Basic Programming,表9-6 MCI所支持的主要多媒体设备,2023/9/5,Visual Basic Programming,向工具箱添加多媒体控件,多媒体控件与动画控件一样也属于“部件”,它的部件名为Microsoft Multimedia Contral 6.0(sp3);使用与添加动画控件同样的方法,即可将多媒体控件添加到控件工具箱。,2023/9/5,Visual

34、 Basic Programming,使用多媒体控件,在窗体中放置一个多媒体控件,看到的是如图9-19所示的画面。这是一组类似于一般的CD播放机的控制按钮,它们用于执行相关的MCI命令。但那些按钮可以使用以及多媒体控件能够提供什么样的功能,则都取决于计算机相应硬件与软件的具体配置。主要属性 MCI命令,2023/9/5,Visual Basic Programming,图9-19,2023/9/5,Visual Basic Programming,主要属性,Enabled与Visible属性 DeviceType与AutoEnable属性FileName属性 指定使用MCI的Open(打开)命

35、令或Save(保存)命令要打开或保存的文件名 Command属性 这是一个只能在运行时使用的属性,用于指定需要执行的MCI命令,2023/9/5,Visual Basic Programming,Enabled与Visible属性,多媒体控件尽管提供了如图9-19所示的可见的外观,但是由于多媒体控件主要是通过MCI命令机制工作的,而且给定的外观和控制多媒体数据录制或播放的具体需求未必一致,所以,完全可以不使用它们。此时只需将Enabled与Visible属性设置为False就可以了,2023/9/5,Visual Basic Programming,DeviceType与AutoEnable属

36、性,DeviceType属性用于在设计时或运行时设置多媒体控件所要管理控制的设备类型;当AutoEnable属性值为True时,多媒体控件可以根据DeviceType属性指定的设备类型,自动激活相关的控制按钮,用户也就可以为这些按钮编写程序代码。从多媒体控件的属性窗口可以看到,每一个控制按钮如Play、Back等都有独自的活动与可视属性PlayEnabled、PlayVisible、BackEnabled与BackVisible,当AutoEnable属性为True时,这些按钮的属性都无效,只有在AutoEnable为False时,这些按钮的设置才有效,2023/9/5,Visual Basi

37、c Programming,MCI命令,多媒体控件是通过一套高层次的与设备无关的命令来控制多媒体设备的。这套命令被称为MCI(Media Control Interface媒体控制接口)命令。表9-7是多媒体控件使用的MCI命令表 设多媒体控件名为Mmcontrol1,使用MCI命令的一般方式是:Mmcontrol1.Command=“commandname”式中,Command是多媒体控件的命令属性,commandname代表要执行的MCI命令。,2023/9/5,Visual Basic Programming,表9-7 多媒体控件使用的MCI命令表,2023/9/5,Visual Basic Programming,Points to Remember,坐标系的概念 色彩函数、图形控件与图形方法 图片框的应用 鼠标事件,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号