ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:412.56KB ,
资源ID:10794142      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10794142.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第九章vb60图形程序设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第九章vb60图形程序设计.docx

1、第九章vb60图形程序设计第九章图形程序设计9.1 图形控件图形控件包括图片框控件、图像框控件、直线控件和形状控件4种,其中图片框和图像框是用来放置图片的,在第5章中已经介绍过,本节介绍另外两种图形控件。 9.1.1直线控件 直线控件用来创建直线。它的使用方法与其他控件相同,在工具箱中单击直线控件图标,将鼠标移动到窗体上,在所需位置开始拖动鼠标,拖动到合适处后释放鼠标,则在鼠标的拖动起点与终点之间就出现了一段直线,如图9.1所示。 单击直线可选中它,并且在直线的两端出现两个小方块。将鼠标指针移动到某个方块上,则指针变成一个十字形,此时拖动鼠标,可以更改该直线的长度与方向,如图9.2所示。也一可

2、以拖动鼠标来改变直线的位置。 直线控件的属性较其他控件要少得多,主要用来设置直线的宽度、颜色以及线型等。 只有直线的宽度为1(BorderWidth=1)时,BorderStyle属性的7个取值才都有效,否则BorderStyle属性的取值只有0和6有效。例如,直线的宽度为2时,不能将其设置为虚线。如图9.3所示的是各种线型的比较,从上到下,各直线控件的BorderStyle属性的值依次为16。 与其他控件不同的是,直线控件没有任何事件。因此,在程序运行时,它不能响应用户的任何操作。9.1.2 形状控件使用形状控件可以方便地在窗体上绘制出矩形、正方形、圆、椭圆、圆角矩形和圆角正方形等5种基本几

3、何图形。使用形状控件的方法与其他控件相同,这里不再赘述。 形状控件的Shape属性是它很主要的一个属性,该属性决定了形状控件所绘制图形的类型。表9.3中列出了Shape属性的值及含义。 形状控件也有BorderColor、BorderStyle和BorderWidth属性,且含义与直线控件相同。在默认情况下,使用图形控件绘制出的图形的背景是透明的,这是因为在默认情况下BackStyle属性的值为0透明).将该属性的值设置为l.即可在BaekColor属性中指定图形的背景颜色。 形状控件的另一个重要属性是Fi1lStyle属性,该属性用来决定图形的填充样式,表9.4中列出了它的取值及含义。 如果

4、图形的填充样式不是透明的,即Fi1lStyle属性的值不为l.则可以通过Fi1lColor属性设置图形的填充颜色。 图形的各种填充效果,从左到右各图形的Fil1StyIe属性的值依次为07。运行该程序,窗体如图9.7所示。单击【形状】设置区中的某单选按钮,则右边的图形就会变成所选的形状,单击【填充】设置区巾的某单选按钮,则图形就会以所选的样式填充。 如图9.8所示的是选中【椭圆】与【对角交叉线】单选按钮后的效果。9.2 坐标系统在VB中,控件放置在窗体或图片框等对象中,而窗体又放置在屏幕对象中,这些能够放置其他对象的对象称为容器,如窗体、图片框与屏幕都是容器。 每个容器都有一个坐标系统,以便为

5、对象的定位提供参考。容器坐标系统的默认设置是:容器的左上角为坐标的原点。横向向右为K轴的正方向,纵向向下为Y轴的正方向。如图9.9所示的是窗体对象的默认坐标系统。 坐标的度量单位由容器对象的ScaleMode属性决定,ScaleMode属性的值与对应的度量单位如表9.6所示。 对象的Left和Top属性决定了该对象左上角在容器内的坐标,Width和Height属性决定了对象的大小,它们的单位总是与容器的度量单位相同。如果改变了容器的度量单位,则这4个属性的值都会发生相应的变化,以适应新的坐标系统,对象的实际大小与位置并不会改变。 使用默认的坐标系统有时很不方便,用户可以根据具体的需要重新定义容

