单击以编辑母版标题样式,,单击以编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,Visual Basic,程序设计,9.1,图形处理,,9.2,多媒体应用,,9.3,示例,第9章 图形处理及多媒体应用,,Visual Basic,程序设计,作业,,实验,,掌握,,掌握,窗体的ScaleMode属性,,色彩常量,色彩函数,,绘图控件:shape和line,,绘图方法:Pset,Line,Circle,Cls,,图片框,图像控件,,鼠标事件:MouseDown,MouseUp,MouseMove,,鼠标事件过程参数:Button,Shift,X,Y,重点,绘图方法:,Pset,,Line,Circle,,Cls,,计算机的绘图和动画是一件奇妙且引人入胜的主题,Visual Basic下的图象处理技术,包括绘图,色彩,动画,三维空间,虚拟现实,甚至计算机仿真的基础听起来很诱人的东西往往需要大量不诱人的知识,本章是这些奇妙东西的入门VB可以利用绘图方法在窗体或某容器类对象上画图也可以用绘图控件画图其多媒体控件可以让你感受动画、声音等9.1 图形处理,,9.1 图形处理,1.VB 的坐标系统,,(1) VB坐标系,,系统坐标系(屏幕坐标),,容器坐标系统(“窗体坐标”),所以,:,窗体中调整、移动控件时,使用容器的坐标系统。
位置用,Left,Top,属性描述Left,表示控件左上角到窗体左边的距离,,,Top,表示控件左上角到窗体上边的距离9.1 图形处理,1.VB 的坐标系统,,,(2),改变默认坐标系,,利用到窗体的,Scale,系列属性,,ScaleLeft属性:确定对象左边的水平坐标;,,ScaleTop属性:确定对象顶端的垂直坐标;,,ScaleWidth属性:确定对象内部水平的单元数目;,,ScaleHeight属性:确定对象内部垂直的单元数目,如:ScaleLeft = -50 : ScaleTop = 50,,ScaleWidth = 100 : ScaleHeight = -100,,利用窗体的,Scale,方法,,,如:,Form1.Scale (-50, 50) - (50, -50),,,其中:前括号指左上角坐标,后括号指右下角坐标,,可读系统由控件的ScaleMode属性设置的ScaleMode的值有:,,ScaleMode值 意义,,0 用户自定义,,1 点素(Twip 即“特维”,缺省刻度),,2 点(Point),,3 象素(Pixel,这与屏幕分辨率有关),,4 字符(Character),,5 英寸(Inch),,6 毫米(Millimeter),,7 厘米(Centimeter),,,(3),刻度系统,9.1 图形处理,思考题:如将水平滚动条的最小值设置为0,最大值设置为255,应对其——属性要进行设置。
A left和top B width和height Csmallchange和largechange D min和max,,(1) 当前坐标,,•,对象:窗体、图形框等•,属性:CurrentX、CurrentY,该属性设计阶段不可用,,•,绝对坐标 :(x,y),,•,相对坐标:step ( x, y),,(2) 线宽,,• 窗体、图形框或打印机的DrawWidth属性给出这些对象上所画线的宽度或点的大小DrawWidth,属性以像素为单位来度量,最小值为12.,,绘图属性,9.1 图形处理,,(3) 线型(DrawStyle),2.,,绘图属性,9.1 图形处理,(4) 填充,,封闭图形的填充方式由以下两个属性决定:,,,FillColor,指定填充图案的颜色,缺省值与,ForeColor,相同,,FillStyle,属性指定填充的图案,共有8种内部图案DrawStyle设置值 线型,,0 实线,,1 长划线,,2 点线,,3 点划线,,4 点点划线,,5 透明线,,6 内实线,,VB采用对象前景色(ForeColor)来绘图,,•,,RGB函数,,格式:,RGB(红,绿,蓝),,其中: 红、绿、蓝三基色的成分使用0~255之间的整数,共有,,256×256,×256种颜色,,•,,QBColor函数,,格式:,QBColor(颜色码),,其中: 颜色码使用0~15之间的整数,共有16色,,例:Label1.forecolor=RGB(255,0,0),,Label1.forecolor=vbred,2.,,绘图属性,9.1 图形处理,(5) 色彩,,9.1 图形处理,3.使用绘图控件,,(1) Line控件:绘制直线,,属性:,BorderStyle:直线类型,8种,默认为1(实线) 见206页表,,BorderWidth:设置线宽,,BorderColor:设置线条颜色,,X1,Y1,X2,Y2:设置起始点和终止点的坐标,,,(2)Shape控件:,,属性:Shape,:设置图形的形状(参见P204表9.2),,,FillStyle:,设置填充样式,默认为1,,9.1 图形处理,(1) Pset方法:,用于画点,,格式:,[object.]Pset[Step](x,y)[,颜色],,,其中:objec 是用于绘图板的“容器”对象名,如在本窗体画点,可以省去,(x,y)为点的坐标;Step表示采用采用相对坐标;,,注:采用背景颜色可清除某个位置上的点。
4.绘图方法(点,线和圆),举例:PSet (1000, 1000), vbRed,,Picture1.PSet (1000, 2000), vbBlue,,PSet (1000, 1000),,PSet (1000, 1000), BackColor,,例9-3,在图片框上生成“,天女散花,”,Option Explicit,,Private Sub Command1_Click(),,Dim i As Integer,,For i = 1 To 30000,,Call draw,,Next i,,End Sub,,Private Sub Command2_Click(),,End,,End Sub,,Private Sub draw(),,Dim r As Integer, g As Integer, b As Integer,,Dim x As Single, y As Single,,Dim w As Integer, h As Integer,,Randomize,,r = Int(Rnd * 256),,,g = Int(Rnd * 256),,b = Int(Rnd * 256),,w = pic1.Width,,h = pic1.Height,,x = Int(Rnd * w),,y = Int(Rnd * h),,pic1.PSet (x, y), RGB(r, g, b),,End Sub,,9.1 图形处理,(2) Line方法,:,用于画直线或矩形,4.绘图方法,语法:,,[object.],Line,[[Step](x1,y1)] - [Step](x2,y2) [,Color],,说明:Color:指定画线颜色,,Step:用来指出要画出的点与前一点的相对位置,示例:绘制一个任意三角形,说明: Form1. CurrentX = 2000,,Form1. CurrentY = 2000,语法:,,[object.],Line,[[Step](x1,y1)] - [Step](x2,y2) [,Color],,,B[F],,说明:B:利用给定坐标画矩形.,(使用时其前两个逗号不可省)。
F:规定矩形的填充颜色,(,在使用B参数的前提下使用)例9-4,在窗体上画“三角形”,Private Sub Command1_Click(),,Line (1500, 500)-(2500,750),,Line -(1750, 1500),,Line -(1500, 500),,End Sub,,,9.1 图形处理,(3) Circle方法:,用于画圆、椭圆、圆弧和扇形,4.绘图方法,,画圆:,[对象.],Circle [Step](x,y),,半径[,,Color],[start],[end],[,aspect],参数,:,start:,指定弧的起点位置,默认值为0.,,,end,:,指定弧的终点位置,,默认值为2π.,,,Aspect:,,大于1时,椭圆沿垂直方向拉长;当小于1时,椭圆沿水平方向拉长默认值为1,将产生一个标准圆.,扇形:,start,和,end,均取负值,,9.1 图形处理,4.绘图方法,例1:,,Private Sub Command1_Click(),,,,form1.Circle (1200, 1000), 750, vbRed,,Circle,Step(0,0),,850, RGB(200, 0,255),,End Sub,,,例9-6,在窗体上画出一个扇形、圆,,Private Sub Form_Load(),,,Const PI = 3.14159,,Show,,Circle (2500, 1500), 1200, vbBlue, -PI, -PI/2,,Circle Step(-600, -600), 600,,5/25,End Sub,,,9.1 图形处理,5. 清除图形:[object.]cls,,6.在图形中加入文本:,,例:,currentX=1908,,currentY=1908,,Print”输出位置“,,比较记忆:点、线和圆的语法,,,,,点: [对象.]Pset[Step](x,y)[,颜色],,线: [对象.]Line [[Step](x1,y1)] - [Step](x2,y2) [,Color],,圆: [对象.] Circle [Step](x,y),半径[,Color],,,小结:设定坐标,利用绘图控件(方法)画画。
2001(春),,在,VB,中最基本的对象是( ),它是应用程序的基石,也是其他控件的容器A.,文本框,B.,命令按钮,C.,窗体,,D.,标签,,2000(秋),,能被对象所识别的动作与对象可执行的活动分别称为对象的( )A.,方法、事件,B.,事件、方法,,C.,事件、属性,D.,过程、方法,,2001(,春),,有程序代码:,Text1.Text="Visual Basic",,其中的,Text1、Text,和",Visual Basic",分别代表( )A.,对象、值、属性,B.,对象、方法、属性,,C.,对象、属性、值,,D.,属性、对象、值,,,,,,Visual Basic 等级试题,,9.1 图形处理,5. 使用图片框,1、使用picture属性显示图片,,2、使用loadpicture加载图片,,loadpicture([fname],[size],[coloredpth],[x,y]),,3、使用paintpicture方法,,[object.]paintpicture picture,dx,dy[,dw[,dh[,sx[,,,9.1 图形处理,5. Visual Basic的鼠标事件,VB系统除了能捕获Click和Dbl Click以外,还可以捕获鼠标按钮的按下、释放和移动。
即引发鼠标的MouseDown,MouseUp,MouseMove等事件9.1 图形处理,5. Visual Basic的鼠标事件,⑵鼠标事件使用的参数,,,MouseUp,(,Button,As Integer,,Shift,As Integer, X As Single, Y As Single),指示哪个鼠标键触发了鼠标事件,判断在按键的同时,是否按下了,Shift、Alt或Ctrl键,鼠标指针的位置,⑴ 鼠标事件及触发条件,,,MouseDown,事件,:按下任意鼠标按键时触发,,,MouseUp,事件,:释放任意鼠标按键时触发,,,MouseMove,事件,:鼠标移动过程中时触发,,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single),,If Button = vbRightButton Then Print “你按下鼠标右键",,If Button = vbLeftButton Then Print “你按下鼠标左键”,,End Sub,示例:检测用户按下了鼠标的哪个键?,5.VB的鼠标事件,9.1 图形处理,,1. 使用动画控件(Animation),,,(1) 功能,,用于播放无声的“.avi”的数字电影文件。
2) 添加部件,,部件——Microsoft Windows Common Controls-2 6.0,,,(3) 常用属性,,Center:,设为,True,,可确保播放的画面位于动画控件的中间位置Autoplay,:,用于设定已打开的动画文件的自动播放9.2 多媒体应用,VB中与多媒体有关的控件有两个,都是ActiveX控件一个是动画控件,另一个是媒体控制控件4) 常用方法,,Open,---,打开播放文件,,格式:,Object.Open,fname,,Play,----,用于进行播放,,格式:,Object.Play [repeat][,start][,end],,其中:,repeat:,重复播放的次数,,,start:,起始播放的桢;,end:,停止播放的桢,,例如:,animat1.play 5,9,24,1. 使用动画控件(Animation),,9.2 多媒体应用,表示:使用名为animat1的动画控件要把已打开的“.avi”文,,件的第 10幅画到第25幅画面重复播放5遍Stop,-----,停止播放,,一般形式:,Object.stop,,,Close,-----,关闭文件,,2. 多媒体控件,,(1)多媒体控件(Multimedia MCI),,,用于管理,控制各种MCI (Media Contol Interface )设备的控件。
它提供了一组控制按钮,可以通过这些按钮控制和管理声卡 、 CD-ROM、VCD播放器等设备2)添加部件,,第一步:工程/部件,,第二步:部件,,第三步:在“控件”列表框中选定,,Microsoft Multimedia Control 6.0,9.2 多媒体应用,,(3) 主要属性:,,,Enabled,:使该控件有效,,,Visible:,使该控件可见,,,DeviceType:,设置多媒体控件所要管理的设备类型,,,AutoEnable:,为True时,自动激活DeviceType所指定的设备FileName:,指定MCI所要使用的文件名称,,,Command:,在运行时使用,指定需要执行的MCI命令,,(4) MCI命令,,,它是通过一套高层的与设备无关的命令来控制多媒体设备的主要命令如表9-7所示(p223)格式:,Mmcontrol1.Command=“commandname”,,例如: Mmcontrol1.Command=“Open”,2. 多媒体控件,9.2 多媒体应用,,示例:交叉火力,请演示中的程序,,需要定时器:,,Private Sub Timer1_Timer(),,If mnuCtlMoveDemo.Checked And DoFlag = True Then,,CtlMoveDemo,,ElseIf mnuLineDemo.Checked And DoFlag = True Then,,LineDemo ‘交叉火力,,ElseIf mnuShapeDemo.Checked And DoFlag = True Then,,ShapeDemo,,ElseIf mnuPSetDemo.Checked And DoFlag = True Then,,PSetDemo,,……………………,,End If,,End Sub,,主要程序代码:,,Private Sub LineDemo(),,Dim X2,,Dim Y2,,R = 255 * Rnd,,G = 255 * Rnd,,B = 255 * Rnd,,X2 = Int(DemoForm.Width * Rnd + 1),,Y2 = Int(DemoForm.Height * Rnd + 1),,Line -(X2, Y2), RGB(R, G, B),,End Sub,示例:交叉火力,请演示中的程序,,作业,本章后练习题 第4,5,6,7题 (第224页),实验,实验13: 实验13-4 实验13-5 实验13-6,,实验13-7 (实验指导书),,。