首页 主任信箱 联系我们  
   VB教学课件
 

第 二十 讲

基本课题:简单贺卡设计与绘图操作(一)

授课日期

04.11.17

04.11.17

授课班级

03级计算机5、6班

03级计算机7、8班

教 学 目 的 与 要 求:

本讲的主要目的是通过新年贺卡的设计,学习Visual Basic的图形控件和绘图方法的应用技术。

教 学 的 重 点、难 点:

重点、难点: 图形控件和几种绘图方法

对 教 材 的 处 理 和 意 见:

以教材为主,联系实际情况及时做补充


一. 坐标系统

(一)坐标系统概述

1.构成坐标系的三要素:坐标原点、坐标度量单位、坐标轴的长度与方向。

2.坐标度量单位由容器对象的ScaleMode属性决定

ScaleMode属性设置

属性设置

单位

0

用户定义

1

Twip(缺省值)

2

磅(point,每英寸72磅,1440Twip,即1磅=20Twip)

3

像素(pixed,与显示器分辨率有关)l厘米=28.3333像素

4

字符(缺省为高12磅宽为20磅单位)

5

英寸(inch) 1英寸=2.54厘米=0.0254米,即1米=39英寸

6

毫米(millimeter)

7

厘米(centimeter)

这七种标准坐标系统的原点都在对象绘图区的左上角,水平坐标的正方向为向右,垂直坐标的正方向为向下。

注意:窗体的Height属性值包括了标题栏和水平边框宽度,同样Width属性值包括了垂直边框宽度。实际可用高度和宽度由ScaleHeight和ScaleWidth属性确定。

(二) 自行定义坐标系

方法一:通过对象的ScaleTop、ScaleLeft、ScaleWidth和ScaleHeight四项属性来实现。

说明:

(1)ScaleTop、ScaleLeft属性分别指定在新坐标系统下对象绘图区左上角的水平和垂直坐标。

(2)ScaleWidth、ScaleHeight属性决定在新的坐标下窗体或图片框绘图区的高度和宽度。当这两个属性取负值时,会改变坐标的正方向。右下角坐标值为(ScaleLeft + ScaleWidth, ScaleTop + ScaleHeight)。

例1 在Form_Click事件中通过属性定义窗体Form1的坐标系。

窗体Form1的左上角坐标为(-200,250),窗体Form1的右下角坐标为(300,-150)。X轴的正向向右,Y轴的正向向上。

方法二:采用Scale方法来设置坐标系。

语法:[对象.]Scale [(xLeft,yTop)-(xRight,yButton)]

说明:

(1)对象:窗体(可省略)、图形框或打印机。

(2)(xLeft,yTop):对象左上角的坐标值。

(3)(xRight,yButton):对象右下角的坐标值。均为单精度数值。

VB根据给定的坐标参数计算出ScaleTop、ScaleLeft、ScaleWidth和ScaleHeight的值:

ScaleLeft= xLeft

ScaleTop= yTop

ScaleWidth= xRight – xLeft

ScaleHeight= yButton – yTop

例如,Form1.Scale(-200,250) – (300,-150)将建立和例1一样的坐标系。

注意:当Scale方法不带参数时,则取消用户自定义的坐标系,而采用缺省坐标系。

例2 用窗体内两个命令按钮的单击事件说明用Scale方法改变坐标系统后产生的影响,命令Line(0,0)-(1000,1000)表示从坐标原点到(1000,1000)画一根直线。

Command2_Click事件定义用户坐标系,坐标原点在窗体的左下角,X轴的正向向右,Y轴的正向向上,窗体的左上角坐标为(0,1000),右下角坐标为(1000,0)。此时,Height=3600,Width=4800,ScaleHeight=-1000,ScaleWidth=1000(Twip)。

当坐标系建立后,控件对象的定位由Left、Top、Width和Height属性确定。

例3 本例说明控件对象在坐标系内的定位。在窗体内放置一个PictureBox控件,它的Picture属性装入一幅图片、两个命令按钮和4个标签。

二. 利用Shape、Line控件绘制基本图形

1. Shape控件

(1)Shape属性

(2)FillStyle属性

(3)BorderStyle属性

2. Line控件

3. VB的颜色系统

(1)在代码中设置颜色的方法

在VB中,一共有下面五种颜色调整方案。

①预定义的颜色常数

我们经常使用的8种颜色,只要用几个单词就可表示出来,这八种颜色是彩虹的六种颜色加上黑色和白色,只要在前缀字符vb后加上相应颜色的英文单词,就可表达出来了(图1)。

假设我们要将窗体的背景设为黑色,只要执行下面的语句就行了:

me.BackColor=vbBlack

就这么简单,这种用法易记好用,但可用颜色太少。

②QBColor函数颜色

在QB中常使用的颜色给带到了VB中。QB颜色主要是和VGA的十六种颜色对应,只有十六种值,它们是0~15,各个值和颜色的对应关系如图2:

所以上面的小例也可写成这样:me.BackColor=QBColor(0)

图1

图2

QBColor(0)→QBColor(1)→QBColor(2)→ QBColor(3)→
QBColor(4)→ QBColor(5)→ QBColor(6)→ QBColor(7)→
QBColor(8)→ QBColor(9)→ QBColor(10)→ QBColor(11)→
QBColor(12)→ QBColor(13)→ QBColor(14)→ QBColor(15)→

③RGB函数颜色值

RGB三个字母,分别代表了Red、Green、Blue三种颜色,此三种色可称为“原色”,在计算机中,通过这三种色的不同组合,可得到各式各样的颜色。每种颜色有256种颜色值,取值范围是0~255,由此我们可以看出此法表示的颜色数目较上面两种方法大有增加,一共能表达256×256×256种颜色。

