图形的控制与处理课件.ppt

上传人:牧羊曲112 文档编号:6558713 上传时间:2023-11-12 格式:PPT 页数:45 大小:847.50KB
返回 下载 相关 举报
图形的控制与处理课件.ppt_第1页
第1页 / 共45页
图形的控制与处理课件.ppt_第2页
第2页 / 共45页
图形的控制与处理课件.ppt_第3页
第3页 / 共45页
图形的控制与处理课件.ppt_第4页
第4页 / 共45页
图形的控制与处理课件.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《图形的控制与处理课件.ppt》由会员分享,可在线阅读,更多相关《图形的控制与处理课件.ppt(45页珍藏版)》请在三一办公上搜索。

1、第10章 图形的控制与处理,主讲:,10.1 图形控件,VB提供的与绘图有关的标准控件有图片框(PictureBox)、图像框(Image)、直线(Line)和形状(Shape)。Image、Line、Shape控件需要较少的系统资源,且包含PictureBox中可用的属性、方法和事件子集,因此他们比PictureBox控件显示速度快些。PictureBox和Image控件可以显示位图、图标、图元文件中的图形,也可处理GIF和JPEG格式的图形文件。,10.1.1 PictureBox控件,图片框(PictureBox)控件的主要作用是在窗体的指定位置为用户显示图片,也可作为其它控件的容器、显

2、示Print方法输出的文本或显示图形方法输出的图形。实际显示的图片由Picture属性决定。在工具箱面板中,PictureBox控件的图标如图10-1所示。,图10-1 PictureBox控件的图标,10.1.1 PictureBox控件,1、主要属性,10.1.1 PictureBox控件,2、加载图片,(1)在设计阶段加载图片文件有两种方法:1)通过设置属性窗口中的Picture属性来加载图片,步骤如下:在窗体上建立一个图片框保持图片框为激活的控件,在属性窗口中找到Picture属性,单击该属性条,其右侧出现“”按钮单击“”按钮,屏幕显示“加载图片”对话框,从相应文件夹中找到所需加载的图

3、片,单击打开,图片即被加载2)利用剪贴板加载用绘图或图像处理软件完成图形处理,并将图形复制到剪贴板中切换到VB,在窗体上建立图片框,并保持为激活状态使用“粘贴”命令,即完成图片加载,10.1.1 PictureBox控件,2、加载图片,(2)在运行阶段通过LoadPicture函数加载图片,格式如下:对象名.Picture=LoadPicture(图片文件名)例如:加载图片:Picture1.Picture=LoadPicture(C:PicMyPic1.gif),10.1.1 PictureBox控件,3卸载图片和复制图片,(1)卸载图片卸载图片文件也有两种方法:一种是在设计阶段卸载,另一种

4、是在运行阶段卸载。在设计阶段设置属性窗口中的Picture属性为None,在运行阶段通过LoadPicture函数卸载图片,格式如下:对象名.Picture=LoadPicture()(2)复制图片复制图片可以利用Picture属性和LoadPicture()函数来完成,如:Picture1.Picture=LoadPicture(C:PicMyPic1.gif)Picture2.Picture=Picture1.Picture,10.1.1 PictureBox控件,4图形文件的保存,格式:SavePicture picture,stringexpression说明:picture:图片框对

5、象或其他对象的picture属性Stringexpression:文件名,10.1.1 PictureBox控件,5Paint事件,在一个对象被移动或放大之后,或在一个覆盖该对象的窗体被移开之后,该对象部分或全部暴露时,此事件发生。如果AutoRedraw属性被设置为True,重新绘图会自动进行,就不需要Paint事件。,10.1.1 PictureBox控件,6常用方法,图片框中常使用Cls方法和Print方法。【例10-1】在C:新建一个文件夹stu1,将我的文档中的示例图片Sunset.JPG复制到stu1文件夹下。再启动VB,在stu1文件夹下新建一个工程文件,其布局与运行结果如图10

