Visual Basic 程序设计基础:第六章 图形控件和图形方法_第1页
Visual Basic 程序设计基础:第六章 图形控件和图形方法_第2页
Visual Basic 程序设计基础:第六章 图形控件和图形方法_第3页
Visual Basic 程序设计基础:第六章 图形控件和图形方法_第4页
Visual Basic 程序设计基础:第六章 图形控件和图形方法_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章 图形技术 2 一个软件能否吸引用户,很重要的一点是对图形技术的运用是否得当。漂亮的界面,生动的图形图像,往往能够激发起用户使用软件的欲望。图形控件VB坐标系图形方法本章细分为以下内容:31、 PictureBox控件(图片框控件)主要作用:显示图片、绘图和显示文本、作为其他控件的容器。主要属性: Picture(配合LoadPicture 函数)装入图片: 对象名. Picture = LoadPicture(“图片文件”)删除图片: 对象名. Picture = LoadPicture( “”)6.1 图形控件PictureBox控件的另一个很重要的属性:AutoSize当所要显示的

2、图形比控件大时,如果AutoSize为False,超过的部分将被裁剪掉,且控件不提供滚动条;如果AutoSize为True,那么控件将会自动调整大小以显示完整图形。PictureBox控件主要方法:可以使用Print、 Cls 、 Pset、Line、Circle、Point方法主要事件: Change、Click、MouseDown、MouseUp、MouseMove等。例子:Private Sub Command1_Click()Picture1.Autosize=TruePicture1.Picture = LoadPicture(“D:巨蟹座.jpg)Picture1.Print “星

3、座图片”End Sub66.1 图形控件2、Image控件(影像框控件)主要作用:显示图片。影像框比图片框占用的内存少,所以速度较快。 影像框内不能使用Print、Pset、Line、Circle等方法进行绘图和输出文本,影像框也不能作为其他控件的容器。除了Picture属性之外,Image控件的一个很重要的属性:StretchStretch属性=False,影像框自动改变大小适应其中的图片Stretch属性=True,图片自动调整尺寸适应影像框常用事件:与Picture控件类似,如Change、Click等。2、Image控件(影像框控件)86.1 图形控件3、Shape控件(形状控件)主要

4、属性:Shape 改变它可以得到以下6种图形,把这些图形作为控件来看待的。BorderStyle:边框类型BorderColor:边框颜色BorderWidth:边框宽度,如果其属性值大于1,则边框类型必然是solidFillStyle:填充类型FillColor:填充颜色实例6-4: 形状控件示例在窗体上添加6个形状控件,并设计成控件数组,取名为Shape1;2个命令按钮用于控制程序的运行。116.1 图形控件4、Line(直线控件)可以使用Line控件画直线,这是把所画出来的直线作为一个控件来看待的。 Line控件的重要属性:X1、Y1、X2、Y2,分别表示直线两个端点的坐标。Line控件

5、不响应任何事件,它只支持表面显示。126.2 Visual Basic坐标系 VB中所有的对象,都是放在容器内的。要对对象进行定位,首先要了解容器内的坐标系统。 坐标系统包含三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向 每个容器都有一个默认的坐标系。最常见的容器是窗体和图片框。 容器的坐标系确定以后,就可以知道容器内对象的定位,与定位有关的四个属性是: Left、Top、Width、Height 13默认坐标系统(原点左上角、单位缇)HeightYX0,0容器WidthHeight对象1对象2WidthLeftTopLeftTop14定制坐标系统 使用默认的坐标系统,坐标原点只能在容器

6、的左上角。通过定制坐标系统,可以任意地设定坐标系统的原点位置以及坐标的刻度。用到的容器属性:ScaleLeft、ScaleTop、ScaleWidth、ScaleHeightYX缺省坐标系ScaleLeft=0ScaleTop=00YX坐标平移Scaleleft= -30ScaleTop= -500(-30,-50)15定制坐标系统容器内部左上角的坐标通过ScaleLeft、ScaleTop来确定,右下角的坐标还要用到另外两个属性:ScaleWidth、ScaleHeight。右下角的坐标值为: (ScaleLeft+ScaleWidth,ScaleTop+ScaleHeight)同时确定了坐

7、标系的方向和单位YX0(50,-60)ScaleLeft=0ScaleTop=0ScaleWidth=50ScaleHeight=-60YX两个对角点确定一个坐标系ScaleLeft= -30ScaleTop= -50ScaleWidth=100ScaleHeight=1100(-30,-50)(70,60)16定制坐标系统ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight,这四个属性并不会改变容器本身的大小尺寸,它们所起的作用只是对容器内部区域的“重新规划”。YX0(50,-60)ScaleLeft=0ScaleTop=0ScaleWidth=50ScaleH