其中几种常见的颜色用RGB表示如下

黑色:RGB(0,0,0)

红色:RGB(255,0,0)

白色:RGB(255,255,255)

所以上面的小例又可写成:me.BackColor=RGB(0,0,0)

④十六进制数颜色值

顾名思义,就是用十六进制数来表示颜色的方式。在VB窗体或控件的颜色调整中我们就用到过,那一堆以&H开头的东东即是它了。十六进制和RGB值是一一对应的,只要将RGB的各个值换算成两位的十六进制数,一个十六进制的颜色值就出现了。例如上面的黑色的十六进制值为&H0,红色的为&HFF0000,白色的当然就是:&HFFFFFF了。

&H表示该数为十六进制数,BB代表蓝色分量,GG代表绿色分量,RR代表红色分量。它们的值都在00~FF之间。

所以上面的小例又可写成:me.BackColor=&H0

⑤系统调整法

要想调整VB中程序的颜色,当然控制的方法不仅仅在VB中,设置操作系统中相应的项目,也能使我们编辑的应用程序变脸。我们通过“控制面板”中的“显示”,调整其中的“外观”,可设置不同的方案,调整“设置”,可选择本机中使用的颜色总数目。如果选择16色,那我们编程时使用QBColor就足够了,且注意真彩24位的颜色数目为2的24次方,那将是一个很大的数值。

⑥使用颜色时的注意事项

不管使用哪种表示方法,颜色所达到的效果是一致的。

不过颜色有多寡的区分,这和我们使用的机器中“显示”属性密切相关,只有在相适应的颜色系统下,才能使更多的颜色效果显示出来,例如我们在16色有显示状态下,不可能将RGB中所有的颜色表达出来,最多只能表达出十六种颜色,根据这种情况,我们可得出如下的结论:只要我们在真彩24位的系统环境和该环境之下,RGB应该能解决我们想用的一切颜色。

提示:通过窗体的Click事件实现屏幕颜色变换,代码如下:

Private Sub Form_Click()
Form1.BackColor=RGB(Rnd*255,Rnd*255,Rnd*255)

End sub

利用时钟进行控制:

Private Sub Form_Load()

Timer1.Interval = 1000

End Sub

Private Sub Timer1_Timer()

Dim i As Integer

For i = 1 To 1000 step 200

Form1.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)

Next i

End Sub

2. 使用颜色属性

(1)BackColor 背景色

(2)ForeColor属性

(3)BorderColor属性

(4)FillColor属性

三. 图形方法

1. Pset方法

功能:画点。

语法格式:[对象.]Pset[Step](x,y)[,颜色]

例7-1

2. Point方法

功能:返回指定点的RGB颜色,即返回在 FormPictureBox 上所指定磅的红-绿-蓝 (RGB) 颜色。

语法格式:[对象.]Point(x,y)

mypicture.Point (500,500)‘返回图片框(500,500)位置的颜色值。

3. Line方法

功能:画直线或矩形,语法格式:

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

其中:

对象:窗体或图形框。

(x1,y1):线段的起点坐标或矩形的左上角坐标;若省略,由CurrentX和CurrentY决定。

(x2,y2):线段的终点坐标或矩形的右下角坐标;不可省略。

Step:采用当前作图位置的相对值;

颜色:长整型数,设置直线或矩形的颜色。

B:画矩形;

F:用画矩形的颜色来填充矩形。缺省F则矩形的填充由FillColor和FillStyle属性决定。

4. Circle方法

[<object>.]Circle[Step](x,y),<半径>,[color,start,end,aspect]

说明:

(1)(x,y)指定圆、椭圆或弧的中心坐标。Object的ScaleMode属性决定了使用的度量单位。

(2)<半径>指定圆、椭圆或弧的半径。

(3)color

(4)start、end:指定弧或扇形的起点和终点位置。范围:-2л--2л。起点的缺省值为0,终点的缺省值为2л。正数画弧,负数画扇形。

(5)aspect为垂直半径与水平半径之比,不能为负数。Aspect 〉1时,椭圆沿垂直方向拉长;当aspect <1,椭圆沿水平方向拉长。Aspect的缺省值为1.0,在屏幕上产生一个标准圆(非椭圆)。

(6)可以省略某个参数,但逗号不能省。指定的最后一个参数后面的逗号可以省略。

(7)Circle执行后,CurrentX和CurrentY属性被参数设置为中心点。

例14-5

5. 图形方法与属性设置

例7-4图形方法演示程序

四. 简单贺卡生成器

1. 界面设计

2. 属性设置

3. 编写代码


 

第一讲 概述
第二讲 集成开发环境、创
建、发布

第三讲 基本数据类型、常
量与变量

第四讲 运算符和表达式、
常用内部函数
第五讲 顺序、分支结构
第六讲 循环结构
第七讲 数组
第八讲 过程与函数调用
第九讲 VB常用控件介绍(
一)
第十讲 VB常用控件介绍(
二)
第十一讲 VB常用控件介绍
(三)
第十二讲 VB常用控件介绍
(四)
第十三讲 简易记事本的编
辑功能设计(一)
第十四讲 简易记事本编辑
功能设计(二)
第十五讲 记事本管理功能
设计(一)
第十六讲 记事本管理功能
设计(二)
第十七讲 计算器设计
第十八讲 补充:鼠标、键
盘事件
第十九讲 实现图片浏览器
第二十讲 简单贺卡设计与
绘图操作(一)
 
潍坊职业学院信息工程系网络中心制作