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

上传人:b****7 文档编号:10794142 上传时间:2023-02-23 格式:DOCX 页数:24 大小:412.56KB
下载 相关 举报
第九章vb60图形程序设计.docx_第1页
第1页 / 共24页
第九章vb60图形程序设计.docx_第2页
第2页 / 共24页
第九章vb60图形程序设计.docx_第3页
第3页 / 共24页
第九章vb60图形程序设计.docx_第4页
第4页 / 共24页
第九章vb60图形程序设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

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

《第九章vb60图形程序设计.docx》由会员分享,可在线阅读,更多相关《第九章vb60图形程序设计.docx(24页珍藏版)》请在冰豆网上搜索。

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

第九章vb60图形程序设计

第九章      图形程序设计9.1图形控件

图形控件包括图片框控件、图像框控件、直线控件和形状控件4种,其中图片框和图像框是用来放置图片的,在第5章中已经介绍过,本节介绍另外两种图形控件。

   9.1.1直线控件

   直线控件用来创建直线。

它的使用方法与其他控件相同,在工具箱中单击直线控件图标,将鼠标移动到窗体上,在所需位置开始拖动鼠标,拖动到合适处后释放鼠标,则在鼠标的拖动起点与终点之间就出现了一段直线,如图9.1所示。

   单击直线可选中它,并且在直线的两端出现两个小方块。

将鼠标指针移动到某个方块上,则指针变成一个十字形,此时拖动鼠标,可以更改该直线的长度与方向,如图9.2所示。

也一可以拖动鼠标来改变直线的位置。

   直线控件的属性较其他控件要少得多,主要用来设置直线的宽度、颜色以及线型等。

   只有直线的宽度为1(BorderWidth=1)时,BorderStyle属性的7个取值才都有效,否则BorderStyle属性的取值只有0和6有效。

例如,直线的宽度为2时,不能将其设置为虚线。

如图9.3所示的是各种线型的比较,从上到下,各直线控件的BorderStyle属性的值依次为1~6。

   与其他控件不同的是,直线控件没有任何事件。

因此,在程序运行时,它不能响应用户的任何操作。

9.1.2形状控件使用形状控件可以方便地在窗体上绘制出矩形、正方形、圆、椭圆、圆角矩形和圆角正方形等5种基本几何图形。

使用形状控件的方法与其他控件相同,这里不再赘述。

   形状控件的Shape属性是它很主要的一个属性,该属性决定了形状控件所绘制图形的类型。

表9.3中列出了Shape属性的值及含义。

   形状控件也有BorderColor、BorderStyle和BorderWidth属性,且含义与直线控件相同。

在默认情况下,使用图形控件绘制出的图形的背景是透明的,这是因为在默认情况下BackStyle属性的值为0〔透明).将该属性的值设置为l.即可在BaekColor属性中指定图形的背景颜色。

   形状控件的另一个重要属性是Fi1lStyle属性,该属性用来决定图形的填充样式,表9.4中列出了它的取值及含义。

   如果图形的填充样式不是透明的,即Fi1lStyle属性的值不为l.则可以通过Fi1lColor属性设置图形的填充颜色。

   图形的各种填充效果,从左到右各图形的Fil1StyIe属性的值依次为0~7。

运行该程序,窗体如图9.7所示。

单击【形状】设置区中的某单选按钮,则右边的图形就会变成所选的形状,单击【填充】设置区巾的某单选按钮,则图形就会以所选的样式填充。

   如图9.8所示的是选中【椭圆】与【对角交叉线】单选按钮后的效果。

9.2坐标系统在VB中,控件放置在窗体或图片框等对象中,而窗体又放置在屏幕对象中,这些能够放置其他对象的对象称为容器,如窗体、图片框与屏幕都是容器。

   每个容器都有一个坐标系统,以便为对象的定位提供参考。

容器坐标系统的默认设置是:

容器的左上角为坐标的原点。

横向向右为K轴的正方向,纵向向下为Y轴的正方向。

