VisualBasic程序设计(第二版) 丁爱萍 第13章 图形与图像设计

上传人:E**** 文档编号:89375528 上传时间:2019-05-24 格式:PPT 页数:66 大小:1.11MB
返回 下载 相关 举报
VisualBasic程序设计(第二版) 丁爱萍 第13章  图形与图像设计_第1页
第1页 / 共66页
VisualBasic程序设计(第二版) 丁爱萍 第13章  图形与图像设计_第2页
第2页 / 共66页
VisualBasic程序设计(第二版) 丁爱萍 第13章  图形与图像设计_第3页
第3页 / 共66页
VisualBasic程序设计(第二版) 丁爱萍 第13章  图形与图像设计_第4页
第4页 / 共66页
VisualBasic程序设计(第二版) 丁爱萍 第13章  图形与图像设计_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《VisualBasic程序设计(第二版) 丁爱萍 第13章 图形与图像设计》由会员分享,可在线阅读,更多相关《VisualBasic程序设计(第二版) 丁爱萍 第13章 图形与图像设计(66页珍藏版)》请在金锄头文库上搜索。

1、第13章 图形与图像设计,13.1 绘制图形 13.2 显示图片 习题十三,13.1 绘 制 图 形,在VB中,绘制图形的方法有两种: (1) 使用图形控件,如Line控件、Shape控件; (2) 使用绘图方法,如Line方法、Circle方法等。,13.1.1 图形控件 1. Shape控件 Shape控件预定义了6种形状,通过设置Shape属性来实现所需的形状,如表13-1所示。,表13-1 Shape属性设置值,图13.1 用Shape控件画出的图形,表13-2 Shape控件的常用属性,图13.2 设计时通过设置属性显示不同图形,【例13-1】 编写程序显示Shape控件的6种形状,

2、并设置不同的填充样式。 设计步骤如下: (1) 在窗体上建立Shape控件数组Shape1(0)Shape1(5)。 (2) 编写事件代码。,Private Sub Form_Activate() Dim i As Integer Print Print “ 0 1 2 3 4 5 “ Shape1(0).Shape = 0 Shape1(0).FillStyle = 2 For i = 1 To 5,Shape1(i).Left = Shape1(i - 1).Left + 1000 确定控件位置 Shape1(i).Shape = i 通过Shape属性改变控件形状 Shape1(i).F

3、illStyle = i + 2 通过FillStyle属性改变填充样式 Shape1(i).Visible = True Next i End Sub 程序运行结果如图13.3所示。,图13.3 用程序改变Shape控件的属性,2. Line控件 直线(Line)控件与Shape控件相似,但仅用于画线。Line控件用于在窗体、图片框和框架中画各种直线段,既可以在设计时通过设置线的端点坐标属性来画出直线,也可以在程序运行的时候动态地改变直线的各种属性。,图13.4 设计时用Line控件所画的直线,13.1.2 图形的坐标系统 在VB中,每个对象定位于存放它的容器内,对象定位都要使用容器的坐标系

4、。例如,窗体处于屏幕(Screen)内,屏幕是窗体的容器;在窗体内绘制对象,窗体就是容器;如果在图形框内绘制图形,该图形框就是容器。 任何容器的缺省坐标系统,都是由容器的左上角(0,0)坐标开始,如图13.5所示。沿这些坐标轴定义位置的测量单位,统称为刻度。在VB中,坐标系统的每个轴都有自己的刻度。,图13.5 窗体的坐标系统,1. 坐标单位 坐标单位即坐标的刻度,缺省的坐标系统采用twip为单位。设置对象的ScaleMode属性可以改变坐标系统的单位,例如可以采用像素或毫米为单位。表13-3列出了ScaleMode属性可能的取值。,表13-3 ScaleMode属性设置值,2. 坐标方法 使

5、用Scale方法也可以设置用户的坐标系统,其语法格式为 object. Scale(x1,y1)-(x2,y2) 3. 坐标属性 与坐标系统有关的属性如表13-4所示。,表13-4 坐标属性,13.1.3 与图形有关的属性 在VB中,窗体、图片框或Printer对象都有一些与图形有关的属性,这些属性能够设置颜色、线型和填充样式,程序可以利用这些属性绘制丰富多彩的图形。表13-5列出了这些图形属性。,表13-5 对象的图形属性,13.1.4 使用颜色 1. 颜色属性 窗体和图片框都有两个关于颜色的属性,即BackColor属性和ForeColor属性: BackColor属性定义了绘画区的背景颜

6、色。 ForeColor属性决定了对象上绘制的文本或图形的颜色,改变ForeColor属性,不影响已创建的文本或图形。,2. 颜色函数 VB提供了两个专门处理颜色的函数RGB和QBColor函数。 1) RGB函数 RGB函数是颜色函数中最常用的一个,语法为 RGB(red,green,blue) 其中,red、green、blue分别表示颜色的红色成份、绿色成份、蓝色成份,取值范围都是0255。,RGB函数采用红、绿、蓝三基色原理,返回一个Long整数,用来表示一个RGB颜色值。表13-6列出一些常见的标准颜色以及这些颜色的红、绿、蓝三原色的成份值。,表13-6 常见的标准颜色RGB值,2)

7、 QBColor函数 QBColor函数沿用于早期的Basic版本,它返回一个用来表示所对应颜色值的RGB颜色码。语法为 QBColor(color) 其中,color参数是一个介于015的整型值,如表13-7所示。,表13-7 color参数的设置值,13.1.5 常用绘图方法 VB提供的绘图方法可以更加灵活地绘制图形。 1. 画点方法(PSet) PSet方法可以在对象的指定位置(x,y),按确定的像素颜色画点,语法为 object. PSet Step (x, y), 颜色,【例13-2】 利用PSet方法画出“满天星”。 为了简便,直接在窗体上产生“满天星”。将窗体的背景色改为白色,以