6、-2所示。,图10-2 控件布局图及运行结果图,10.1.1 PictureBox控件,(1)控件选择:两个标签控件:Label1、Label2;两个图片框控件:Picture1、Picture2;三个命令按钮:Cmd1、Cmd2、Cmd3(2)控件属性设置:,10.1.1 PictureBox控件,(3)代码编写:编写命令按钮Cmd1的Click事件:Private Sub Cmd1_Click()Picture1.Picture=LoadPicture(App.Path&Sunset.JPG)End Sub 编写命令按钮Cmd2的Click事件:Private Sub Cmd2_Click

7、()Picture2.Picture=Picture1.PictureEnd Sub编写命令按钮Cmd3的Click事件:Private Sub Cmd3_Click()Picture1.Picture=LoadPicture()Picture2.Picture=LoadPicture()End Sub说明:App.Path用于取得当前工程文件所在的文件夹路径,App.Path&Sunset.JPG指明了Sunset.JPG文件的物理位置。这种方法常被应用,可提高程序的可移植性。,10.1.2 Image控件,图像框(Image)控件是一个简单易用的显示图像文件的控件,其使用的系统资源较少而且

8、显示速度较快,它可以自动调整自身的大小以适应图像大小,或者伸缩图像的大小使图像适合图像框控件的大小。Image加载图片的方法和使用图片的文件格式与PictureBox相同。在工具箱面板中,Image控件的图标如图10-3所示。,图10-3 Image控件的图标,10.1.2 Image控件,1.主要属性,10.1.2 Image控件,2常用事件图像框可以响应Click和DblClick事件3Image与PictureBox的区别(1)PictureBox是“容器”控件,可以作为父控件,而Image不能作为父控件。也就是说,在PictureBox中,可以包含其它控件,作为他的子控件,如果移动Pi

9、ctureBox,则框中的控件也随之一起移动,并且与PictureBox的相对位置保持不变;当PictureBox的大小改变时,这些子控件的图片控制的相对位置保持不变,PictureBox内的子控件也不能移到PictureBox外。(2)PictureBox可以通过Print方法接收文本,并可接收由像素组成的图形,而Image不能接受用Print方法输入的信息,也不能用绘图方法在Image上绘制图形。(3)Image比PictureBox占用内存少,显示速度快。(4)Image没有AutoSize属性,但可以实现图形缩放,10.1.2 Image控件,【例10-2】在C:新建一个文件夹stu2

10、,将我的文档中的示例图片Sunset.JPG复制到stu2文件夹下。再启动VB,在stu2文件夹下新建一个工程文件,其布局与运行结果如图10-4所示。,图10-4 控件布局图及运行结果图,10.1.2 Image控件,(1)控件选择:1个图像框Image1;2个命令按钮:Command1、Command2(2)控件属性设置,10.1.2 Image控件,(3)代码编写:编写命令按钮Command1的Click事件:Private Sub Command1_Click()If Image1.Height 1000 Or Image1.Width 2000 Then Image1.Height=I

11、mage1.Height-500 Image1.Width=Image1.Width-500 End IfEnd Sub编写窗体Form1的Load事件:Private Sub Form_Load()Image1.Picture=LoadPicture(App.Path&Sunset.JPG)End Sub,10.1.3 Line控件,Line控件可用来在窗体、框架或图片框中创建各种直线。既可以在设计时通过设置直线的端点坐标来画直线,又可以在程序运行时动态地改变直线的各种属性。Line控件主要属性是BorderWidth、BorderStyle和BorderColor属性,以及X1、Y1和X2

12、、Y2属性。BorderWidth确定线的宽度,BorderStyle确定线的形状,BorderColor确定线的颜色。X1、Y1和X2、Y2属性控制线的两个端点的位置。程序运行时,不能使用Move方法移动Line控件,但是可以通过改变X1、Y1、X2、Y2属性来移动或调整直线。在工具箱面板中,Line控件的图标如图10-5所示。,图10-5 Line控件的图标,10.1.4 Shape控件,Shape控件可用来在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。通过设置Shape控件的Shape属性来实现所需要的形状,以控制Shape控件的外观。在工具箱面板中,Sha