6、器的坐标系统。 属性ScaleWidth和ScaleHeight的值分别用来设置容器坐标系x轴与Y轴的正方向及最大坐标值。X轴的度量单位为容器当前宽度的1/ScaleWidth、Y轴的度量单位为对象当前宽度的1/ScaleHeight。如果ScaleWidth的值小于0,则x轴的正向向上;如果ScaleHeight的值小于0,则Y轴的正向向上。属性ScaleTop与ScaleLeft的值用来设置容器左上角的坐标。例如,将窗体的坐标属性设置为如表9.7所示,则对应的窗体坐标系统如图9.10所示,坐标原点定位在窗体的中点。 如果将窗体的坐标属性设置为如表9.8所示,则对应的窗体坐标系统如图9.11

7、所示,坐标原点定位在窗体的左下角,同时Y轴的正方向向上,这是符合人们习惯的一种坐标系统。 自定义坐标系统最简单的方法是使用Sacle方法,其语法如下: 对象.Scale(xl,y1),(x2,y2) 其中对象可以是窗体或图片框,参数(x1,y1)用来定义对象左上角的坐标值,参数(x2,y2)用来定义对象右下角的坐标值。 例如,如图9.50所示的坐标系统可以使用如下语句来定义: Scale(-50,-50),(50,50) 图9.11所示的坐标系统可以使用如下语句来定义: Scale(0,100),(100,0)9.3 绘图属性在对象(窗体或图片框)上绘制图形时,还需要设置对象的绘图属性以确定所

8、绘制图形的特征,例如所画线的宽度以及图形的填充样式等。 1.与CurrentX与CurrentY。 属性使用Print方法在窗体或图片框中显示文本时,文本总是出现在当前坐标处。例如,在默认情况下,第一次使用Print方法输出的文本显示在窗体的左上角。通过CurrentX与CurxentY属性可以指定当前坐标,这两个属性在设计时不可用。 例如: Private Sub Form_Click() Scale(0,100)-(100,0) 自定义坐标系统 For i=10 To 80 Step 10 Currenty = i 指定当前坐标 Currenty = i Print “清华大学” Next

9、End Sub 运行该程序,文本在窗体上的显示效果如图9.12所示,如果在代码中不使用CurrentX与CurrentY属性指定当前坐标,则窗体上文本的显示效果如图9.13所示。2.AutoRedraw属性。 如果AutoRedraw属性的值为True,则所绘制的图形是持久的。即当窗体被隐藏到其他窗口之后或调整了大小,使用Print方法显示的文本或使用图形方法绘制的图形都将重新显示。 如果AutoRedraw属性的值为False,则所绘制的图形是临时的。当窗体被隐藏到其他窗口之后或调整了大小,窗体上的文本或图形将被掩盖掉。例如,图9.14中(a)图所示的是在窗体上正常显示的图形和文本,(b)图

10、所示的是将另外一个窗体移动到该窗体上,然后再移走后的效果,可见,被另一窗体掩盖部分的图形和文本消失了。 AutoRedraw属性的默认值为False,在使用Print方法或图形方法时,最好将该属性的值设置为Ture。3.其他绘图属性。 表9.9中列出了窗体与图片框控件的其他绘图属性。9.4 定义颜色在VB中,颜色是以十六进制数表示的。例如,在【属性】窗口中设置BackColor与ForeColor等颜色属性时,出现的值总是一个十六进制数。以十六进制数来设置颜色既不方便也不直观,一般用户很难看出颜色与十六进制数的对应关系。为此,VB提供了一些颜色常数和颜色函数,使用它们可以方便直观地设置出想要的

11、颜色。 1.颜色常量。 如果程序中只需要使用8种基本颜色,则使用VB提供的颜色常量即可达到目的。这些常量所代表的颜色可以从它们的名字上看出。表9.11所示的是8种基本颜色与颜色常量的对应关系。 例如,要将窗体(名称为Form1)的背景色设置为红色,可以使用如下语句: Form1.BackColor=&HFF. 也可以使用颜色常数来设置,语句如下: Form.BackColor= VblRed2.QBColor函数 使用QBColor函数可以设置16种颜色,语法如下: QBColor(Color) 参数Color是一个015的整数,每个整数代表一种颜色,表9.12中列出了该参数的取值与对应的颜色

