《VisualBasic图形处理.ppt》由会员分享,可在线阅读,更多相关《VisualBasic图形处理.ppt(38页珍藏版)》请在金锄头文库上搜索。
1、第九章 Visual Basic图形处理第九章 Visual Basic图形处理9.1 图形操作基础 9.2 图形控件9.3绘图方法9.1 图形操作基础9.1.1 坐标系统 对象定位使用的是容器的坐标系,每个容器都有一个坐标系。坐标系由三要素构成:坐标原点,坐标度量单位(刻度),坐标轴的长度与方向。 9.1 图形操作基础1. 坐标原点与坐标轴方向 在默认的VB坐标系统中,原点(0,0)位于容器内部的左上角,X轴的正向水平向右,Y轴的正向垂直向下。对于窗体和图片框来说,这里所说的“容器内部”是指可以容纳其他控件并且可用于绘图的区域,该区域称为绘图区或工作区。绘图区不包括边框,窗体的绘图区还要将标
2、题栏和菜单栏(若有)除外。因此,窗体中控件的Left属性是指控件左上角到窗体绘图区左边的距离,Top属性是控件左上角到窗体绘图区顶边的距离。 9.1 图形操作基础2. 坐标刻度 坐标刻度即容器内坐标的度量单位。VB中默认的刻度为缇(1厘米约为567缇,1英寸约为1440缇)。刻度由窗体、图片框等容器对象的ScaleMode属性决定,该属性的设置值如表12.1所示,其中大于0的设置值称为标准刻度。9.1 图形操作基础ScaleMode属性的设置值 :9.1 图形操作基础3. 自定义坐标系 在实际应用中,有时可能需要改变坐标系的原点、坐标轴的方向或刻度,这时就要建立自己的坐标系。创建自定义坐标系可
3、以使用容器对象的属性,亦可使用它的方法。9.1 图形操作基础9.1.2 颜色设置颜色设置 1. 使用QBColor函数2. 使用RGB函数3. 使用VB系统颜色常数4. 使用颜色值9.1 图形操作基础9.1.3图形属性图形属性 1.线宽和线型DrawWidth属性用来返回或设置图形方法输出的线宽。 DrawStyle属性用来返回或设置图形方法输出的线型。该属性的设置值04的效果分别与Line控件的BordeStyle属性的15对应。若DrawWidth属性设置值大于1,在DrawStyle属性被设置为14时,只能画实线。 9.1 图形操作基础2.填充颜色与填充样式FillColor属性用于为L
4、ine和Circle方法生成的矩形和圆填充颜色。FillStyle属性用于为Line和Circle方法生成的矩形和圆指定填充的图案。该属性的设置值与Shape控件的FillStyle属性相同。 除Form对象外,若FillStyle属性被设置为默认值1(透明),则忽略FillColor属性的设置值。9.2 图形控件图形控件 9.2.1 图形框控件图形框控件 图形框控件(PictureBox)可以用来显示位图、JPGE、GIF、图标等格式的图片,在工具箱面板中,图形框控件的图标如图9-2所示。图形框的图片加载方式有两种,一是通过Picture属性选择需要加载的图片,二是通过LoadPicture
5、()函数实现。 9.2 图形控件图形控件9.2.2 图像框控件图像框控件 图像框控件(Image)是用来控制图形图像输出的,用户可以通过所建立的Image对象来指定图像文件贴在窗体的位置。 9.2 图形控件图形控件前面讲过,图形框与图像框的用法基本相同,但有以下区别:(1) 图形框是“容器”控件,可以作为父控件,而图像框不能作为父控件。也就是说,在图形框中可以包含其他控件,而其他控件不能“属于”一个图像框。图形框是一个“容器”,可以把其他控件放在该控件上,作为它的“子控件”。当图形框中含有其他控件时,如果移动图形框,则框中的控件也随着一起移动,并且与图形框的相对位置保持不变;图形框内的控件不能
6、移到图形框外。(2) 图形框可以通过Print方法接收文本,并可接收由像素组成的图形,而图像框不能接收Print方法输入的信息,也不能用绘图方法在图像框上绘制图形。每个图形框都有一个内部光标(不显示),用来批示下一个将被绘制的点的位置,这个位置就是当前光标的坐标,通过CurrentX和CurremY属性来记录。(3) 图像框比图形框占用的内存少,显示速度快。在用图形框和图像框都能满足需要的情况下,应优先考虑使用图像框。9.2 图形控件图形控件例题9-3:编写如下代码,在两个图像框中实现图像文件的交换,运行效果如图所示。9.2 图形控件图形控件Private Sub Form_Load()Ima
7、ge1.Picture = LoadPicture(C:Documents and SettingsAll UsersDocumentsMy Pictures示例图片Winter.jpg)Image2.Picture = LoadPicture(C:Documents and SettingsAll UsersDocumentsMy Pictures示例图片Sunset.jpg)End SubPrivate Sub Command1_Click()Image3.Picture = Image1.PictureImage1.Picture = Image2.PictureImage2.Pictu
8、re = Image3.PictureImage3.Picture = LoadPicture()End Sub9.2 图形控件图形控件9.2.3 直线控件和形状控件 直线控件(Line)是Visual Basic提供的画线工具。使用直线控件的方法与使用其他控件相同,单击工具箱中直线控件的图标,然后把鼠标移到窗体中所需的位置,按下鼠标左键拖拉到直线的终点,松开鼠标,即可完成直线的绘制。Line控件主要属性是BorderWidth、BorderStyle和BorderColor属性,以及x1、y1和x2、y2属性。BorderWidth确定线的宽度,BorderStyle确定线的形状,Borde
9、rColor确定线的颜色。x1、y1和x2、y2属性控制线的两个端点的位置。 9.2 图形控件图形控件 Shape控件可以用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形。将Shape控件添加到窗体时默认为矩形,通过Shape属性可确定所需要的几何形状。FillStyle属性为形状控件指定填充的图案,FillColor属性用于为形状控件着色。该控件也具有BorderWidth、BorderStyle和BorderColor属性,分别为边线的宽度、样式和颜色。9.3 绘图方法绘图方法 9.3.1 Line方法方法 Line方法用于在对象上画直线或矩形。画连接线时,前一条线的终点是后一条线的起点
10、。DrawWidth属性,决定了线的宽度。语法格式如下:对象.LineStep(x1,y1)-Step(x2,y2),颜色,BF9.3 绘图方法绘图方法 说明:(1)对象:可以是窗体或图片框,默认时为当前窗体。(2)(x1,y1):线段的起点坐标或矩形的左上角坐标。(3)(x2,y2):线段的终点坐标或矩形的右下角坐标。(4)Step:表示采用当前作图位置的相对值。(5)颜色:所绘制图形的颜色,可以使用RGB函数或QBColor参数指定。若省略,则使用对象的ForeColor属性值。(6)B:表示画矩形。(7)F:表示用画矩形的颜色来填充矩形,F必须与关键字B一起使用。如果只用B不用F,则矩形
11、的填充由对象当前的FillColor和FillStyle属性决定。画直线时,省略BF参数;画矩形时,参数B为空心矩形,BF为实心矩形。 9.3 绘图方法绘图方法 例题9-4:使用Line方法绘制柱状图,并用不同颜色进行填充。运行效果如图所示。9.3 绘图方法绘图方法 Private Sub Form_Load()ClsScale (0, 100)-(100, 0)Const x0 = 5Const y0 = 10Line (x0, y0)-(x0, 90) 绘制Y轴Line (x0, y0)-(90, y0) 绘制X轴Line (x0, 90)-(7, 87) 绘制Y轴箭头Line (x0,
12、90)-(3, 87)Line (90, 10)-(87, 12) 绘制X轴箭头Line (90, 10)-(87, 8)For i = 1 To 7绘制矩形并填充颜色FillStyle = iFillColor = RGB(255 - i * 20, 255 - i * 30, 255 - i * 10)Line (x0 + i * 10, y0 + i * 10)-(x0 + i * 10 + 6, y0), , BCurrentX = x0 + i * 10 - 1CurrentY = y0 + i * 10 + 8Print iNextEnd Sub9.3 绘图方法绘图方法 例题9-5
13、:使用Line方法绘制五角星。运行效果如图所示。9.3 绘图方法绘图方法 Private Sub Form_Load()ScaleMode = 3DrawWidth = 3Line (150, 30)-Step(-50, 110), RGB(255, 0, 0) 终点采用相对坐标Line -Step(120, -65), RGB(255, 0, 0) 以上次画线的终点为本次画线起点Line -Step(-140, 0), RGB(255, 0, 0)Line -Step(120, 65), RGB(255, 0, 0)Line -(150, 30), RGB(255, 0, 0) 返回最初的起
14、点End Sub9.3 绘图方法绘图方法 9.3.2 Pset方法方法 用于在窗体、图片框指定位置上画点,还可以为点指定颜色,利用Pset方法可画任意曲线。其语法格式如下:对象.Pset Step (x,y) ,Color9.3 绘图方法绘图方法 说明:(1)参数(x,y)为所画点的水平和垂直坐标。(2)Step表示采用当前作图位置的相对值。(3)Color为点的颜色。9.3 绘图方法绘图方法 例题9-6:选择适当颜色利用Pset方法绘制花型图案。运行效果如图所示。9.3 绘图方法绘图方法 Private Sub Form_Resize()ClsDim x As Single, y As Si
15、ngleDim r As Single, t As SingleConst pi = 3.1415926Scale (-50, 50)-(50, -50)For t = 0 To 2 * pi Step 0.0002r = 45 * Cos(6 * t)x = r * Cos(t)y = r * Sin(t)PSet (x, y), vbRedPSet (x * 0.5, y * 0.5), vbGreenPSet (x * 0.3, y * 0.3), vbBluePSet (x * 0.1, y * 0.1), vbYellowNext tEnd Sub9.3 绘图方法绘图方法 9.3.3
16、 Circle方法方法 Circle方法用于画圆、椭圆、圆弧和扇形,其语法格式如下:对象.Circle Step (x,y),半径 ,颜色,起始角,终止角,纵横比9.3 绘图方法绘图方法 说明:(1)对象:可以是窗体、图片框或打印机,省略时默认为当前窗体。(2)(x,y):为圆心坐标。(3)Step:表示采用当前作图位置的相对值。(4)颜色:指定圆周边线的颜色。若省略,则使用ForeColor属性值。可以使用所属对象的FillColor和FillStyle属性填充封闭的图形。(5)起始角和终止角:圆弧和扇形通过参数起始角、终止角控制。当起始角、终止角取值在02时为圆弧。当在起始角、终止角的取值
17、前加一负号时,画出扇形,负号表示从圆心到圆弧端点画径向线。(6)纵横比:控制画椭圆,默认值为1,此时为标准圆。9.3 绘图方法绘图方法 使用Circle方法时,如果想省掉中间的参数,逗号不能省略。例如:画椭圆省掉了颜色、起始角、终止角三个参数,则必须加上四个连续的逗号,它表明这三个参数被省掉了。几种常用格式如下:画圆:对象名.Circle(X,Y),半径,颜色例如:Me.Circle(100, 100), 70, RGB(255, 0, 0)画椭圆:对象名.Circle(X,Y),半径,颜色, , , 纵横比例如:Me.Circle(100, 100), 70, RGB(255, 0, 0),
18、 , , 0.5画弧线:对象名.Circle(X,Y),半径,颜色, 起始角, 终止角,纵横比例如:Me.Circle(100, 100), 70,RGB(255, 0, 0), 1/4 *3.14, 3/4*3.14, 1.5画扇形:对象名.Circle(X,Y),半径,颜色, -起始角, -终止角,纵横比例如:Me.Circle(100, 100), 70,RGB(255, 0, 0), 1/4 *3.14, -3/4*3.149.3 绘图方法绘图方法 例题9-7:用Circle方法完成各种圆形图案的绘制,并选择适当颜色进行填充。运行效果如图所示。9.3 绘图方法绘图方法 Private
19、Sub Form_Resize()Form1.Scale (-50, 50)-(50, -50)Form1.Circle (-20, 20), 10, vbRed 画一个圆心(-20, 20)半径10的红色的圆(默认空心)Form1.FillStyle = 0 设定填充模式为实心Form1.FillColor = vbBlue 设定填充色蓝色Form1.Circle (20, 20), 10, vbRed 下来画出来的就是填充了实心蓝色的圆了Form1.DrawWidth = 3 设定边框宽度为3Form1.Circle (-20, -20), 10, vbRed 这次绘制出来的圆边框粗细为3
20、Form1.DrawStyle = 5 设定边框不可见Form1.FillColor = vbRed 设定填充色红色Form1.Circle (20, -20), 10 这次绘制出来一个无边框、填充颜色是红色的圆End Sub9.3 绘图方法绘图方法 例题9-8:用Circle方法画圆、椭圆、圆弧和扇形。运行效果如图所示。9.3 绘图方法绘图方法 Private Sub Form_Resize() Const Pi = 3.1415926 Circle (800, 600), 400, RGB(255, 0, 0) 画圆 Circle (2000, 600), 400, RGB(255, 0,
21、 0), , , 1.5 画椭圆 Circle (3200, 600), 400, RGB(255, 0, 0), , , 0.5 Circle (1200, 2400), 900, RGB(255, 0, 0), Pi / 6, Pi 弧 Circle (1400, 2800), 900, , -Pi / 3, -Pi 空心扇形,起始角、终止角均为负值 FillColor = vbGreen 填充颜色 FillStyle = 0 DrawWidth = 3 Circle (3000, 2200), 700, vbRed, -Pi / 5, -Pi * 2 扇形 FillColor = vbY
22、ellow Circle Step(200, -60), 700, vbBlue, -Pi * 2, -Pi / 5End Sub9.3 绘图方法绘图方法 9.3.4 Point方法方法 Point方法用于返回窗体或图形框上指定点的RGB颜色值,其语法格式如下:对象名.Point(X, Y),其中X、Y为对象上某点的坐标。当(x,y)所确定的点不在对象上时,Point方法的返回值等于-1 。9.3 绘图方法绘图方法 例题9-9:用Point方法实现字体仿真。运行效果如图所示。9.3 绘图方法绘图方法Private Sub Form_Load()Picture1.Scale (0, 0)-(10
23、0, 100)Picture2.Scale (0, 0)-(100, 100)Picture1.Print POINT方法Dim i As Integer, j As Integer, color As LongFor i = 1 To 100For j = 1 To 100color = Picture1.Point(i, j)If mcolor = False Then Picture2.PSet (i, j), colorNext jNext iEnd Sub9.4 本章小结本章小结 本章对于Visual Basic中的图形处理技术进行了全面介绍,涉及的内容主要有坐标系的选择、颜色设定、常用图形控件、常用图形绘制方法等几个方面,对于每一个知识点都配合示例进行阐述。在实际应用中,要将这些知识点融会贯通,综合运用,才能达到程序设计的需求。