资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第8章 图形程序设计,8.1 Visual Basic 图形系统概述 8.2 绘图属性与事件 8.3 图形控件 8.4 在Visual Basic应用程序中绘图 8.5 应用举例,引言,图形、图像的可视化特点可以使应用程序的用户界面更加友好和具有趣味性,Visual Basic提供了强大的图形绘制工具和能力。本章主要介绍Visual Basic的图形系统、绘图工具、绘图方法以及使用这些工具和方法进行简单的图形和动画设计,8.1 Visual Basic 图形系统概述,通常我们在绘制或加载图形(图片)时要控制图形或图片的位置及大小,Visual Basic提供了两种方法,坐标系统和图形容器。在坐标系里绘制图形、在图形容器里加载图片使图形界面设计达到满意的效果。,8.1.1 默认坐标系统,Visual Basic中的坐标系统为一个二维网格,定义一个对象在屏幕上、窗体上或其他容器中的位置可以用其Left、Top、Width、Height属性,对象的Left、Top属性决定了该对象的左上角相对于容器的坐标位置,Width、Height属性决定了该对象的大小。 默认坐标系统中,容器的左上角二维坐标值为(0,0)即原点,原点向右为水平轴的正方向,原点向下为垂直轴的正方向。,8.1.1 默认坐标系统,默认状态下,Left、Top、Width、Height属性的长度单位为twip。1twip=1/20点=1/1440英寸=1/567厘米。 除了可以用twip作为度量单为外,用户可以在窗体的ScaleMode属性里定义其它的度量单位。如下表 :,8.1.1 默认坐标系统,8.1.2 用户自定义坐标系统,Visual Basic允许用户自定义坐标系统,包括原点位置、轴线方向和轴线刻度 。方法是用对象的ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight属性。,8.1.2 用户自定义坐标系统,格式: 对象名. ScaleLeft=x 对象名. ScaleTop=y 对象名. ScaleWidth=宽度 对象名. ScaleHeight=高度 例如: Form1. ScaleLeft=100 Form1. ScaleTop=100 Form1. ScaleWidth=400 Form1. ScaleHeight=300,8.1.2 用户自定义坐标系统,还可以用scale方法设置。 格式: 对象名.scale(x1,y1)-(x2,y2) 其中(x1,y1)和(x2,y2)分别表示对象的左上角和右下角坐标,8.1.3 图形容器,图形容器即可以加载图形或图像的对象,8.2 绘图属性与事件,8.2.1 CurrentX、CurrentY属性 Visual Basic中,窗体和图片框具有CurrentX、CurrentY属性,经常用这两个属性来设置当前绘图点,CurrentX、CurrentY只能在代码编写时使用,下面给出了设置窗体和图片框的CurrentX、CurrentY的方法: Form1. CurrentX=x Form1 .CurrentY=y Picture1.CurrentX=x Picture1.CurrentY=y,8.2.2 图形控件的主要属性,图形控件的属性,决定了所绘制图形的外部特征,不同的图形控件所具有的属性不同,比如Shape控件主要由Shape、BorderStyle、FillStyle、BackColor、BorderColor、FillColor等属性,而Line控件主要有BorderStyle、BorderColor、BorderWidth等属性。图形控件的具体属性将在下一节结合具体的图形控件介绍,8.2.3 AutoRedraw属性,窗体和图片框控件具有 AutoRedraw属性,属性值可以设置为True或Flase。当为True时,会将窗体或图片框中的图形或文字以图像(Image)的形式保存在内存中,因此要重现窗体或图片框里的内容时,只需调出保存的内容即可;当为Flase时,窗体或图片框中的任何以图形方式显示的对象都不保存在内存中,所以如果这些对象被其它对象暂时挡住,或窗体大小发生变化,这些对象将会丢失。,8.2.3 AutoRedraw属性,显然,当AutoRedraw为True时,要占用更多的内存资源,特别是当图形较大并比且复杂时,较多的内存被占用,会导致系统整体性能下降,所以一般将AutoRedraw设置为Flase,如果又要重现窗体或与片框里的内容,可以用后面介绍的Paint事件。,8.2.4容器控件的主要图形属性,容器控件除了AutoRedraw属性外,常用的还有DrawMode、DrawStyle、DrawWidth、FillStyle、和FillColor等属性。 1、DrawMode属性 属性值为116,和BackColor及ForeColor属性结合使用,使绘制的图形达到不同的视觉效果。该属性可以在属性窗口里设置,也可以在程序里设置。例如:,8.2.4容器控件的主要图形属性,2、DrawStyle属性 属性值为06,用于指定图形方式创建的线是实线还是虚线,8.2.4容器控件的主要图形属性,3、DrawWidth属性 属性值132767,用来设置绘图线的宽度,取值以像素为单位,值越大,绘图线越宽,8.2.4容器控件的主要图形属性,4、FillColor和FillStyle属性 使用FillColor和FillStyle属性,可以对已绘制好的封闭图形(圆、正方形等)设置填充图案。FillStyle属性值07,对应的填充图案分别为纯色、透明、横条纹、竖条纹、上斜条纹、下斜条纹、交叉条纹、斜交叉条纹。FillColor为填充色属性。,8.3 图形控件,Visual Basic常用图形控件的使用方法 8.3.1 图片框控件 图片框控件(PictureBox)可以用来显示图片文件,也可以用来进行图形的绘制,还可以在其中输出文字。,8.3.1 图片框控件,PictureBox控件显示的图形在设计状态可以通过设置PictureBox的Picture属性指定要装入的图像文件,在这里可以使用Gif、Jpg、Bmp、Ico、Cur文件。 PictureBox空间显示的图形还可以在程序的代码中使用LoadPicture函数载入图片。 格式:对象.Picture=LoadPicture(“图片的绝对路径与文件名“),8.3.1 图片框控件,PictureBox控件中的图形大小不能改变,但可以通过设置其AutoSize属性为True来自动适应图形的大小,反之为False时图像大于图形框以外的部分将会被自动裁掉。 PictureBox除了用来显示图片以外,还可以用来作为输出的“画布”,在图片框中使用Cls(清屏)、Print、Line、Pset等方法实现在PictureBox控件中的绘图,并且PictureBox可以和窗体一样作为其它控件的容器。 PictureBox的主要事件是Click及DblClick。,8.3.2 图像框控件,图像框控件(Image)仅仅被用来显示图像。显示图像的方法一可以在其Picture属性里设置,二可以用LoadPicture方法指定,还可以从PictureBox里复制到Image。 图像框只有Streth属性,而没有Autosize属性。当Streth属性为True时,加载的图像根据图像框控件的大小,自动进行相应的缩放操作;当属性为False时,加载的图像大小不变,图像框按图像的大小自动调整尺寸。,8.3.2 图像框控件,图像框与图形框有如下区别: l (1) 图像框比图形框占用较少的存储空间,显示速度更快,所以在二者都可以满足需要时,应优先使用图像框。 l (2) 图形框是“容器”控件,可以作为父控件,在其控件里可以放置其它子控件。图像框的位置发生变化时,其内的子控件做同步移动。图像框不能作为父控件。 l (3)图形框可以通过Print方法显示文本,图像框不行。 l (4)图形框、图像框都有Name、Picture等属性和LoadPicture方法,但图形和控件本身适应的方法和使用的属性不同。,8.3.3 形状控件Shape,Visual Basic还提供了Shape和Line控件用来在容器里绘制简单的图形。 Shape控件主要有Shape、BorderStyle、FillColor、FillStyle等属性。 其中:Shape属性为形状,有05六种取值 FillStyle为填充线条属性,有07种取值 FillColor为填充颜色(前景)属性 Shape控件的上述属性不仅可以在控件里设置,也可以在代码里设置,方法是:对象.属性名=属性值,8.3.4 直线控件Line,Visual Basic还提供了直线控件(Line),其作用可以划出不同的直线 Line控件常用的属性有:BorderStyle、BorderWidth、BorderColor、DrawMode,8.4 在Visual Basic应用程序中绘图,8.4.1 常用的绘图方法,8.4.2 画点、直线、矩形,1、画点(Pset方法) Pset方法在指定点、按确定的像素颜色画点。 格式:object.Pset(x,y),color object为窗体或图片框控件,也可以时打印机,如省略则默认的为当前窗体。Color为颜色值,如省略则模认为当前ForeColor值。,8.4.2 画点、直线、矩形,2、画直线(Line方法) Line方法再指定的两点之间按指定的颜色画一条直线。 格式:object.Line(x1,y1)-(x2,y2),Color 第一坐标(x1,y1)如省略则默认从CorrentX和CurrentY为起点。画线的线型、线宽、填充色取决于当前的DrawStyle 、DrawWidth和DrawMode属性,8.4.2 画点、直线、矩形,3、画矩形 也使用Line方法,但注意和画直线的参数不同。 格式:object.Line(x1,y1)-(x2,y2),Color,BF 其中,(x1,y1)为矩形的左上角坐标,(x2,y2)为矩形的右下角坐标;Color为矩形边框颜色;使用参数B而不用F则矩形的填充色为当前FillColor值,用了参数F,则矩形以边框的颜色填充。,8.4.3 画圆、椭圆、弧线,1、画圆 给出圆心坐标和半径值即可以按当前设值的线型及线宽画一个圆,也可以同时给出颜色值。 例如:Private Sub Form_Click() DrawWidth = 3 Circle (1500, 1500), 800 Circle (3100, 1500), 800, RGB(0, 0, 255) 边框为蓝色 End Sub,8.4.3 画圆、椭圆、弧线,2、画椭圆 设置aspect的值,如大于1,则画出的椭圆高而窄,小于1,则画出的椭圆扁而平。 注意:在使用Circle方法时,参数省略的情况下,逗号不能省略。,8.4.3 画圆、椭圆、弧线,3、弧线 使用参数start和end可以画出不同的圆弧或椭圆弧,aspect为1时画出的为圆弧,其它取值画出的为椭圆弧。 注意:当start和end的取值在02之间时,绘制的是圆弧或椭圆弧,设置的填充色不起作用;当start和end的取值在-20之间时,绘制的是扇形或椭圆扇形,设置的填充色起作用;当start取0或-2,end 取2或0时,绘制出的为1个点而不是圆或椭圆。,8.5 应用举例,8.5.1 绘制函数曲线 8.5.2 简单动画设计,本章小结,本章主要介绍了Visual Basic的图形系统及图形工具和方法,通过本章的学习应达到以下目的: 1)熟悉和理解Visual Basic的图形系统及基本图形工具和方法; 2)掌握Visual Basic主要的图形控
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号