资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第11章 图形操作,11.1 度量系统 11.2 坐标系统 11.3 绘图属性 11.4 图形控件 11.5 图形方法与事件 11.6 程序举例,2,VB提供了相当丰富的图形功能,既可通过图形控件进行图形操作,也可通过图形方法在窗体或图片框上输出文字或图形。灵活使用这些图形控件和图形方法,不仅可以完成许多特殊的功能,而且可以Windows的程序界面增加活力。,3,11.1 度量系统,VB使用的缺省度量单位是Twip(缇),1英寸等于1440Twip。 VB支持多种度量单位,以备不同度量的需要。 窗体、图片框或打印对象中的任何对象 必须使用它的ScaleMode属性来指定度量单位。每个窗体、图片框或打印对象的缺省度量单位都是Twip。,4,5,11.2 坐标系统,绘图语句所绘制的图形,通常是通过容器控件(窗体、图片框)输出的,而每个容器控件都有一个坐标系统,坐标系是在容器控件中绘图必备的条件。一个坐标系包括坐标度量单位、坐标原点、坐标轴的长度与方向等要素。由坐标的原点、长度和方向3个要素确定绘制的图形在容器中的位置。 VB坐标系统是以屏幕左上角为原点(0,0),而坐标轴x、y轴分别是以向右、向下方向增加。每个对象定位于存放它的“容器”中,对象的Top、Left属性确定了该对象左上角在“容器”中的位置。,6,对象的坐标系统允许由用户自定义,有2种方法用于坐标系统的定义。 1通过对象的ScaleTop、ScaleLeft、ScaleWidth和ScaleHeight属性来实现。 属性ScaleTop、ScaleLeft的值用于控制对象左上角坐标,所有对象的ScaleTop、ScaleLeft属性的缺省值为0,坐标原点在对象的左上角。当改变ScaleTop或ScaleLeft的值后,坐标系的x轴或y轴按此值平移形成新的坐标原点。,7,【例11.1】定义一个系统坐标,其原点为(0,0),使原点在窗体的中央位置。 程序代码如下: Private Sub Form_Load() Form1.ScaleLeft = -100 Form1.ScaleTop = 100 Form1.ScaleHeight = -200 Form1.ScaleWidth = 200 Line (0, 100)-(0, -100) Line (100, 0)-(-100, 0) End Sub,8,2采用Scale方法设置坐标系统 Scale方法是用户建立坐标系统最方便的方法,其格式如下: 对象Scale (xLeft,yTop) (xRight,yButton) 其中:对象可以是窗体、图片框或打印机。如果缺省该项,则指具有焦点的窗体对象。(xLeft,yTop)表示左上角的坐标值,(xRight,yButton)表示右下角的坐标值,均为单精度数值。,9,系统会根据给定的坐标参数自动计算出ScaleLeft、SclaeTop、ScaleWidth、ScaleHeight的值: ScaleLeft=xLeft ScaleTop=yTop ScaleWidth=xRight-xLeft ScaleHeight=yBotton-yTop 例如,Form1.Scale(-100,100) (100,-100)将建立与例11.1一样的坐标系。 任何时候在程序代码中Scale方法都能有效地和自然地改变坐标系统。当Scale方法不带参数时,则取消用户自定义的坐标系,而采用缺省坐标系。,10,11.3 绘图属性,1CurrentX、CurrentY属性 CurrentX、CurrentY属性给出在容器内绘图时的当前横坐标、纵坐标,这两个属性只能在程序中设置。CurrentX、CurrentY属性的设置格式: 对象 CurrentX =x 对象 CurrentY =y 功能:设置对象的CurrentX和CurrentY的值。,11,2DrawWidth(线宽)属性 窗体、图片框或打印机的DrawWidth属性给出这些对象上所画线的宽度或点的大小。 DrawWidth属性格式: 对象DrawWidth =n 功能:设置容器输出的线宽。 其中:n为数值表达式,其范围为132767,该值以像素为单位表示线宽。默认值为 ,即1个像素宽。,12,3DrawStyle(线型)属性 窗体、图片框或打印机的DrawStyle属性给出这些对象上所画线的形状。 以上线型仅当DrawWidth属性值为1时才能产生。当DrawWidth属性值大于1且DrawStyle属性值为14时,都只能产生实线效果。当DrawWidth的值大于1,而DrawStyle属性值为6时,所画的内收实线仅当是封闭线时起作用。,13,4AutoRedraw属性 AutoRedraw属性用于设置和返回对象或控件是否能自动重绘。 若AutoRedraw属性值为True时,使Form对象或PictureBox控件的自动重绘有效,否则对不接收重绘事件(Paint). 5FillStyle和FillColor属性 封闭图形的填充方式由FillStyle和FillColor属性决定。 FillColor属性指定填充图案的颜色,缺省的颜色ForeColor相同。FillStyle属性指定填充的图案,共有8种内部图案。,14,15,6色彩 VB默认采用对的前景色(ForeColor属性)绘图,也可通过以下方式指定。 (1)RGB函数 RGB函数通过红、绿、蓝3基色混合产生某种颜色,其函数格式为: RGB(a,b,c) 其中:a、b、c代表红、绿、蓝3色成分,取值范围为0255之间的整数。例如RGB(0,0,0)返回黑色,RGB(255,255,255)返回白色。 (2)QBColor函数 QBColor函数QuickBasic所使用的16种颜色,其函数格式为: QBColor(x) 其中:x称之为颜色代码,取值范围为015之间的整数,每个颜色代码代表一种颜色。,16,(3)用长整型代码 RGB函数与QBColor函数实际上都返回一个十六进制的长整数。这个数从左到右,每2位一组代表一种基色,它们的顺序是蓝绿红。因此也可直接使用6位的十六进制颜色代码。在色彩的属性设置框中可以看到这些代码(例如&H000000&表示黑色,&H0000FF&表示红色等)。,17,11.4 图形控件,VB提供了4个控件以简化与图形有关的操作,它们是PictureBox控件、Image控件、Shape控件、Line控件,每一个控件都适用于一个特定的目的。 Image、Shape和Line控件需要较少的系统资源,且包含PictureBox中可用的属性、方法和事件的子集,因此,比PictureBox控件显示得快。 图形控件的优点是,创建图形所用的代码比图形方法用的少。 VB提供的图片框和图像框可以显示位图、图标、图元文件中的图形,也可处理GIF和JPEG格式的图形文件。,18,1Line(直线)控件 在设计时可以用Line控件来画线,长度、宽度、颜色、虚实线等属性均可设置。 2Shape(形状)控件 Shape控件可用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形。当Shape控件放置到窗体时显示为一个矩形,通过Shape属性可确定所需的几何形状。,19,【例11.2】产生Shape控件的6种形状, 在窗体上添加一Shape控件,Index属性设置为0。 程序代码如下: Private Sub Form_Activate() Dim i As Integer, r As Integer r = 50 Print “ 0 1 2 3 4 5“ Shape1(0).Shape = 0: Shape1(0).FillStyle = 2 Shape1(0).FillColor = vbRed For i = 1 To 5 Load Shape1(i) Shape1(i).Left = Shape1(i - 1).Left + 600 Shape1(i).Shape = i Shape1(i).FillStyle = i + 2 Shape1(i).FillColor = RGB(r + i * 30, 0, 0) Shape1(i).Visible = True Next i End Sub,20,3PictureBox(图片框)控件 PictureBox控件的主要作用是为用户显示图片,也可作为其它控件的容器。实际显示的图片由Picture属性决定。Picture属性可设置被显示的图片文件名(包括可选的路径名)。在代码中可以LoadPicture()在图片框中装载图形文件,其格式如下: .Picture=LoadPicture(“图形文件名“) 为了在运行时从图片框中删除一个图片,可用以下方式实现: .Picture=LoadPicture(“),21,Picture控件不提供滚动条。也不能伸展被装入的图片以适应控件的大小,但是可以用图片框AutoSize属性调整图片框的大小以适应图片的大小。当AutoSize设置True时,图片框能够自动调整大小与显示的图片相匹配;当AutoSize设置False时,图片框不能自动调整大小来适应其中的图片,加载到图片框中的图片保持原始尺寸,这就意味着如果图片比图片框大,则超过的部分将被剪裁掉。,22,4Image(图像框)控件 在窗体上使用图像框的步骤与图片框相同,但是图像框比图片框占用更少的内存,描绘得更快,与图片框不同的是图像框内不能放置其它控件。 图像框没有AutoSize属性,但有Stretch属性。Stretch属性设置为False时,图像框可自动改变大小以适应其中的图片;Stretch属性设置为True时,加载到图像框的图片可自动调整尺寸以适应图像框的大小。如果图像框内装入的图形较大,在Forme比较小的情况下,图像框的边界会被窗体的边界截断。,23,11.5 图形方法与事件,1Pset方法 Pset方法用于画点,其格式如下: 对象Pset Step (x,y) ,颜色 功能:在由指定的容器内,在坐标为(x,y)的位置上画一个点;若省略,则默认为窗体。 说明:关键字Step表示采用当前作图位置的相对值;采用背景颜色可清除某个位置上的点;利用Pset方法可以画任意曲线。,24,【例11.3】利用Pset方法绘制阿基米德螺线。 程序代码如下: Private Sub Form_Resize() Dim i As Integer, j As Single Dim x As Single, y As Single DrawWidth = 2 For i = 0 To 5000 PSet (i, 600), vbRed Next i For j = 0 To 20 Step 0.01 y = 30 * j * Cos(j) + 600 x = 50 * j * Sin(j) + 1200 PSet (x, y), RGB(0, 0, 255) Next j End Sub,25,2Line方法 Line方法用于画直线或矩形,其格式如下: 对象名Line Step(x1,y1) - (x2,y2),颜色,BF 功能:在由指定的容器内,在坐标系中以(x1,y1)为起点,(x2,y2)为终点画一条线段或一个矩形。,26,说明: (1)(x1,y1)为线段的起点坐标或矩形的左上角坐标,(x2,y2)为线段的终点坐标或矩形的右上角坐标; (2)关键字Step表示采用当前作图位置的相对值; (3)“B”表示画矩形,“F”表示用画矩形的颜色来填充矩形。缺省F,则矩形的颜色由FillColor和FillStyle属性决定;,27,3Circle方法 Circle方法用于画圆、椭圆、圆弧或扇形,其格式如下: 对象名Circle Step
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号