如图9.9所示的是窗体对象的默认坐标系统。

   坐标的度量单位由容器对象的ScaleMode属性决定,ScaleMode属性的值与对应的度量单位如表9.6所示。

   对象的Left和Top属性决定了该对象左上角在容器内的坐标,Width和Height属性决定了对象的大小,它们的单位总是与容器的度量单位相同。

如果改变了容器的度量单位,则这4个属性的值都会发生相应的变化,以适应新的坐标系统,对象的实际大小与位置并不会改变。

   使用默认的坐标系统有时很不方便,用户可以根据具体的需要重新定义容器的坐标系统。

   属性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所示,坐标原点定位在窗体的左下角,同时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绘图属性在对象(窗体或图片框)上绘制图形时,还需要设置对象的绘图属性以确定所绘制图形的特征,例如所画线的宽度以及图形的填充样式等。

   1.与CurrentX与CurrentY。

   属性使用Print方法在窗体或图片框中显示文本时,文本总是出现在当前坐标处。

例如,在默认情况下,第一次使用Print方法输出的文本显示在窗体的左上角。

通过CurrentX与CurxentY属性可以指定当前坐标,这两个属性在设计时不可用。

   例如:

 

PrivateSubForm_Click()

Scale(0,100)-(100,0)"自定义坐标系统

Fori=10To80Step10

Currenty=i"指定当前坐标

Currenty=i

Print“清华大学”

Next

EndSub

   运行该程序,文本在窗体上的显示效果如图9.12所示,如果在代码中不使用CurrentX与CurrentY属性指定当前坐标,则窗体上文本的显示效果如图9.13所示。

2.AutoRedraw属性。

   如果AutoRedraw属性的值为True,则所绘制的图形是持久的。

即当窗体被隐藏到其他窗口之后或调整了大小,使用Print方法显示的文本或使用图形方法绘制的图形都将重新显示。

   如果AutoRedraw属性的值为False,则所绘制的图形是临时的。

当窗体被隐藏到其他窗口之后或调整了大小,窗体上的文本或图形将被掩盖掉。

例如,图9.14中(a)图所示的是在窗体上正常显示的图形和文本,(b)图所示的是将另外一个窗体移动到该窗体上,然后再移走后的效果,可见,被另一窗体掩盖部分的图形和文本消失了。

   AutoRedraw属性的默认值为False,在使用Print方法或图形方法时,最好将该属性的值设置为Ture。

3.其他绘图属性。

   表9.9中列出了窗体与图片框控件的其他绘图属性。

9.4定义颜色在VB中,颜色是以十六进制数表示的。

例如,在【属性】窗口中设置BackColor与ForeColor等颜色属性时,出现的值总是一个十六进制数。

以十六进制数来设置颜色既不方便也不直观,一般用户很难看出颜色与十六进制数的对应关系。

为此,VB提供了一些颜色常数和颜色函数,使用它们可以方便直观地设置出想要的颜色。

   1.颜色常量。

   如果程序中只需要使用8种基本颜色,则使用VB提供的颜色常量即可达到目的。

这些常量所代表的颜色可以从它们的名字上看出。

表9.11所示的是8种基本颜色与颜色常量的对应关系。

   例如,要将窗体(名称为Form1)的背景色设置为红色,可以使用如下语句:

   Form1.BackColor=&HFF.

   也可以使用颜色常数来设置,语句如下:

   Form.BackColor=VblRed

2.QBColor函数

   使用QBColor函数可以设置16种颜色,语法如下:

   QBColor(Color)

   参数Color是一个0~15的整数,每个整数代表一种颜色,表9.12中列出了该参数的取值与对应的颜色。

   例如,下列语句的含义也是将窗体的背景色设置为红色。

   Forml.BackColor=QBColor(4)

   3.RGB函数。

   使用颜色常量和QBColor函数只能指定一些基本的颜色,而使用RGB函数则可以指定几乎所有的颜色。

RGB函数是通过指定红(Red)、绿(Green)、蓝(Blue)三原色的值来定义颜色的,其语法为:

   RGB(红、绿、蓝)。

