第9章图形操作_第1页
第9章图形操作_第2页
第9章图形操作_第3页
第9章图形操作_第4页
第9章图形操作_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第9章图形操作本章主要介绍VisualBasic的图形处理功能。VisualBasic不仅提供了基本的图形控件(Ship和Line),还提供了一系列基本的图形函数、语句和方法,支持直接在窗体或其他容器中绘制多种图形,如直线、矩形、椭圆和曲线等。掌握VB基本的图形控件掌握坐标系与坐标单位的基本概念学会使用颜色函数掌握绘制基本图形的方法掌握与绘图有关的常用属性、事件和方法本章要求:9.1绘图控件1Line控件Line控件常用的属性为:BorderColor:设置线的颜色;BorderWidth:设置线的宽度,默认值为1;BorderStyle:设置线型,有7个取值,默认值为1;X1,Y1:设置或返回线的起点坐标;X2,Y2:设置或返回线的终点坐标。值形状0Transparent透明,无线1Solid实线2Dash长虚线3Dot虚线4Dash-Dot点划线5Dash-Dot-Dot双点划线6Inside-Solid内实线值与线型对照表

注意:运行时可以通过改变X1、X2、Y1和Y2

属性来移动它或者调整它的大小。而不能使用Move方法例:用Line控件在窗体上显示7条不同颜色、不同类型的垂直线及7条不同颜色、不同宽度的水平线。要点:用控件数组的方法添加7条垂直线及7条水平线,用循环语句设置Line控件的BorderStyle属性和BorderWidth属性以实现直线的不同类型及不同宽度。注意:

BorderWidth值大于1时,BorderStyle值重新设置为默认值1。PrivateSubForm_Activate()DimiAsIntegerFori=1To6LoadLine1(i):Line1(i).Visible=TrueLine1(i).Y1=Line1(i-1).Y1+500Line1(i).Y2=Line1(i-1).Y2+500Line1(i).BorderWidth=Line1(i-1).BorderWidth+1Line1(i).BorderColor=QBColor(i)LoadLine2(i):Line2(i).Visible=TrueLine2(i).X1=Line2(i-1).X1+600Line2(i).X2=Line2(i-1).X2+600Line2(i).BorderColor=QBColor(i+1)Line2(i).BorderStyle=iNextiEndSub2Shape控件Shape控件预定义了六种形状,通过设置Shape控件的Shape属性获得所需要的形状。属性值常数说明0Rectangle矩形1Square正方形2Oval椭圆3Circle圆4RoundedRectangle圆角矩形5RoundedSquare圆角正方形9.2坐标系1默认坐标系每个容器都有一个坐标系,构成一个坐标系,需要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。决定三要素的重要属性:

ScaleTop、ScaleLeft:用于控制容器对象左边和顶端的坐标,根据这两个值来确定坐标原点。所有对象的这两个属性的默认值为0,即坐标原点在对象的左上角。