13、pe控件的图标如图10-6所示。,图10-6 Shape控件的图标,10.1.4 Shape控件,语法:对象名.Shape=value其中,对象名是Shape控件的Name属性;value用来指定控件外观的整数。其设置值如表10-5所示。,10.2坐标系统,对象定位使用的是容器的坐标系,每个容器都有一个坐标系。坐标系由三要素构成:坐标原点,坐标度量单位(刻度),坐标轴的长度与方向。VB提供两类坐标系:默认坐标系和自定义坐标系。默认坐标系中原点(0,0)定位于对象容器用户区的左上角,X轴向右为正方向,Y轴向下为正方向。对象坐标的度量单位由容器对象的ScaleMode属性决定,共有8种形式的单位,

14、默认为Twip。用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的方向。,10.2坐标系统,建立自定义坐标系更简单的做法是调用容器对象的Scale方法,语法格式为:容器对象.Scale(x1,y1)-(x2,y2)说明:容器对象是指窗体或图片框,省略时默认为当前窗体。(x1,y1)为左上角的坐标,(x2,y2)为右下角的坐标。注意两对括号之间的“-”不代表相减。调用Scale方法后,ScaleLeft和ScaleTop属性分别被设为x1和y1的值。ScaleWidth属性被设为x2与x1之差,ScaleHeight属性被设为y2与y1之差。若省略(x1,y1)-(x2,y2)

15、,则恢复默认坐标系统,即以容器对象的左上角为坐标原点。,10.3相关属性和函数,与绘图方法有关的属性 10.3.2 与颜色有关的函数,与绘图方法有关的属性,1当前坐标CurrentX,CurrentY属性给出窗体或图片框或打印机在绘图时的当前坐标。这两个属性在设计阶段不能使用,使用CLS方法后,CurrentX、CurrentY属性值为0。2线宽和线型DrawWidth属性用来返回或设置图形方法输出的线宽。属性值的单位为像素,取值范围为132767,默认值为1。DrawStyle属性用来返回或设置图形方法输出的线型,如表10-6所示。该属性的设置值04的效果分别与Line控件的BordeSty

16、le属性的15对应。若DrawWidth属性设置值大于1,在DrawStyle属性被设置为14时,只能画实线。,与绘图方法有关的属性,2线宽和线型,表10-6 DrawStyle设置表,与绘图方法有关的属性,2线宽和线型,表10-7 FillStyle设置表,与绘图方法有关的属性,3填充颜色与填充样式FillColor属性用于为Line和Circle方法生成的矩形和圆填充颜色。FillStyle属性用于为Line和Circle方法生成的矩形和圆指定填充的图案,如表10-7所示。该属性的设置值与Shape控件的FillStyle属性相同。除Form对象外,若FillStyle属性被设置为默认值1

17、(透明),则忽略FillColor属性的设置值。,10.3.2 与颜色有关的函数,颜色的使用是绘图操作中的重要环节。在程序运行时,有四种方式可以指定颜色值:使用QBColor函数;使用RGB函数;使用内部常数;直接输入颜色值。1QBColor函数QBColor函数能够选择早期版本的Basic所规定的16种颜色之一。其语法格式为:QBColor(Color)说明:Color是一个界于015的整型数,用于指定颜色。表10-8列出了QBColor函数中Color取值所对应的颜色。,10.3.2 与颜色有关的函数,表10-8 QBColor函数中Color的取值与所对应的颜色,10.3.2 与颜色有关

18、的函数,2RGB函数RGB函数用来返回一个Long整数,用来表示一个RGB颜色值。其语法格式为:RGB(red,green,blue)说明:red是必需的,Variant(Integer)。数值范围从0255,表示颜色的红色成分。green是必需的,Variant(Integer)。数值范围从0255,表示颜色的绿色成分。blue是必需的,Variant(Integer)。数值范围从0255,表示颜色的蓝色成分。一个RGB颜色指定红、绿、蓝三原色的成分,生成一个用于显示的特定的颜色。传给RGB的任何参数的值,如果超过255,会被当做255。表10-9列出了常见的标准颜色RGB的值。,10.3.

19、2 与颜色有关的函数,2RGB函数,表10-9 常见的标准颜色RGB的值,10.4图形方法,10.4.1 Line方法10.4.2 Pset方法10.4.3 Circle方法10.4.4 PaintPicture方法,10.4.1 Line方法,Line方法用于画直线或矩形,其语法格式如下:对象.LineStep(x1,y1)-Step(x2,y2),Color,BF说明:(1)对象:可以是窗体或图片框,若省略则默认为当前窗体。(2)(x1,y1):线段的起点坐标或矩形的左上角坐标。(3)(x2,y2):线段的终点坐标或矩形的右下角坐标。(4)Step:表示采用当前作图位置的相对值。(5)Co