8、便清晰显示。 编写事件代码如下:,Private Sub Form_Load() Show DrawWidth = 3 控制画出点的大小 Randomize For i = 1 To 1000 x = Form1.ScaleWidth * Rnd 随机定位 y = Form1.ScaleHeight * Rnd 随机定位 r = Int(255 * Rnd) 颜色值为随机数 g = Int(255 * Rnd),b = Int(255 * Rnd) Form1.PSet (x, y), RGB(r, g, b) 画点 For n = 1 To 50000: Next n 用空循环实现延时效果

9、Next i End Sub 程序运行后,在窗体上随机产生各种颜色的点,结果如图13.6所示。,图13.6 满天星,【例13-3】 用PSet方法绘制Cos(x)数学函数曲线。 输入下面的窗体事件代码: Private Sub Form_Paint() Dim x As Integer For i = 0 To 10000 用PSet画直线 PSet (i, 1200), vbRed,Next i For x = 0 To 10000 画曲线 PSet (x, 1000 * Cos(x * 3.1415926 / 1800) + 1200), vbBlue Next x End Sub 程序运

10、行结果如图13.7所示。,图13.7 用PSet方法绘制的数学曲线,2. 画直线、矩形方法(Line) Line方法可以在对象上的两点之间画直线或矩形,语法为 object.Line Step x1, y1 - Step (x2, y2) ,颜色 ,B F,图13.8 用Line方法画出的图形,【例13-4】 下面用Line方法的不同参数画出图形,如图13.8所示。 只需如下的窗体事件代码:,Private Sub Form_Paint() Cls Scale (0, 0) -(15, 15) 设置用户坐标系统 Line (1, 1) -(5, 5), 4 画直线 Line (6, 1) -(

11、8, 5), 4, B 画矩形框 Line (10, 1) -(13, 5), 4, BF 画矩形块 For i = 1 To 3 画三个嵌套的方形框 Line (3 + i, 6 + i) -(11 - i, 14 - i), , B Next i End Sub,在使用PSset和Line方法时,在每个坐标点(x,y)之前,可加上Step关键字,用来指出将要画出的点和当前坐标点的相对位置,如上例中的第4,5,6行语句可以用以下语句代替: Line (1, 1)Step(4, 4), 4 画直线 Line (6, 1)Step(2, 4), 4, B 画矩形框 Line (10, 1)Ste

12、p(3, 4), 4, BF 画矩形块,3. 画圆方法(Circle) Circle方法可以在对象上画圆、椭圆或弧。语法为 object. Circle Step (x, y),半径, color, start, end, aspect,图13.9 利用Circle方法绘图,【例13-5】 在图片框中画出如图13.9所示的圆弧、扇形。在窗体添加一个图片框控件Picture1和一个命令按钮Command1。 编写“输出图形”命令按钮的单击事件代码如下:,Private Sub Command1_Click() pi = 4 * Atn(1) Picture1.Scale (0, 0) -(100

13、, 100) Picture1.Circle (50, 50), 10, QBColor(1), 0, pi / 2 Picture1.Circle (50, 50), 20, QBColor(2), pi / 3, 1.5 * pi Picture1.Circle (50, 50), 30, QBColor(3), -pi / 2, -pi / 6 Picture1.Circle (50, 50), 40, QBColor(4), -pi / 4, -pi / 3 End Sub,4. 清除图形方法(Cls) Cls方法可以清除Form或PictureBox中由图形和打印语句在运行时所生成的

14、图形和文本,清除后的区域以背景色填充。设计时使用Picture属性设置的背景位图和放置的控件不受Cls影响。Cls方法的语法为 object. Cls 调用Cls之后,object的CurrentX和CurrentY属性复位为0。,13.1.6 绘图语句与Paint事件 如果在程序代码中有图形方法的绘图语句,则使用Paint事件很有用。在设计多媒体应用程序时,最有效的方法是将所有的绘图方法(PSet,Line,PaintPicture等)都放在Paint事件中;否则,可能会发生一些不希望发生的事情,如图形控件(Label,Line,Shape等)会被重叠、丢失或以错误的顺利排列等。,窗体和Pi

15、ctureBox图片框控件都有Paint事件,通过使用Paint事件过程,可以保证必要的图形都得以重现,例如,窗体最小化后,恢复到正常大小时,窗体内所有图形都得重画。 当AutoRedraw属性为True时,将自动重画,Paint事件不起作用。 在Resize事件过程中使用Refresh方法,可在每次调整窗体大小时强制对所有对象通过Paint事件进行重画。,【例13-6】 本例是一个Paint事件在Resize窗体中所起作用的示例。运行时将画出一个与一个窗体各边的中点相交的菱形,当随意调整窗体的大小时,窗体中的菱型也随着自动调整,如图13.10(左)为调整前的显示,图13.10(右)为调整窗体

16、后的显示。,图13.10 Paint事件示例,窗体的事件代码如下: Private Sub Form_Paint() Dim HalfX, HalfY 声明变量 HalfX = ScaleLeft + ScaleWidth / 2 设置到宽度的一半 HalfY = ScaleTop + ScaleHeight / 2 设置到高度的一半 画一个菱形,Line (ScaleLeft, HalfY) -(HalfX, ScaleTop) Line -(ScaleWidth + ScaleLeft, HalfY) Line -(HalfX, ScaleHeight + ScaleTop) Line -(ScaleLeft, HalfY) End Sub Private Sub Form_Resize() Refresh End S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号