8、eight=-60YX两个对角点确定一个坐标系ScaleLeft= -30ScaleTop= -50ScaleWidth=100ScaleHeight=1100(-30,-50)(70,60)17例、通过ScaleTop,ScaleLeft,ScaleWidth和ScaleHeight 属性,自定义图片框Pic1的坐标系。Pic1. ScaleLeft = -200Pic1. ScaleTop = 250Pic1. ScaleWidth = 500Pic1. ScaleHeight = -400YX0300-200-150250窗体Form118 定制容器内部的坐标系,除了利用以上所提的Sca

9、leLeft、ScaleTop、ScaleWidth、ScaleHeight这四个属性之外,我们还可以利用Scale方法进行定制。定制坐标系统19语法:容器.Scale (xLeft,yTop) (xRight,yBottom)容器左上角的坐标值容器右下角的坐标值定制坐标系统20YX0300-200-150250 例如,建立和上面一样的坐标系。 Pic1.Scale (-200,250) (300, -150)定制坐标系统Pic1. ScaleLeft = -200Pic1. ScaleTop = 250Pic1. ScaleWidth = 500Pic1. ScaleHeight = -40

10、021刻度可以通过容器的ScaleMode属性设置。0用户定义。1缇。这是缺省刻度。1英寸=1140缇2磅。72磅= 1英寸3象素。监视器或打印机分辨率的最小单位。4字符。打印时,一个字符有1/6英寸高1/12英寸宽5英寸6毫米7厘米坐标刻度ScaleMode属性Private Sub Command1_Click() Form1.ScaleMode = 6 Print Command1.WidthEnd Sub应用Scale方法或者改变了ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth属性值后,ScaleMode的值自动变为023例:点击按钮,使Shape1

11、对象移动。Private Sub Command1_Click() If Shape1.Left = Form1.Width Then Shape1.Left = -Shape1.Width Shape1.Left = Shape1.Left + 1000 Else Shape1.Left = Shape1.Left + 1000 End IfEnd Sub241、执行下面程序段之后,窗体左上角坐标为(), 右下角坐标为()? Form1.ScaleTop = 1:Form1.ScaleLeft = 1 Form1.ScaleHeight = -2:Form1.ScaleWidth = 2答案

12、:(1,1) (3,1) 真题练习252、与语句Scale(2,2)(2,2)等价的程序段是()?A、ScaleLeft = 2 :ScaleTop = 2 ScaleWidth = 2 :ScaleHeight = 2B、 ScaleLeft = 2 :ScaleTop = 2 ScaleWidth = 4 :ScaleHeight = 4C、 ScaleLeft = 4 :ScaleTop = 4 ScaleWidth = 2 :ScaleHeight = 2D、 ScaleLeft = 4 :ScaleTop = 2 ScaleWidth = 4 :ScaleHeight = 2答案:B

13、真题练习26判断题:移动框架时框架内控件也跟随移动,所以框架内各控件的Left、Top属性值也将随之改变。答案:错真题练习判断题:用Scale方法改变了窗体坐标系后,窗体的Left、Top属性值不变。答案:对276.3 图形方法(pset,line,circle)以及函数point6.3.1 使用颜色可以使用5种方式设置颜色:(1)直接在属性栏里进行设置。(2)使用RGB函数。(3)使用QBColor函数,选择16种Qbasic颜色中的一种。(4)使用系统提供的颜色常数。(5)直接使用Long类型颜色值。 286.3.1 使用颜色(2)使用RGB函数 RGB(red, green, blue)

14、说明: red, green, blue3种颜色,从0255之间的一个亮度值(0表示亮度最低,而255表示亮度最高)。例:Form1.BackColor = RGB(126,76,200) 设定背景紫色(3)使用QBColor函数其使用格式如下: QBColor(color) 说明: color参数是一个界于015的整型数,分别代表16种颜色,如表6-2所示。296.3.1 使用颜色(4)使用系统定义的颜色常数 在VB系统中已经预先定义了常用颜色的颜色常数,如常数vbRed就代表红色,vbGreen代表绿色等等。例如,要将窗体的背景色设为红色。则可使用如下语句:Form1.BackColor

15、= vbRed(5)直接使用颜色设置值 用十六进制数指定颜色的格式为: &HBBGGRR其中,BB指定蓝颜色的值,GG指定绿颜色的值,RR指定红色的值。每个数段都是两位十六进制数,即从00FF。例如, Form1.BackColor = &HFF0000它相当于:Form1.BackColor = RGB(0, 0, 255)30 1设置线宽DrawWidth 属性 窗体、图形框或打印机的DrawWidth属性给出这些对象上所画线的宽度或点的大小。例如:Form1.DrawWidth = 2 (宽度为2个象素)缺省值为 1,即一个像素宽。6.3.2 线宽、线型与填充模式31 窗体或图形框或打印