20、lor:线段或矩形边线的颜色。若省略,则使用对象的ForeColor属性值。(6)B:表示画矩形。(7)F:表示用画矩形的颜色来填充矩形,F必须与关键字B一起使用。如果只用B不用F,则矩形的填充由对象当前的FillColor和FillStyle属性决定。画直线时,省略BF参数;画矩形时,参数B为空心矩形,BF为实心矩形。,10.4.1 Line方法,【例10-3】使用Line方法画出如图10-7所示的三角形。首先将窗体的AutoRedraw属性设置为True。然后编写代码如下:Private Sub Form_Load()Line(100,100)-Step(0,500)终点采用相对坐标 Li

21、ne-Step(500,0)以上次画线的终点为本次画线起点 Line-(100,100)返回最初的起点End Sub,图10-7 使用Line方法绘制的三角形,10.4.1 Line方法,【例10-4】用Line方法在窗体上绘制如图10-8所示的同心矩形,每当单击窗体时,矩形的颜色随机变化。编写代码如下:Private Sub Form_Click()Dim CX,CY,F,F1,F2,i 声明变量 CX=ScaleWidth/2 水平中点 CY=ScaleHeight/2 垂直中点 DrawWidth=10 设置线宽 For i=50 To 0 Step-4 从外向内画矩形 F=i/50 坐

