Visual Basic程序设计:第12章图形操作_第1页
Visual Basic程序设计:第12章图形操作_第2页
Visual Basic程序设计:第12章图形操作_第3页
Visual Basic程序设计:第12章图形操作_第4页
Visual Basic程序设计:第12章图形操作_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十二章 图形操作,本章要求: 1. 理解VB中坐标系的概念; 2. 掌握用Line控件、Shape控件画直线、矩形、圆(弧)、椭圆的方法; 3. 掌握图片框、图象框的常用属性、常用方法、图片的载入及应用; 4. 掌握用Pset方法、Line方法、Circle方法画点、矩形、圆(弧)、椭圆的方法;,12.1 坐标系统,12.1.1 缺省坐标系统 每个容器都有一个坐标系,构成一个坐标系,需要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。坐标度量单位由容器对象的ScaleMode属性决定。缺省时为Twip。每英寸1440个Twip,20个Twip为一磅。,原点,Height,ScaleHe

2、ight,12.1.2 用户自定义坐标系统,1、设置坐标系统的刻度单位,用户可用ScaleMode属性设置坐标系统的刻度单位。ScaleMode属性的取值及含义见Pg280表11.1所示。,说明: (1)当设置容器对象(例如,窗体或图片框)的ScaleMode属性值0,将使容器对象的ScaleLeft 和 ScaleTop 自动设置为0,ScaleHeight 和 ScaleWidth 的度量单位也将发生改变。 (2)用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的方向。,2、使用Scale属性建立自己的坐标系 (1) 重新定义坐标原点 属性ScaleTop,ScaleLe

3、ft的值用于控制对象左上角坐标,所有对象的ScaleTop,ScaleLeft属性的缺省值为0,坐标原点在对象的左上角。 = N,表示将X轴向Y轴的负方向平移N个单位 ScaleTop = N,表示X轴向Y轴的正方向平移N个单位 同样,ScaleLeft的设置值可向左或向右平移坐标系的Y轴。,(2) 重定义坐标轴方向和度量单位 属性ScaleWidth,ScaleHeight的值可确定对象坐标系X轴与Y轴的正向及最大坐标值。缺省时其值均大于0,此时,X轴的正向向右,Y轴的正向向下。对象右下角坐标值为(ScaleLeft+ScaleWidth,ScaleTop+ScaleHeight)。 如果S

4、caleWidth的值小于0,则X轴的正向向左,如果ScaleHeight的值小于0,则Y轴的正向向上。,Y,X,ScaleWidth=n ScaleHeight=m Scaleletf=0 ScaleTop=0,0,(n,m),Y,X,ScaleWidth=n ScaleHeight=-m Scaleletf=0 ScaleTop=0,0,(n,-m),例12.1 将窗体的坐标系统的原点定义在其中心,X轴的正向向右,Y轴的正向向上,窗体高与宽分别为200和300单位长度。 通过ScaleTop,ScaleLeft,ScaleWidth和ScaleHeight属性实现。,Form1.Scale

5、Left = -150 Form1.ScaleTop = 100 Form1.ScaleWidth = 300 Form1.ScaleHeight = -200,(-150,100),(150,-100),(3) 利用Scale方法设置坐标系 对象.Scale(xLeft,yTop)-(xRight,yBottom),对象的左上角坐标值,对象的右下角坐标值,例如,Form1.Scale (-150,100) - (150, -100)将建立和例11.1一样的坐标系。,可在程序中使用Scale方法改变坐标系统。当Scale方法不带参数时,取消用户定义的坐标系,采用缺省坐标系。,12.2 绘图属性

6、与事件,一、 当前坐标 CurrentX,CurrentY属性给出窗体或图形框或打印机在绘图时的当前坐标。 这两个属性在设计阶段不能使用。 使用格式: object.CurrentX = x object.CurrentY = y,注意: 当使用某些图形方法后,对象的CurrentX和CurrentY的设置值将发生变化,其具体的改变见表11.3。,例12.2 以窗体中心为原心,随机向各个方向绘200条直线。,12.2.2 线宽与线型 1设置线宽DrawWidth 属性 窗体、图形框或打印机的DrawWidth属性给出这些对象上所画线的宽度或点的大小。使用格式: Object.DrawWidth