16、机的DrawStyle属性给出这些对象上所画线的形状。2. 设置线型DrawStyle 属性326.3.3 图形方法与应用(1)Pset方法画点 其语法格式如下: 容器.Pset (X,Y) ,color 例:单击窗体画出带颜色的随机点。Form1.PSet (Rnd * Form1.Width, Rnd * Form1.Height), QBColor(Int(Rnd * 16)缺省为ForeColor例6-6 利用Pset方法绘制Cos(x)函数曲线Private Sub Form_Click() Dim x As Integer, i As Integer For i = 0 To 10

17、000 PSet (i, 1200), vbRed Next i For x = 0 To 1000 PSet (x, 1000 * Cos(x * 3.1415926 / 1800) + 1200), vbBlue Next xEnd Sub(1)Pset方法画点34(2)Point函数获取任意点的颜色值 格式:Point(x,y) 该函数的返回值为点(x,y)的颜色值 CPoint(50,100)35(3)line方法画线、矩形 容器名. Line (x1,y1)(x2,y2),Color,BF 其中:对象可以是窗体或图片框。 (x1,y1) ,(x2,y2)为线段的起点、终点坐标。省略起

18、点,缺省为当前输出位置,缺省Color为容器的ForeColor属性。B表示画矩形,F表示用画矩形的边框颜色来填充矩形,若无F,则由对象的FillColor和FillStyle来决定填充色。Private Sub Form_Click() DrawWidth = 5 决定线的宽度 FillStyle = 0 FillColor = vbYellow Line (1000, 1000)-(3000, 3000), QBColor(12), BEnd Sub 各参数可根据实际要求进行取舍,但如果舍去的是中间参数,参数的位置分隔符不能舍去。37(1)当前坐标的概念(当前输出位置) 容器的Curren

19、tX,CurrentY属性即表示在绘图时的当前坐标,也就是系统最近所获得的那个坐标位置。在还没有开始画图的时候,当前坐标等于(ScaleLeft,ScaleTop),也就是容器左上角的坐标。(2)相对坐标的概念 如果坐标值前加上关键字Step,就表示使用的是相对坐标,例如 Step (x,y)。表示从当前坐标分别再加上x、y的值。38对象. Line (x1,y1)Step (x2,y2),颜色,BF对象. PSet Step (x,y) ,颜色例如:Line (200,100)(250,150) 等价于 Line (200,100)Step (50,50)39画一条从(250,300)到(4

20、00,500)点的直线例:画一个左上角在(20,40),右下角在(150,200)的矩形,注意在color 参数省略时,逗号并不省略。出发点是(150,250),终点是向X轴正向走150,向Y轴正向走50的点从当前位置(由CurrentX,CurrentY决定)画到(400,500)Line (250,300)-(400,500)Line - (400,500)Line (150,250) - Step (150,50) 等同于:Line (150,250) - (300,300)Line (20,40) - (150,200) , , B40真题练习1、当使用Line方法画直线后,当前坐标为

21、()?A、容器对象的原点B、直线的起点C、直线的终点D、容器对象的中心答案:C41真题练习2、假设窗体的当前坐标为(200,200),则执行语句Line Step(100,100)Step(200,200)时,绘制的直线的起点坐标为()?终点坐标为()?答案:(300,300) (500,500)423、语句 Line(100,100)(500,500),vbRed,BF 的功能是()?答案:在窗体上绘制一个红色的实心矩形真题练习43真题练习4、Form1.FillColor = vbBlue Form1.FillStyle = 0 Line(100,100)(500,500),vbRed,B

22、 以上程序段的功能是()?答案:在窗体上绘制一个边框为红色、填充色为 蓝色的矩形。44(4)Circle方法画圆、椭圆、圆弧、扇形格式: 对象. Circle Step (x,y),半径,颜色,起始角,终止角,纵横轴比率其中: (x,y)为圆心坐标,可选关键字Step表示采用相对坐标值;例如:Circle (1000, 1000), 1000圆弧和扇形通过参数起始角,终止角控制(单位:弧度)。角度前加负号表示在圆心和圆弧间画出径向线;负号并不是表示负角度。 椭圆通过纵横轴比率控制,默认值为1,画圆。 Circle (1000, 1000), 1000, vbRed, 0.1, 0.7Circle (1000, 1000), 1000, vbRed, , , 3Circle

温馨提示

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

评论

0/150

提交评论