ScaleHeight和ScaleWidth:确定对象内部水平方向和垂直方向的单元数。ScaleMode:决定容器对象的坐标度量单位。坐标系单位有8种形式。缺省单位是Twip。每英寸1440个Twip,20个Twip为一磅。属性值说明0-User用户自定义。可以设置ScaleHeight,ScaleWidth,ScaleTop,ScaleLeft属性1-Twip缇(缺省值),1440缇等于一英寸2-Point磅,72磅等于1英寸3-Pixel像素(pixed,与显示器分辨率有关)4-Character字符(默认高为12磅,宽20磅的单位)5–Inch英寸6-Millimeter毫米7–Centimeter厘米ScaleMode的属性值与对应的度量单位2自定义坐标系方法一:通过ScaleTop,ScaleLeft,ScaleWidth和ScaleHeight属性实现。对象的左上角坐标为(ScaleLeft,ScaleTOP),右下角的坐标为(ScaleWidth+ScaleLeft,ScaleHeight+ScaleTop)。根据左上角和右下角坐标值的大小自动设置坐标轴的正向。X轴与Y轴的度量单位分别是1/ScaleWidth和1/ScaleHeight。属性含义ScaleLeft返回/设置对象左边界的水平坐标ScaleTop返回/设置对象上边界的垂直坐标ScaleWidth返回/设置对象内部水平的宽度,不包括边框ScaleHeight返回/设置对象内部垂直的高度,不包括边框和标题方法二:采用Scale方法来设置坐标系:格式:[对象.]Scale[(xLeft,yTop)-(xRight,yBotton)]对象可以使窗体、图形框和打印机,省略为窗体对象;(xLeft,yTop)表示定义对象的左上角坐标;(xRight,yBotton)则表示定义对象的右下角坐标。VB根据Scale方法给定的参数自动计算出对象的属性ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth的值。计算的方法如下:ScaleLeft=xLeftScaleTop=YtopScaleHeight=yBottom-yTopScaleWidth=xRight-xLeft2自定义坐标系例:观察画线Line(0,0)-(1000,1000)在不同坐标系中的效果PrivateSubCommand1_Click()'缺省坐标Scale'采用缺省坐标系Line(0,0)-(1000,1000)EndSubPrivateSubCommand2_Click()'用户定义Form1.Scale(0,1000)-(1000,0)'定义用户坐标系Line(0,0)-(1000,1000)EndSub缺省坐标系画的直线自定义坐标系画的直线3图形层VB在构造图形时,在三个不同的屏幕层次上放置图形的可视组成部分。就视觉效果而言,最上层离用户最近,而最下层离用户最远。图形层放置的对象一览表层次对象类型最上层工具箱中除标签、线条、形状,image外的控件对象中间层标签、线条、形状控件对象和image最下层由图形方法所绘制的图形位于上层的对象会覆盖下层相同位置的任何对象,即使下层对象在上层对象后面绘制。处于同一图形层的对象的叠放顺序与操作有关,后绘在前绘上面。同一图形层内控件对象排列顺序称为Z序列。运行时可通过Zorder方法将特定的对象调整到同一图层的前面或后面。如果控件不属于同一层,则Zorder方法无效。Zorder方法的语法格式为:对象.Zorder[position]position=0表示该控件被定位于Z序列的前面position=1表示该控件被定位于Z序列的后面9.3图形属性1CurrentX,CurrentY属性CurrentX属性:设置或返回的当前坐标的水平坐标CurrentY属性:设置或返回的当前坐标的垂直坐标注意:这两个属性在设计阶段不能使用;当使用Cls方法后,CurrentX、CurrentY属性值为0。例:利用CurrentX,CurrentY属性在窗体上输出100个★

PrivateSubForm_paint()'自动执行

DimiAsIntegerRandomizeFori=1To100CurrentX=Form1.Width*RndCurrentY=Form1.Height*RndForm1.ForeColor=RGB(CurrentX*Rnd,CurrentY*Rnd,Form1.Height*Rnd)'置色

Print"★"NextiEndSub2线宽(DrawWidth)属性和线型(DrawStyle)属性

给出在这些对象上所画线的宽度或点的大小,以像素为单位来度量,最小值为1。

DrawWidth属性DrawStyle属性在窗体或图形框或打印机上用它们的的DrawStyle属性给出在这些对象上用画图方法所绘出线的形状(对线和形状控件所绘出的线、框不起作用)。例:

改变DrawStyle属性值在窗体上画出不同形状的线形,通过改变DrawWidth属性值画一系列宽度递增的直线。PrivateSubForm_Click()DimjAsIntegerCurrentX=0'设置开始位置

CurrentY=ScaleHeight/2DrawWidth=1'定义线的宽度为1Forj=0To6DrawStyle=j'定义线的形状

ForeColor=QBColor(j)'设置颜色

Line-Step(ScaleWidth/15,0)'画线NextjForj=1To6DrawWidth=j*3'定义线的宽度

ForeColor=QBColor(j)'设置颜色

Line-Step(ScaleWidth/15,0)'画线

NextjEndSub3填充颜色(FillColor)属性和填充样式(FillStyle)属性FillColor属性

