图形处理及多媒体应用.ppt_第1页
图形处理及多媒体应用.ppt_第2页
图形处理及多媒体应用.ppt_第3页
图形处理及多媒体应用.ppt_第4页
图形处理及多媒体应用.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2019/6/18,Visual Basic Programming,图形处理及多媒体应用 第9章,图形处理 多媒体应用 Points to Remember,2019/6/18,Visual Basic Programming,图形处理,利用VB除了可以处理数值型及文本型数据之外,还可以处理各种图形,比如可在窗体或其他容器类控件上绘制直线、圆、椭圆、矩形以及函数曲线等图形。为此,VB不仅提供了相应的控件,还提供了若干用于绘图的方法。 坐标系统 色彩函数 使用绘图控件 使用绘图方法 使用图片框 应用鼠标事件,9.1,2019/6/18,Visual Basic Programming,坐标系统,在绘制图形时,图形的大小与位置至关重要。不仅如此,窗体以及窗体中的各种控件对象在显示时,也有一个大小与显示位置的问题。这些均由坐标系统决定。 VB规定了两种坐标系统:系统坐标系和容器坐标系 系统坐标系 容器坐标系,9.1.1,2019/6/18,Visual Basic Programming,系统坐标系,系统坐标系也称为“桌面(屏幕)坐标系”。它的原点位于屏幕左上角的象素处,即屏幕最左上角的象素的坐标值为(0,0),从原点出发,水平向左方向为X轴正方向;垂直向下为Y轴正方向。坐标系的单位为Twip(特维,1Twip=1/1440英寸) 窗体在桌面上的显示位置及大小,就是由系统坐标系决定的(右图),2019/6/18,Visual Basic Programming,容器坐标系,窗体以及图片框、框架等控件都可包容各种其他的控件对象,因此被称为“容器类对象”。当改变或移动容器类对象内部的控件的大小或位置时,则使用容器坐标系。 容器坐标系的原点位于容器对象工作区最左上角的象素处,即该点的坐标值为(0,0),从原点出发,水平向左方向为容器坐标系X轴的正方向;垂直向下为容器坐标系Y轴的正方向。坐标系的单位仍为Twip 若利用绘图方法在窗体或某容器类对象上绘图,均使用容器坐标系 容器坐标系的度量单位,2019/6/18,Visual Basic Programming,容器坐标系的度量单位,2019/6/18,Visual 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),9.1.2,2019/6/18,Visual Basic Programming,使用绘图控件,绘图控件Shape和Line都仅用于在窗体或图片框控件内绘制图形或画线。绘制的图形或线段只能作为某种装饰,也就是说,绘出的图形不支持任何事件。 Shape控件 Line控件,9.1.3,2019/6/18,Visual Basic Programming,Shape控件,Shape控件的主要属性 改变Shape属性的取值,可以绘制不同形状的图形 Shape属性的设置值 例9-1图形变换程序,2019/6/18,Visual Basic Programming,Shape控件的主要属性,2019/6/18,Visual Basic Programming,Shape属性的设置值,2019/6/18,Visual Basic Programming,例9-1图形变换程序,本程序窗体中的图形的形状可在每次单击窗体时变换,图形的颜色则每运行一次程序就变换一次 程序代码,2019/6/18,Visual Basic Programming,Line控件,Line控件的常用属性 改变BorderStyle属性的取值,可以得到不同形式的划线 BorderStyle属性的各种设置值 例9-2转动的指针程序,2019/6/18,Visual Basic Programming,Line控件的常用属性,2019/6/18,Visual Basic Programming,BorderStyle属性的各种设置值,2019/6/18,Visual Basic Programming,例9-2转动的指针程序,本程序的界面上有一个作为指针的红色细线,当单击窗体时,该细线就会绕着一个固定点旋转一周 程序代码,2019/6/18,Visual Basic Programming,使用绘图方法,使用绘图方法也可在窗体或图片框一类控件上绘图。绘图方法共有三种,分别是画点、划线和绘制圆与椭圆的方法。 画点方法 划线方法 画圆或椭圆方法 清除图形 在图形中加入文本,9.1.4,2019/6/18,Visual Basic Programming,画点方法,画点实质是通过为指定象素设置颜色来实现的。 画点方法的一般形式 绘制点的大小取决于DrawWidth属性。若DrawWidth的值为1,则点的大小为一个象素,若DrawWidth的值大于1,则点的中心位于指定坐标。 如果需要清除一个点,则只需将Color参数设为容器的背景色即可。 例9-3画彩色点程序 例9-4清除标签文字程序,2019/6/18,Visual Basic Programming,画点方法的一般形式,Object.Pset Step(x, y), Color 其中,Object是用于绘图板的“容器”对象名;x、y分别是绘制点在容器坐标系中的水平坐标值与垂直坐标值,类型为单精度型;Color用于指定绘制点的色彩。若在本窗体上画点,Object参数可以缺省;若不指定Color,则缺省颜色为当前设定的ForeColor颜色;可选的Step是由CurrentX和CurrentY属性所指定的图形当前位置的参数。,2019/6/18,Visual Basic Programming,例9-3画彩色点程序,右图是本程序执行后得到的画面。运行程序,将在图片框Pic1中填充30000个彩色点。点的位置是随机生成的,点的颜色也是随机生成的。 程序代码,2019/6/18,Visual Basic Programming,例9-4清除标签文字程序,单击“清除”命令按钮,标签文字将逐渐消失。尽管随机生成的点的位置有可能重复,但处理的点的个数达到对象范围内的总点数时,从视觉角度看,可以认为标签文字已被清除了。 程序代码,2019/6/18,Visual Basic Programming,划线方法,划线方法既可以单个划线,也可以连续划线,还可以用于绘制矩形 划线方法的一般形式是: 各个参数的意义 在窗体上绘制一个三角形 使用Step参数的最大好处是起点与终点的坐标可以采用与上一坐标点的相对值,这对于连续划线十分方便。使用Step参数在窗体上绘制三角形 利用Line方法绘制矩形,更为简便,只要给出矩形对角线两个端点的坐标,再加上一个B选项即可 例9-5在窗体上绘制0360度的正弦函数曲线,Object.Line Step (x1, y1)- Step (x2, y2), Color, B F,2019/6/18,Visual Basic Programming,各个参数的意义,Object:对象名,在当前对象上划线则可缺省; 第一个Step:可选项,用于指定由CurrentX与CurrentY属性所提供的当前图形起点坐标; (x1, y1):起点坐标; 第二个Step:可选项,用于指定由CurrentX与CurrentY属性所提供的图形当前终点坐标; (x2, y2):必选项,终点坐标; Color:设置划线颜色的长整型数; B:可选项,用于绘制矩形, (x1, y1)、(x2, y2)分别用于指定矩形对角线的两个端点的坐标; F:在使用B参数的前提下使用,用于指定对矩形以矩形边框的颜色进行填充。,2019/6/18,Visual Basic Programming,在窗体上绘制一个三角形,Private Sub Command1_Click() Line (1500, 500)-(2500, 750) Line -(1750, 1500) Line -(1500, 500) End Sub,2019/6/18,Visual Basic Programming,使用Step参数在窗体上绘制三角形,Private Sub Command1_Click() Line (1500, 500)-Step(1000, 250) Line Step(-750, 750) Line Step(-250,-1000) End Sub,2019/6/18,Visual Basic Programming,例9-5在窗体上绘制0360度的正弦函数曲线,首先可使用Line方法绘制坐标系的两个坐标轴线,再依次求出每个自变量x对应的函数值y,使用Pset方法画点即可。根据自变量的变化范围,可使用循环实现。 程序代码,2019/6/18,Visual Basic Programming,画圆或椭圆方法,画圆与椭圆的方法都是Circle,它的一般形式是: Circle方法既可用于画圆,也可用于画椭圆,还可以画圆弧 它的各个参数的意义 例9-6在窗体上画一个圆和一个圆弧 例9-7绘制一个立体饼图,Object.Circle Step(x, y), Radius, Color, Start, End , Aspect,2019/6/18,Visual Basic Programming,各个参数的意义,Object:绘图容器的对象名,在当前对象上画图时可省略; Step:可选项,意义同Line方法; (x,y):x、y分别为绘制的圆的圆心或椭圆的中心水平与垂直坐标,单精度数; Radius:圆的半径或椭圆的长轴半径; Color:指定图形颜色的长整型数,如果缺省,则使用ForeColor属性规定的颜色; Start:在画圆弧时用于设置圆弧的起始弧度值; End:在画圆弧时用于设置圆弧的结束弧度值; Aspect:在画椭圆时用于指定水平长度和垂直长度比的正浮点数。,2019/6/18,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 / 6 End Sub,Private Sub Command1_Click() Const pi = 3.14159265 DrawWidth = 2 Circle (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 / 2 End Sub,2019/6/18,Visual Basic Programming,例9-7绘制一个立体饼图,立体饼图的主体就是一个椭圆,为了产生立体感,可连续绘制多条原始椭圆的弧线,弧线的中心与原始椭圆平行位移,如果再设置与原始椭圆边框不同的颜色,就会得到具有立体感的饼图 程序代码,2019/6/18,Visual Basic Programming,Option Explicit Private 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 i End Sub,2019/6/18,Visual Basic Programming,清除图形,使用Cls方法可以清除绘制的图形。Cls方法的一般使用形式是: Object.Cls 其中,Object是绘制图形所在的容器对象名。,2019/6/18,Visual Basic Programming,在图形中加入文本,在窗体、图片框中增加文字说明时,可使用容器控件的CurrentX与CurrentY属性指定文字输出的位置。CurrentX与CurrentY属性均为运行时属性。 执行结果,就会在窗体指定位置输出指定的文字。,例如使用语句: CurrentX = 1000 CurrentY = 1000 Print “输出位置”,2019/6/18,Visual Basic Programming,使用图片框,图片框不仅可用于绘制图形、显示各种图片或图象以及文本或数据,还经常被用作其他控件的容器。 使用图片框可以显示各种种类与格式的图形文件,如位图文件、图标文件、矢量图文件(又称元文件)等等,其中还包括jpeg格式和gif格式的文件。 使用Picture属性显示图片 使用LoadPicture函数加载图片 使用PaintPicture方法,9.1.5,2019/6/18,Visual Basic Programming,使用Picture属性显示图片,在设计时可通过Picture属性为图片框加载图片。 如果把图片框的AutoSize属性设为True,则图片框就能自动适应图片的大小了。 如在图片框内还加入了其他控件对象,则加载的图片将作为背景位于这些控件的后面。 当使用Picture属性加载了图片之后,如果需要在图片框中另加载一个文件,则需要把原设置值用“Del”键删除,这时设置值将变为“(None)”。 可以从其它绘图软件把一个图形或一幅图片剪切/复制再粘贴到图片框中,其效果与通过Picture属性加载完全相同。,2019/6/18,Visual Basic Programming,使用LoadPicture函数加载图片,此函数是专用于给窗体、图片框或图象控件的Picture属性赋值以加载图片,调用形式是: Fname是要加载的图片文件及其路径名,如果缺省,将清除图象或图片框控件; Size参数用以指定加载图片的大小; Colordepth参数用以指定图片的颜色深度; x、y用以指定图片的最佳位置。 在程序中加入如下的代码,即可将指定的文件加载到图片框Pic1中: Pic1.Picture = LoadPicture(“c:dmttest9city.bmp”),LoadPicture(Fname,Size,Colordepth,x,y),2019/6/18,Visual Basic Programming,使用PaintPicture方法,该方法可用于对加载到窗体或图片框中的图片进行处理。 它的一般使用形式 一个使用PaintPicture方法的简单程序示例 Image(图象)控件也可以用于显示图片,但功能与应用范围远不及PictureBox控件。,2019/6/18,Visual Basic Programming,PaintPicture方法的一般使用形式,Object是目标对象名,缺省则为当前窗体名; Picture是要处理的图片源,它必须是某窗体或某图片框的Picture属性; Dx、Dy用于指定在目标对象中图片的X、Y坐标值; Dw、Dh用于指定目标对象中图片的宽度与高度; Sx、Sy用于指定对欲处理的图片进行剪裁时,剪裁图片左上角的坐标值; Sw、Sh用于指定对欲处理的图片进行剪裁时,剪裁图片的宽度与高度; Op参数用于指定在目标对象上绘图时的光栅操作。 当Dw或Dh使用负值时,可实现图片对象的水平或垂直翻转。,Object.PaintPicture Picture, Dx, Dy, Dw, Dh,Sx,Sy,Sw,Sh,Op,2019/6/18,Visual Basic Programming,使用PaintPicture方法的程序示例,Private Sub Command1_Click() Picture1.PaintPicture Form1.Picture, 2200, 0,9-2200 End Sub,2019/6/18,Visual Basic Programming,应用鼠标事件,鼠标是图形界面下应用最多的输入与控制设备。当鼠标在对象上时,鼠标按钮的按下、释放或鼠标的移动,将引发鼠标的MouseDown、MouseUp及MouseMove事件。 MouseDown、MouseUp与MouseMove事件过程的一般形式 示例程序一 示例程序二 示例程序三,9.1.6,2019/6/18,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 Object_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single) End Sub,2019/6/18,Visual Basic Programming,示例程序一,运行右面的示例程序代码,用户可在窗体上随意绘制直线。方法是先在直线起点处点击,接着再在直线终点点击,窗体上就会出现一条线段。利用这种方法,可在窗体上“画”出字来。 示例程序代码,2019/6/18,Visual Basic Programming,示例程序二,利用下面的代码,即可在窗体上绘出若干个圆。只要在窗体任意位置上点击以下,就会以该点为中心出现一个圆形 示例程序代码,2019/6/18,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,2019/6/18,Visual Basic Programming,示例程序三,可以将这三个事件综合起来使用。以下是微软公司提供的一个示例程序的程序代码。运行该程序,用户按住鼠标按键拖动,即可在窗体上如同使用一个“刷子”一样绘制任意图形,放开鼠标按键,停止绘图。 示例程序代码,2019/6/18,Visual Basic Programming,多媒体应用,在VB的控件工具箱中并没有与多媒体有关的控件,多媒体应用控件是以另一种形式提供的,这就是所谓的ActiveX控件,又称为“部件”。 ActiveX控件,是利用Micrisoft公司的ActiveX技术开发的一类控件的总称。 VB中与多媒体有关的ActiveX控件使用较多的有两个:一个是“媒体控制器(MCI)”控件,一个是“动画(Animation)”控件。 使用动画控件 多媒体控件,9.2,2019/6/18,Visual Basic Programming,使用动画控件,动画控件用于播放无声的.avi数字电影文件。利用它可通过播放有关应用程序的无声动画,提供应用程序的使用指导;也可用在对话框中显示出操作的时间长短和特征。 在工具箱中添加动画控件 动画控件的Open、Play、Stop和Close方法 动画控件的常用属性,9.2.1,2019/6/18,Visual Basic Programming,在工具箱中添加动画控件,使用“工程/部件” 命令打开“部件”对话框,在控件列表框中选定“Microsoft Windows Common Contral9-2 6.0”后(注意,必须在该控件名前面的方框内单击,并确认方框中出现表示选中的标记“”),单击“确定”按钮即可。此时的工具箱中将会增加包括动画控件在内的几个新的控件按钮。,2019/6/18,Visual Basic Programming,动画控件的Open、Play、Stop和Close方法,使用动画控件播放无声.avi文件时,需要先使用Open方法打开要播放的文件;再使用Play方法进行播放;使用Stop方法可以停止播放,播放结束,应使用Close方法关闭文件。 Open方法的一般形式 Play方法的一般形式 Stop与Close方法的一般形式 例9-8播放无声动画的程序,2019/6/18,Visual Basic Programming,Open方法的一般形式,Open方法的一般形式是: Object.Open fname 其中Object是动画控件名,fname是欲打开播放的文件名。,2019/6/18,Visual Basic Programming,Play方法的一般形式,Play方法的一般形式是: Object.Play repeat,start,end Object是动画控件名; repeat:重复播放次数的正整数; start:起始播放的帧号,.avi文件由若干幅可以连续播放的画面组成,每一幅画面称为1帧,第1幅画面为第0帧,Play方法可以控制从指定的帧开始播放; end:停止播放的帧号。,2019/6/18,Visual Basic Programming,Stop与Close方法的一般形式,Object.Stop Object.Close,2019/6/18,Visual Basic Programming,例9-8播放无声动画的程序,窗体中包含有名为anim1的动画控件、三个分别名为cmdopen、cmdplay、cmdstop的命令按钮和一个名为Commondialog1的公共对话框控件。 程序代码,2019/6/18,Visual Basic Programming,动画控件的常用属性,动画控件的常用属性有两个:Center和AutoPlay。 Center属性用于设置动画播放的位置。由于动画控件并不提供专门的播放图文框,而用户播放前可能并不了解动画每一帧的大小,所以动画的实际播放位置难以把握。如将Center属性设为True,则可确保播放的画面位于动画控件的中间位置; AutoPlay属性用于设定已打开的动画文件的自动播放。使用下面的程序代码可以获得与上述代码同等的执行效果: 程序代码,2019/6/18,Visual Basic Programming,多媒体控件,多媒体控件是用于管理、控制各种MCI(Media Contral Interface媒体控制接口)设备的控件。MCI提供了应用程序与相关的多媒体设备进行通信的命令驱动机制,多媒体控件正是通过MCI实现多媒体文件的保存与播放。 表9-6 MCI所支持的主要多媒体设备 VB的多媒体控件从概念上说,就是提供了一组控制按钮,可以通过这些按钮控制如表所示的各种多媒体设备来记录或播放多媒体数据。 向工具箱添加多媒体控件 使用多媒体控件,9.2.2,2019/6/18,Visual Basic Programming,表9-6 MCI所支持的主要多媒体设备,2019/6/18,Visual Basic Programming,向工具箱添加多媒体控件,多媒体控件与动画控件一样也属于“部件”,它的部件名为Microsoft Multimedia Contral 6.0(sp3);使用与添加动画控件同样的方法,即可将多媒体控件添加到控件工具箱。,2019/6/18,Visual Basic Programming,使用多媒体控件,在窗体中放置一个多媒体控件,看到的是如图9-19所示的画面。这是一组类似于一般的CD播放机的控制按钮,它们用于执行相关的MCI命令。但那些按钮可以使用以及多媒体控件能够提供什么样的功能,则都取决于计算机相应硬件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论