红、绿、蓝三原色的值均为0~255之间的整数,颜色值的不同组合将产生不同的颜色,从理论上讲,三原色混合可以产生256×256×256种颜色。

表9.13中列出了基本颜色与对应的RGB函数。

   例如,使用RGB函数设置窗体背景色为红色的语句为:

   Forml.BackColor=RGB(255,0,0)

   实际上,对于颜色的十六进制数,每两位一组代表一种原色的颜色值,最低两位为红色的值,其次是绿色和蓝色的值。

例如,十六进制数&HOOFFOOFF对应RGB(255,0,255),因此,它表示的颜色为洋红色。

9.5图形方法图形方法是指窗体或图片框控件用于绘图的方法,其中包括Line方法、Circle方法、Pset方法以及PaintPicture方法等。

使用这些方法可以绘制出直线、矩形、圆、椭圆、弧线、扇形、点以及各种曲线。

   Line方法用于绘制直线或矩形,其语法格式如下:

   [对象].Line[[Step](xl,y1)1-[Step](x2,y2)[,颜色][,B[F].

   对象可以是窗体或图片框控件,其中各参数的含义如下:

   Step:

该参数是可选的,如果使用该参数,则表示起点坐标(x1,y1)或终点坐标(x2,y2)是相对当前点(CurrentX,CurrentY)的,而不是相对坐标原点的。

   (x1,y1):

用于指定直线的起点,也是可选的,如果省略则起点为当前点(CurrentX,CuxrerttY)。

   (x2,y2)用于指定直线的终点。

   颜色:

可选的。

用于指定所绘制的图形的颜色,可以使用RGB函数或QBColor参数指定颜色。

如果省略,则使用对象(窗体或图片框)当前的ForeColor属性指定的颜色。

   B:

可选的。

如果使用该参数,则绘制出的是矩形。

其中(x1,y1)是指矩形左。

上项点的坐标,(x2,y2)是指矩形右下顶点的坐标。

   F:

可选的。

只有使用了参数B后才能使用该参数。

如果使用该参数则矩形以指定的颜色填充;省略F时,矩形以对象当前的FiilColor与Fi1lStyle属性的设置填充。

实例9.3使用Line方法。

   使用Line方法绘制一个柱状图表,每个柱的填充颜色与样式都不同,并且在柱的正上方标有柱的长度,如图9.15所示。

   程序代码如下:

 

PrivateSubForm_Resize()

Constx0=15

Consty0=20

Cls

Scale(0,100)-(100,0)自定义坐标系统

Line(x0,y0)-(x0,90)绘制Y轴

Line(x0,y0)-(90,yo)绘制x轴

Fori=10To70Step10

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

Next

EndSub

   在该段代码中,常量x0和y0是柱状图表的坐标原点,定义这两个常量的好处在于;只要改变这两个常量的值,即可确定图表在窗体中的位置。

例如,将x0与y0的值分别设置为15和20,则图表在窗体中的位置如图9.16所示。

改变窗体的大小后,图表会随着窗体的大小自动缩放,如图9.17所示。

   实例9.3产生渐变背景。

   许多Windows应用程序的安装界面,是以一个颜色由蓝至黑的渐变窗体为背景的。

使用VB产生窗体背景色的渐变效果很简单,基本思想是:

在窗体中从上至下依次绘制多个矩形,只要有足够多的矩形,同时使它们的填充色从蓝变化到黑,就能很好地模拟出渐变效果了。

代码如下:

 

PrinvateSubGradient(TheObjectAsObject,Redval,Greenval,Blueval)

DimStep,i,T,L,R,B

Step=(TheObject.Height/60)

T=0

L=0

R=TheObject.width

B=T+Step

Fori=1To60

TheObject.Line(L,T)-(R,B),RGB(Redval,Greenval,Blueval),BF

Redval=Readval-4

Greenval=Greenval-4

Blueval=Blueval-4

IfReadval<=0ThenReadval=0

IfGreenval<=0ThenGreenval=0

IfBlueval<=0ThenBlueval=0

T=B

B=B+Step

Next

EndSub

PrivateSubForm_Resize()

GradientForml,0,0,255

EndSub

 

 

   首先定义了一个名为Gradient的子过程,在该子过程中,使用了For循环语句来实现在窗体中从上至下依次绘制60个矩形,其中的Line方法是用来绘制矩形的,变量L与T为矩形左上顶点的坐标,R与B为矩形右下顶点的坐标,变量Redval,Greenval,Blueval分别表示红、绿、蓝三原色的值。

   在窗体的Resize事件中,以参数Fvrrnl(窗体名)和颜色值(0,0,255)调用子过程Gradient,运行程序后,即可看到窗体具有由蓝至黑的渐变背景。

若以其他颜色值调用该函数,则可得到其他颜色的渐变背景。

改变窗体的大小,渐变色会随着充满整个窗体(要将窗体的AutoRedraw属性设置为True)。

9.5图形方法图形方法是指窗体或图片框控件用于绘图的方法,其中包括Line方法、Circle方法、Pset方法以及PaintPicture方法等。

使用这些方法可以绘制出直线、矩形、圆、椭圆、弧线、扇形、点以及各种曲线。

   Line方法用于绘制直线或矩形,其语法格式如下:

   [对象].Line[[Step](xl,y1)1-[Step](x2,y2)[,颜色][,B[F].

   对象可以是窗体或图片框控件,其中各参数的含义如下:

   Step:

该参数是可选的,如果使用该参数,则表示起点坐标(x1,y1)或终点坐标(x2,y2)是相对当前点(CurrentX,CurrentY)的,而不是相对坐标原点的。

   (x1,y1):

用于指定直线的起点,也是可选的,如果省略则起点为当前点(CurrentX,CuxrerttY)。

   (x2,y2)用于指定直线的终点。

   颜色:

可选的。

用于指定所绘制的图形的颜色,可以使用RGB函数或QBColor参数指定颜色。

如果省略,则使用对象(窗体或图片框)当前的ForeColor属性指定的颜色。

   B:

可选的。

如果使用该参数,则绘制出的是矩形。

其中(x1,y1)是指矩形左。

上项点的坐标,(x2,y2)是指矩形右下顶点的坐标。

   F:

可选的。

只有使用了参数B后才能使用该参数。

如果使用该参数则矩形以指定的颜色填充;省略F时,矩形以对象当前的FiilColor与Fi1lStyle属性的设置填充。

实例9.3使用Line方法。

   使用Line方法绘制一个柱状图表,每个柱的填充颜色与样式都不同,并且在柱的正上方标有柱的长度,如图9.15所示。

   程序代码如下:

 

PrivateSubForm_Resize()

Constx0=15

Consty0=20

Cls

Scale(0,100)-(100,0)自定义坐标系统

Line(x0,y0)-(x0,90)绘制Y轴

Line(x0,y0)-(90,yo)绘制x轴

Fori=10To70Step10

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

Next

EndSub

   在该段代码中,常量x0和y0是柱状图表的坐标原点,定义这两个常量的好处在于;只要改变这两个常量的值,即可确定图表在窗体中的位置。

例如,将x0与y0的值分别设置为15和20,则图表在窗体中的位置如图9.16所示。

改变窗体的大小后,图表会随着窗体的大小自动缩放,如图9.17所示。

   实例9.3产生渐变背景。

   许多Windows应用程序的安装界面,是以一个颜色由蓝至黑的渐变窗体为背景的。

使用VB产生窗体背景色的渐变效果很简单,基本思想是:

在窗体中从上至下依次绘制多个矩形,只要有足够多的矩形,同时使它们的填充色从蓝变化到黑,就能很好地模拟出渐变效果了。

代码如下:

 

PrinvateSubGradient(TheObjectAsObject,Redval,Greenval,Blueval)

DimStep,i,T,L,R,B

Step=(TheObject.Height/60)

T=0

L=0

R=TheObject.width

B=T+Step

Fori=1To60

TheObject.Line(L,T)-(R,B),RGB(Redval,Greenval,Blueval),BF

Redval=Readval-4

Greenval=Greenval-4

Blueval=Blueval-4

IfReadval<=0ThenReadval=0

IfGreenval<=0ThenGreenval=0

IfBlueval<=0ThenBlueval=0

T=B

B=B+Step

Next

EndSub

PrivateSubForm_Resize()

GradientForml,0,0,255

EndSub

 

 

   首先定义了一个名为Gradient的子过程,在该子过程中,使用了For循环语句来实现在窗体中从上至下依次绘制60个矩形,其中的Line方法是用来绘制矩形的,变量L与T为矩形左上顶点的坐标,R与B为矩形右下顶点的坐标,变量Redval,Greenval,Blueval分别表示红、绿、蓝三原色的值。

   在窗体的Resize事件中,以参数Fvrrnl(窗体名)和颜色值(0,0,255)调用子过程Gradient,运行程序后,即可看到窗体具有由蓝至黑的渐变背景。

若以其他颜色值调用该函数,则可得到其他颜色的渐变背景。

改变窗体的大小,渐变色会随着充满整个窗体(要将窗体的AutoRedraw属性设置为True)。

9.5.2Circle方法Circle方法用于绘制圆、椭圆、扇形或弧,其语法格式如下:

   [对象。

]Circle[[Step](x,y)],半径[,颜色][,起始角][,终止角了[长短轴比率].

   对象可以是窗体或图片框控件,其中各参数的含义如下:

   Step:

该参数是可选的,如果使用该参数,则表示圆心坐标(x,y)是相对当前点(CurrentX,CurrentY)的,而不是相对坐标原点的。

   (x,y):

用于指定圆的圆心,也是可选的,如果省略则圆心为当前点(CurrentX,GurrentY)。

   半径:

用于指定圆的半径,对于椭圆来讲,该值是椭圆的长轴长度。

   颜色:

指定所绘制图形的颜色。

   起始角、终止角:

用来指定圆弧或扇形的起始角度与终止角度,单位为弧度。

取值范围为0~2π时,绘制的是圆弧:

给起始角与终止角取值前添加一个负号,则所绘制的是扇形,负号表示绘制圆心到圆弧的径向线。

省略这两个参数,则所绘制的是圆或椭圆。

   VB规定,从起始角按逆时针方向绘制圆弧只到终止角处,水平向右方向为0度,且与坐标系统无关,如图9.18所示。

   长短轴比率:

当需要绘制椭圆时,可使用该参数指定椭圆长短轴的比率。

若值大于1,则所绘制的是竖立的椭圆;若值小于1,则所绘制的是扁平的椭圆。

该值的缺省值为1,即省略时绘制的是圆。

例如,使用下列语句绘制出的各种图形如图9.19所示。

 

Constpi=3.1415926

PrivateSubForm_Click()

Scale(-100,100)-(100,-100)

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*pi

EndSub

实例9.4绘制太极图

   使用Circle方法绘制出如图9.20所示的太极图。

   代码如下:

 

Constpi=3.1415926

SubTjt(x,y,r)

FillStyle=1

Circle(x,y),r绘制大圆

Circle(x,y-r/2),r/2,,pi/2,1.5*pi绘制弧线

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/5

EndSub

PrivateSubForm_Click()

Tjt3000,1500,1000

Tjt1000,2500,500

Tij1000,1000,400

EndSub

   首先定义了一个名为Tjt的子过程,形参x和Y为太极图的圆心,r为半径。

在窗体的Click事件过程中以不同的参数调用Tjt子过程,运行程序,单击窗体后就会在窗体的不同位置绘制出大小不同的太极图。

9.5.3Pset与Pint方法Pset方法用于画点,其语法格式如下:

   [对象].Pset[Step](x,y)[,颜色]

   参数(x,y)为所画点的坐标,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

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

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