12、。 例如,下列语句的含义也是将窗体的背景色设置为红色。 Forml.BackColor=QBColor(4) 3.RGB函数。 使用颜色常量和QBColor函数只能指定一些基本的颜色,而使用RGB函数则可以指定几乎所有的颜色。RGB函数是通过指定红(Red)、绿(Green)、蓝(Blue)三原色的值来定义颜色的,其语法为: RGB(红、绿、蓝)。红、绿、蓝三原色的值均为0255之间的整数,颜色值的不同组合将产生不同的颜色,从理论上讲,三原色混合可以产生256256256种颜色。表9.13中列出了基本颜色与对应的RGB函数。 例如,使用RGB函数设置窗体背景色为红色的语句为: Forml.Ba

13、ckColor= RGB(255,0,0) 实际上,对于颜色的十六进制数,每两位一组代表一种原色的颜色值,最低两位为红色的值,其次是绿色和蓝色的值。例如,十六进制数&HOOFFOOFF对应RGB(255,0,255),因此,它表示的颜色为洋红色。9.5 图形方法图形方法是指窗体或图片框控件用于绘图的方法,其中包括Line方法、Circle方法、Pset方法以及PaintPicture方法等。使用这些方法可以绘制出直线、矩形、圆、椭圆、弧线、扇形、点以及各种曲线。 Line方法用于绘制直线或矩形,其语法格式如下: 对象.LineStep(xl,y1)1-Step(x2,y2),颜色,BF. 对象

14、可以是窗体或图片框控件,其中各参数的含义如下: Step:该参数是可选的,如果使用该参数,则表示起点坐标(x1, y1)或终点坐标(x2, y2)是相对当前点( CurrentX,CurrentY)的,而不是相对坐标原点的。 (x1,y1):用于指定直线的起点,也是可选的,如果省略则起点为当前点(CurrentX,CuxrerttY)。 (x2, y2)用于指定直线的终点。 颜色:可选的。用于指定所绘制的图形的颜色,可以使用RGB函数或QBColor参数指定颜色。如果省略,则使用对象(窗体或图片框)当前的ForeColor属性指定的颜色。 B:可选的。如果使用该参数,则绘制出的是矩形。其中(x

15、1,y1)是指矩形左。上项点的坐标,(x2,y2)是指矩形右下顶点的坐标。 F:可选的。只有使用了参数B后才能使用该参数。如果使用该参数则矩形以指定的颜色填充;省略F时,矩形以对象当前的FiilColor与Fi1lStyle属性的设置填充。实例9.3使用Line方法。 使用Line方法绘制一个柱状图表,每个柱的填充颜色与样式都不同,并且在柱的正上方标有柱的长度,如图9.15所示。 程序代码如下: Private Sub Form_Resize() Const x0=15 Const y0=20 Cls Scale (0,100)-(100,0) 自定义坐标系统 Line (x0,y0)-(x0

16、,90) 绘制Y轴 Line (x0,y0)-(90,yo) 绘制x轴 For i=10 To 70 Step 10 FillStyle=i/10 设置填充样式 FillStyle=QBColor(i / 10 - 1) 设置填充颜色 Line(x0 + i,y0+i)-(x0+i+6,yo), , B 绘制矩形 CurrentX=x0+i-1 CueeentY=y0+i+8 Print NextEnd Sub 在该段代码中,常量x0和y0是柱状图表的坐标原点,定义这两个常量的好处在于;只要改变这两个常量的值,即可确定图表在窗体中的位置。例如,将x0与y0的值分别设置为15和20,则图表在窗体

17、中的位置如图9.16所示。改变窗体的大小后,图表会随着窗体的大小自动缩放,如图9.17所示。 实例9.3产生渐变背景。 许多Windows应用程序的安装界面,是以一个颜色由蓝至黑的渐变窗体为背景的。使用VB产生窗体背景色的渐变效果很简单,基本思想是:在窗体中从上至下依次绘制多个矩形,只要有足够多的矩形,同时使它们的填充色从蓝变化到黑,就能很好地模拟出渐变效果了。代码如下: Prinvate Sub Gradient(TheObject As Object,Redval,Greenval,Blueval) Dim Step,i,T,L,R,B Step=(TheObject.Height/60)

18、 T=0 L=0 R=TheObject.width B=T+Step For i=1 To 60 TheObject.Line(L,T)-(R,B),RGB(Redval,Greenval,Blueval),BF Redval = Readval - 4 Greenval = Greenval - 4 Blueval=Blueval-4 If Readval =0 Then Readval =0 If Greenval=0 Then Greenval=0 If Blueval =0 Then Blueval =0 T=B B=B+Step NextEnd SubPrivate Sub For