FillColor指定填充图案的颜色,默认的颜色同ForeColor,也可以通过VB中的颜色符号常量(如:vbRed)指定颜色,还可以通过以下颜色函数指定色彩。(1)RGB(红,绿,蓝)函数红、绿、蓝三基色混合产生某种颜色,这三基色的数值范围是0~255之间的整数。从理论上来说,用三基色混合可产生256×256×256种颜色。例如,RGB(0,0,0)返回黑色,RGB(255,255,255)返回白色。(2)QBColor(颜色码)函数

QBColor函数根据颜色码返回一个指定红、绿、蓝三原色的值,用于设置VB中RGB系统的对应颜色。格式:QBColor(value)value:0~7、8~15(为0~7颜色加亮)

颜色码与颜色对照表颜色码RGB颜色颜色码RGB颜色0(0,0,0)黑色8(128,128,128)灰1(0,0,128)蓝9(0,0,255)浅蓝2(0,128,0)绿10(0,255,0)浅绿3(0,128,128)青11(0,255,255)浅青4(128,0,0)红12(255,0,0)浅红5(128,0,128)品红13(255,0,255)浅品红6(128,128,0)黄14(255,255,0)浅黄7(192,192,192)白15(255,255,255)亮白FillStyle属性FillStyle属性设置封闭图形的填充图案样式,共有8种图案设置值常数说明0vbFSSolid以FillColor绘制实心四方形1vbFSTransParent透明(缺省值)2vbHorizontalLine水平线3vbVerticalLine垂直线4vbUpwardDiagonal左上到右下斜线5vbDownwardDiagonal右上到左下斜线6vbCross网状格线7vbDiagonalCross网状斜线9.4图形方法1Pset方法用Pset方法在窗体、图形框和打印机指定位置画点。格式:[<对象>.]PSet[Step](x,y)[,Color]

说明:(1)<对象>为窗体、图片框或打印机,缺省为当前窗体;(2)Step为可选关键字,指定相对于由CurrentX和CurrentY属性提供的当前图形的位置坐标;(3)(x,y)为点的水平和垂直坐标,可以是整数也可以包含小数;(4)Color用于为该点指定颜色,缺省时,使用当前对象的ForeColor属性值。可用RGB函数或QBColor函数指定颜色。

例:

用Pset方法绘制具有动感的阿基米德螺线。

阿基米德螺线,亦称“等速螺线”。当一点P沿动射线OP以等速率运动的同时,这射线有以等角速度绕点O旋转,点P的轨迹称为“阿基米德螺线”。直角坐标系下的坐标值为:

x=rcos(Q)y=rsin(Q)r和Q为极坐标系的坐标PrivateSubForm_activate()Timer1.Interval=100DrawWidth=5'设置点宽和线宽EndSubPrivateSubTimer1_Timer()'定时器事件

DimxAsSingle,yAsSingle,IAsSingleScale(-15,15)-(15,-15)Line(0,14)-(0,-14),vbRed'x轴为红色

Line(14.5,0)-(-14.5,0),vbYellow'y轴为黄色

ForI=0To12Step0.01y=I*Sin(I)'阿基米德螺线参数方程

x=I*Cos(I)'阿基米德螺线参数方程

PSet(x,y),RGB(Rnd*256,Rnd*256,Rnd*256)NextIEndSub界面设计是添加Timer控件2Line方法Line方法用于在指定两点之间用指定的颜色画线或矩形,其语法格式如下:[<对象>.]Line[[Step](x1,y1)]–[Step](x2,y2)[,颜色[,B[F]]]说明:(1)<对象>为窗体、图片框或打印机,缺省为当前窗体;(2)选择前Step,则(x1,y1)是相对坐标,是相对于当前坐标的相对坐标;(3)(x1,y1)为直线或矩形的起点坐标。如果省略,起点为当前坐标;(4)选择后Step,则(x2,y2)是相对坐标,是相对于线的起点的终点坐标;(5)(x2,y2)为

温馨提示

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

评论

0/150

提交评论