7、 = Size 其中: Object 为对象表达式,可以是窗体、图片框和打印机对象。 Size 为数值表达式,其范围从 1 到 32767。该值以像素为单位表示线宽。缺省值为 1,即一个像素宽。,窗体或图形框或打印机的DrawStyle属性给出这些对象上所画线的形状。其设置值及含意见Pg.284表11.4。,2. 设置线型DrawStyle 属性,例12.3 用不同的DrawStyle 属性值,在窗体分别画一条直线。,12.2.3 图形的填充,1填充方式 FillStyle属性,下图是形状控件的FillStyle属性设置为08时的填充效果,说明: (1)FillStyle为0是实填充,1为透明

8、方式。填充图案的颜色由FillColor属性来决定。 (2)对于窗体和图片框对象,FillStyle 属性设置后,并不能看到其填充效果,而只能在使用Circle 和 Line 图形方法生成的圆和方框时,在圆和方框中显示其填充效果。,2FillColor属性 用于设置填充形状的颜色,缺省情况下,FillColor 设置为 0(黑色)。,12.2.4 AutoRedraw属性,设置和返回对象或控件是否能自动重绘。若值为True,使Form对象或PictureBox控件的自动重绘有效。对象不接受绘制事件(Paint事件)。,重绘:当改变对象大小或隐藏在另一个对象后又重新显示的情况下,重新将以前使用P

9、rint方法输出的文本信息和绘图方法绘制的图形显示出来。,12.2.5 图形颜色,在Visual Basic系统中,所有的颜色属性都由一个Long整数表示:,在代码中可使用4种方式给颜色赋值:,使用RGB函数。 使用QBColor函数,选择16种Qbasic颜色中的一种。 使用系统提供的颜色常数。 直接使用Long型颜色值。,一、使用RGB函数 RGB函数可返回一个Long整数,用来表示一个RGB颜色值。其使用格式如下: RGB(red, green, blue) 说明: red, green, blue(红、绿、蓝)3种颜色,从0255之间的一个亮度值(0表示亮度最低,而255表示亮度最高)

10、。 例如: Form1.BackColor = RGB(255, 0, 0) 设定背景为红色 二、使用QBColor函数 QBColor函数可返回一个Long值,用来表示所对应颜色值的RGB颜色码。其使用格式如下: QBColor(color) 说明: color参数是一个界于015的整型数,分别代表16种颜色,如表11.6所示。,三、使用系统定义的颜色常数 在VB系统中已经预先定义了常用颜色的颜色常数,如常数vbRed就代表红色,vbGreen代表绿色等等。可“对象浏览器”中查询常数列表,表11.7是系统预定义的最常用的颜色常数。,例如,要将窗体的背景色设为红色。则可使用如下语句: Form

11、1.BackColor = vbRed,四、直接使用颜色设置值 用十六进制数指定颜色的格式为: &HBBGGRR 其中,BB指定蓝颜色的值,GG指定绿颜色的值,RR指定红颜色的值。每个数段都是两位十六进制数,即从00FF。 例如, Form1.BackColor = &HFF0000 它相当于:Form1.BackColor = RGB(0, 0, 255),12.3 图形控件,VB中与图形有关的控件有: 图片框(PictureBox)、图像框(Image) 形状控件(Shape)、直线控件(Line)。,窗体、图形框和图像框可以显示来自图形文件的图形,1位图(bitmap):位图通常以.bm

12、p或 .dib为文件扩展名。 2图标(icon):以.ico为文件扩展名。 3元文件(metafile):元文件的类型有两种,分别是标准型(.wmf)和增强型(.emf)。 4JPEG文件:JPEG是一种支持 8 位和 24 位颜色的压缩位图格式。它是 Internet 上一种流行的文件格式。 5GIF文件:GIF是一种压缩位图格式。它可支持多达 256 种的颜色,是 Internet 上一种流行的文件格式。,主要作用:显示图片、也可作为其他控件的容器。 1、装入图形: 图形框对象.Picture = LoadPicture(“图形文件名”) 2、删除图形 图形框对象.Picture = Lo