19、m_Resize() Gradient Forml,0,0,255End Sub 首先定义了一个名为Gradient的子过程,在该子过程中,使用了For循环语句来实现在窗体中从上至下依次绘制60个矩形,其中的Line方法是用来绘制矩形的,变量L与T为矩形左上顶点的坐标,R与B为矩形右下顶点的坐标,变量Redval, Greenval, Blueval分别表示红、绿、蓝三原色的值。 在窗体的Resize事件中,以参数Fvrrnl(窗体名)和颜色值(0,0,255)调用子过程Gradient,运行程序后,即可看到窗体具有由蓝至黑的渐变背景。若以其他颜色值调用该函数,则可得到其他颜色的渐变背景。改变

20、窗体的大小,渐变色会随着充满整个窗体(要将窗体的AutoRedraw属性设置为True)。9.5 图形方法图形方法是指窗体或图片框控件用于绘图的方法,其中包括Line方法、Circle方法、Pset方法以及PaintPicture方法等。使用这些方法可以绘制出直线、矩形、圆、椭圆、弧线、扇形、点以及各种曲线。 Line方法用于绘制直线或矩形,其语法格式如下: 对象.LineStep(xl,y1)1-Step(x2,y2),颜色,BF. 对象可以是窗体或图片框控件,其中各参数的含义如下: Step:该参数是可选的,如果使用该参数,则表示起点坐标(x1, y1)或终点坐标(x2, y2)是相对当前

21、点( CurrentX,CurrentY)的,而不是相对坐标原点的。 (x1,y1):用于指定直线的起点,也是可选的,如果省略则起点为当前点(CurrentX,CuxrerttY)。 (x2, y2)用于指定直线的终点。 颜色:可选的。用于指定所绘制的图形的颜色,可以使用RGB函数或QBColor参数指定颜色。如果省略,则使用对象(窗体或图片框)当前的ForeColor属性指定的颜色。 B:可选的。如果使用该参数,则绘制出的是矩形。其中(x1,y1)是指矩形左。上项点的坐标,(x2,y2)是指矩形右下顶点的坐标。 F:可选的。只有使用了参数B后才能使用该参数。如果使用该参数则矩形以指定的颜色填

22、充;省略F时,矩形以对象当前的FiilColor与Fi1lStyle属性的设置填充。实例9.3使用Line方法。 使用Line方法绘制一个柱状图表,每个柱的填充颜色与样式都不同,并且在柱的正上方标有柱的长度,如图9.15所示。 程序代码如下: Private Sub Form_Resize() Const x0=15 Const y0=20 Cls Scale (0,100)-(100,0) 自定义坐标系统 Line (x0,y0)-(x0,90) 绘制Y轴 Line (x0,y0)-(90,yo) 绘制x轴 For i=10 To 70 Step 10 FillStyle=i/10 设置填充

23、样式 FillStyle=QBColor(i / 10 - 1) 设置填充颜色 Line(x0 + i,y0+i)-(x0+i+6,yo), , B 绘制矩形 CurrentX=x0+i-1 CueeentY=y0+i+8 Print NextEnd Sub 在该段代码中,常量x0和y0是柱状图表的坐标原点,定义这两个常量的好处在于;只要改变这两个常量的值,即可确定图表在窗体中的位置。例如,将x0与y0的值分别设置为15和20,则图表在窗体中的位置如图9.16所示。改变窗体的大小后,图表会随着窗体的大小自动缩放,如图9.17所示。 实例9.3产生渐变背景。 许多Windows应用程序的安装界面

24、,是以一个颜色由蓝至黑的渐变窗体为背景的。使用VB产生窗体背景色的渐变效果很简单,基本思想是:在窗体中从上至下依次绘制多个矩形,只要有足够多的矩形,同时使它们的填充色从蓝变化到黑,就能很好地模拟出渐变效果了。代码如下: Prinvate Sub Gradient(TheObject As Object,Redval,Greenval,Blueval) Dim Step,i,T,L,R,B Step=(TheObject.Height/60) T=0 L=0 R=TheObject.width B=T+Step For i=1 To 60 TheObject.Line(L,T)-(R,B),RG