22、标偏移量系数。F1=1-F:F2=1+F 计算矩形左上角和右下角坐标偏移量系数。ForeColor=QBColor(Int(Rnd*16)设置前景色为随机色 Line(CX*F1,CY*F1)-(CX*F2,CY*F2),BF 使用参数B画矩形,F参数填充颜色 Next iEnd Sub,图10-8 使用Line方法绘制同心矩形,10.4.2 Pset方法,Pset方法用于在窗体、图片框或打印机指定位置上画点,利用Pset方法可以画任意曲线。其语法格式如下:对象.Pset Step(x,y),Color说明:(1)参数(x,y):必需的。x和y是单精度浮点数,即所画点的水平坐标(x轴)和垂直坐

23、标(y轴)。(2)Step:可选,表示采用当前作图位置的相对值。(3)Color:可选,长整型数,为该点指定RGB颜色。可用RGB函数或QBColor函数指定颜色。如果省略Color,则使用当前的ForeColor属性值。如果使用背景颜色,则可清除某个位置上的点。,10.4.2 Pset方法,【例10-5】绘制正弦曲线和余弦曲线。程序运行结果如图10-9所示。,图10-9 绘制正弦曲线和余弦曲线,10.4.2 Pset方法,本例使用PictureBox控件的Line方法绘制坐标轴,使用其Pset方法描绘曲线。在Form_Load过程中的语句Picture1.Scale(-360,2)-(360

24、,-2),建立了新坐标系:左上角坐标是(-360,2),右下角坐标是(360,-2);坐标原点位于矩形的中心,X轴的正向水平向右,Y轴的正向垂直向上。窗体中除了图片框Picture1外,还需要四个命令按钮:绘制正弦曲线的按钮command1,绘制余弦曲线的按钮command2,清除图片框中的内容的按钮command3,绘制坐标轴的按钮command4。程序代码如下:,10.4.2 Pset方法,Dim StartAngle As Single 存起始角Dim EndAngle As Single 存终止角Dim i As SingleDim Rate As Single 存角度弧度转换系数Pr

25、ivate Sub Form_Load()窗体加载 Picture1.Scale(-360,2)-(360,-2)建立自定义坐标系 StartAngle=-360 起始角 EndAngle=360 终止角 Picture1.CurrentX=-360 绘图起点坐标 Picture1.CurrentY=0 Rate=3.1416/180 角度弧度转换系数End SubPrivate Sub command1_Click()正弦曲线 For i=StartAngle To EndAngle Picture1.PSet(i,Sin(i*Rate)NextEnd SubPrivate Sub comm

26、and2_Click()余弦曲线 For i=StartAngle To EndAngle Picture1.PSet(i,Cos(i*Rate)NextEnd SubPrivate Sub command3_Click()清除 Picture1.ClsEnd SubPrivate Sub command4_Click()画坐标轴 Picture1.Line(-360,0)-(360,0)X轴 Picture1.Line(0,2)-(0,-2)Y轴End Sub,10.4.3 Circle方法,Circle方法用于画圆、椭圆、圆弧和扇形,其语法格式如下:对象.Circle Step(x,y),

27、r,color,起始角,终止角,纵横比说明:(1)对象:可以是窗体、图片框或打印机,省略时默认为当前窗体。(2)Step:表示采用当前作图位置的相对值。(3)(x,y):圆心坐标。(4)r:半径。(5)color:指定圆周边线的颜色。若省略,则使用ForeColor属性值。可以使用所属对象的FillColor和FillStyle属性填充封闭的图形。(6)起始角和终止角:圆弧和扇形通过参数起始角、终止角控制。当起始角、终止角取值在02时为圆弧。当在起始角、终止角的取值前加一负号时,画出扇形,负号表示从圆心到圆弧端点画径向线。(7)纵横比:控制画椭圆,默认值为1,画标准圆。注意:在VB坐标系中,采

28、用逆时针方向绘圆。Circle方法中参数前出现的负号,并不能改变坐标系中旋转的方向。使用Circle方法时,如果想省掉中间的参数,逗号不能省略。例如:画椭圆省掉了颜色、起始角、终止角三个参数,则必须加上四个连续的逗号,它表明这三个参数被省掉了。,10.4.3 Circle方法,【例10-6】用Circle方法画圆、椭圆、圆弧和扇形,运行结果如图10-10所示。程序代码:Private Sub Form_Click()FillStyle=0 FillColor=RGB(255,0,0)Circle(1000,1000),450 Circle(2000,1000),450,2 Circle(300

29、0,1000),450,3.1415926/2,2*3.1415926 Circle(4000,1000),450,-3.1415926/2,-2*3.1415926End Sub,图10-10用Circle方法画圆、椭圆、圆弧和扇形,10.4.4 PaintPicture方法,PaintPicture方法用来把一个窗体或图片框中已装入的图像文件(如:.BMP、.ICO、.WMF等)取出一部分放到另一个(或是它本身)对象中。该方法可实现在绘图对象内部或对象之间的图像复制操作。其语法格式如下:对象.PaintPicture 源图像,x1,y1,Width1,Height1,x2,y2,Width

30、2,Height2说明:(1)对象名为一个对象表达式,是控件的Name属性。缺省时指带焦点的窗体。(2)源图像是必需的,是指在源对象中已装入的图像文件,这里指定的必须是源对象的Picture属性。(3)x1,y1是必需的,分别是指在对象上绘制图像的水平、垂直坐标。(4)Width1、Height1是可选的,指定复制的图像在目标对象中的宽度和高度。当指定的宽度或高度大于或小于复制图像的宽度或高度时,复制对象自动被拉伸或压缩;默认时取原始尺寸;当这两个参数为负数时,复制的图像水平或垂直翻转。(5)x2,y2是可选的,分别是指要复制的区域左上角的水平、垂直坐标。默认值均为0。(6)Width2、He

31、ight2是可选的,指定源对象中要复制区域的宽度和高度。默认时取源尺寸。,10.4.4 PaintPicture方法,【例10-7】在窗体上将图片框中的图片水平翻转后平铺。通过给目标宽度参数设置负值可对图片进行水平翻转。在窗体中央放置一个图片框,在该图片框中添加一幅图片。输入以下代码:Private Sub Form_Click()Picture1.Visible=False Form1.AutoRedraw=TrueDim i As Integer,j As Integer Dim x As Integer,y As Integer x=ScaleWidth Picture1.Width+1 根据窗体大小确定行、列数 y=ScaleHeight Picture1.Height+1 For i=0 To y 行 For j=0 To x 列 PaintPicture Picture1.Picture,j*Picture1.Width,i*Picture1.Height,-Picture1.Width,Picture1.Height Next j Next iEnd Sub,10.4.4 PaintPicture方法,图10-11 例10-7程序布局及运行结果,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号