13、adPicture( ) 3保存图片 使用SavePicture语句,其使用格式如下: SavePicture Object.Picture|Image, FileName 注意:当Autosize属性设置为True时,图形框能自动调整大小与显示的图片匹配,12.3.1 图片框控件PictureBox,图像框比图形框占用更少的内存快。图像框内不能保存其他控件。 Image控件,不是容器控件。 Image控件加载图片、删除图片、保存图片的方法: 与PictureBox控件相同 Stretch属性: 设置为False,图像框可自动改变大小以适应其中的图形。设设置True, 图形可自动调整尺寸以适应

14、图像框的大小。,12.3.2 图像框控件Image控件。,例12.4 Image 控件的Stretch属性的设置。,12.2.3 形状控件Shape,使用Shape控件可在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形等图形。 Shape控件预定义形状是由Shape属性的取值决定的。,Shape属性取不同值对应的形状,12.2.4 线控件Line,对于线控件来说,程序运行时最重要的属性是“X1”、“Y1”、“X2”、“Y2”属性,这些属性决定着线显示时的位置坐标,“X1”属性设置(或返回)了线的最左端水平位置坐标,“Y1”属性设置(或返回)了最左端垂直坐标,“X2”、

15、“Y2”则表示右端的坐标。,利用线与形状控件,用户可以迅速地显示简单的线与形状或将之打印输出,与其他大部分控件不同的是,这两种控件不会响应任何事件,它们只用来显示或打印。,12.4 绘图方法,12.4.1 Pset方法,Pset方法用于画点,其语法格式如下: 对象.Pset Step (X,Y) ,颜色,例12.5 在窗体上随机画一条不同亮度的红色彩带,然后再清除,在其它位置又画一条不同亮度的红色彩带,形成彩带在垂直方向浮动的动态效果。,12.4.2 Line方法 画直线或矩形: 对象. Line Step (x1,y1)(x2,y2),颜色,BF 其中:对象可以是窗体或图形框。 (x1,y1

16、) ,(x2,y2)为线段的起终点坐标或矩形的左上角右下坐标。颜色为可选参数,指定画线的颜色,缺省取对象的前景颜色,即ForeColor B表示画矩形,F表示用画矩形的颜色来填充矩形。 关键字Step表示采用当前作图位置的相对值,即从当前坐标移动相应的步长后所得的点为画线起点。,注意:各参数可根据实际要求进行取舍,但如果舍去的是中间参数,参数的位置分隔符不能舍去。,例如: 画一条从(250,300)到(400,500)点的直线 Line (250,300)-(400,500) 从当前位置(由CurrentX,CurrentY决定)画到(400,500) Line - (400,500) 出发点

17、是(150,250),终点是向X轴正向走150,向Y轴正向走50的点 Line (150,250) - Step (150,50) 等同于:Line (150,250) - (300,300) 画一个左上角在(20,40),右下角在(150,200)的矩形,注意在color 参数省略时,逗号并不省略。 Line (20,40) - (150,200) , , B 用红色从(20,40)到(70,110)画一个实心的矩形。 Line (20,40) - Step (50,70), RGB(255,0,0), BF,例12.6 用Line方法在窗体上画若干个不同心,并填充不同颜色的矩形。,12.4

18、.3 Circle方法 Circle方法用于在指定对象上画圆、椭圆、圆弧和扇形。 其语法格式: 对象. Circle Step (x,y),半径,颜色,起始角,终止角,长短轴比率 其中: (x,y)为圆心坐标,关键字Step表示采用当前作图位置的相对值; 圆弧和扇形通过参数起始角,终止角控制。当起始角、终止角取值在0 2时为圆弧,当在起始角、终止角取值前加一负号时,画出扇形,负号表示画圆心到圆弧的径向线; 椭圆通过长短轴比率控制,默认值为1,画圆。,Circle方法的使用,12.5 应用举例,12.5.1 绘制函数曲线 例12.7 在窗体上画出,区间的正弦曲线。要求将图片框的坐标系重新定义为左上角坐标为(,1),右下角坐标为(,1),并在窗体上画出坐标的x轴和y轴。,分析: 行星运动的椭圆方程为: x=x0+rx*cos(alfa), y=y0+ry*sin(alfa)。 其中, x0、y0为椭圆圆心坐标, rx为水平半径,ry为垂直半径, alfa为圆心角。,例12.8 设置一个模拟行星绕太阳运动的程序。,12.5.2 简单动画设计 在程序设计中,动画就是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论