25、B(Redval,Greenval,Blueval),BF Redval = Readval - 4 Greenval = Greenval - 4 Blueval=Blueval-4 If Readval =0 Then Readval =0 If Greenval=0 Then Greenval=0 If Blueval =0 Then Blueval =0 T=B B=B+Step NextEnd SubPrivate Sub Form_Resize() Gradient Forml,0,0,255End Sub 首先定义了一个名为Gradient的子过程,在该子过程中,使用了For循环

26、语句来实现在窗体中从上至下依次绘制60个矩形,其中的Line方法是用来绘制矩形的,变量L与T为矩形左上顶点的坐标,R与B为矩形右下顶点的坐标,变量Redval, Greenval, Blueval分别表示红、绿、蓝三原色的值。 在窗体的Resize事件中,以参数Fvrrnl(窗体名)和颜色值(0,0,255)调用子过程Gradient,运行程序后,即可看到窗体具有由蓝至黑的渐变背景。若以其他颜色值调用该函数,则可得到其他颜色的渐变背景。改变窗体的大小,渐变色会随着充满整个窗体(要将窗体的AutoRedraw属性设置为True)。9.5.2 Circle方法Circle方法用于绘制圆、椭圆、扇形

27、或弧,其语法格式如下: 对象。CircleStep(x,y),半径,颜色,起始角,终止角了长短轴比率. 对象可以是窗体或图片框控件,其中各参数的含义如下: Step:该参数是可选的,如果使用该参数,则表示圆心坐标(x,y)是相对当前点(CurrentX,CurrentY)的,而不是相对坐标原点的。 (x,y):用于指定圆的圆心,也是可选的,如果省略则圆心为当前点(CurrentX,GurrentY)。 半径:用于指定圆的半径,对于椭圆来讲,该值是椭圆的长轴长度。 颜色:指定所绘制图形的颜色。 起始角、终止角:用来指定圆弧或扇形的起始角度与终止角度,单位为弧度。取值范围为02时,绘制的是圆弧:给

28、起始角与终止角取值前添加一个负号,则所绘制的是扇形,负号表示绘制圆心到圆弧的径向线。省略这两个参数,则所绘制的是圆或椭圆。 VB规定,从起始角按逆时针方向绘制圆弧只到终止角处,水平向右方向为0度,且与坐标系统无关,如图9.18所示。 长短轴比率:当需要绘制椭圆时,可使用该参数指定椭圆长短轴的比率。若值大于1,则所绘制的是竖立的椭圆;若值小于1,则所绘制的是扁平的椭圆。该值的缺省值为1,即省略时绘制的是圆。例如,使用下列语句绘制出的各种图形如图9.19所示。 Const pi=3.1415926Private Sub Form_Click() Scale (-100,100)-(100,-100

29、) Circle(-50,50),30 Circle(50,50),30,vbRed,2 Circle(50,50),30,vbRed,0.5 Circle(-50,-50),30,vbBlue,pi/6,1.5*pi Circle(50,-50),30,vbYellow,-pi/6,-5/6*piEnd Sub实例9.4绘制太极图 使用Circle方法绘制出如图9.20所示的太极图。 代码如下: Const pi=3.1415926Sub Tjt(x,y,r) FillStyle=1 Circle(x,y),r 绘制大圆 Circle(x,y-r/2),r/2,pi/2,1.5*pi 绘制弧

30、线 Circle(x,y+r/2),r/2,1.5/pi,pi*2 FillColor=vbBlack FillStyle=0 Cricle(x,y+r/2),r/5 绘制小圆 Circle (x,y-r/2),r/5End SubPrivate Sub Form_Click() Tjt 3000,1500,1000 Tjt 1000,2500,500 Tij 1000,1000,400End Sub 首先定义了一个名为Tjt的子过程,形参x和Y为太极图的圆心,r为半径。在窗体的Click事件过程中以不同的参数调用Tjt子过程,运行程序,单击窗体后就会在窗体的不同位置绘制出大小不同的太极图。9.5.3 Pset与Pint方法Pset方法用于画点,其语法格式如下: 对象.Pset Step(x,y),颜色 参数(x,y)为所画点的坐标,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1