12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)

2024-08-10
| 29页
| 70人阅读
| 17人下载
普通

内容正文:

项目12 Visual Basic图形设计 项目导入 Visual Basic为程序设计者提供了非常丰富的绘图功能。设计程序时,不仅可以使用Visual Basic提供的图形控件来画图还可以调用图形方法绘制丰富多彩的艺术图形。 项目12通过4个任务来学习Shape控件的属性及使用方法;Line 控件的属性及使用方法Visual Basic的常用 绘图方法。 2 项目目标 掌握图形控件的使用。 了解绘制图形的基本方法和技巧。 3 任务3 绘图方法 4 任务目标 掌握PSet方法、Line方法、Circle方法的语法格式。 掌握PSet方法、Line方法、Circle方法。绘制不同的图形。 任务实施 1、画点方法(PSet方法) 5 语法格式: [Object.] PSet [step](x,y) , [color] 说明: Object 为窗体或图片框的对象名。 [step](x,y) 指定画点位置的坐标。 参数color 用来指定点的颜色。 PSet 方法执行完后,对象的Current X、CurrentY属性值会被自动设置为画点位置的绝对坐标。 6 【例12.3】 用PSet 方法在窗体中绘制一条正弦曲线。 分析: 为了便于确定正弦曲线中每一点的坐标,使用Scale 方法定义窗体的水平坐标从左到右为0到360,垂直坐标从下到上为-1~1,即Scale(0,1)--(360,-1)。 7 【例12.3】 用PSet 方法在窗体中绘制一条正弦曲线。 编写窗体的click事件代码: Private Sub Form_Click() Scale (0, 1)-(360, -1) '设置所画点的大小 DrawWidth = 3 For x = 0 To 360 y = Sin(x * 3.14159 / 180) PSet (x, y), vbRed Next x End Sub 图12-5 在窗体中绘制的一条正弦曲线 程序运行后的结果如图12-5所示。 8 【例12.4】 用PSet 方法绘制艺术图案。 分析: 在程序中用ScaleMode 将坐标系的刻度单位设置为像素,在窗体的(0,0)~(300,200)区域内通过PSet方法绘 制一幅图案,点的颜色与点的位置相关,通过一个椭圆运算确定。 9 【例12.4】 用PSet 方法绘制艺术图案。 编写窗体的click事件代码: Private Sub Form_Click() Dim pcolor As Integer ScaleMode = 3 For x = 0 To 300 For y = 0 To 200 pclolr = (x * x / 9 + y * y / 25) Mod 4 PSet (x, y), QBColor(pcolor) Next y Next x End Sub 10 【例12.4】 用PSet 方法绘制艺术图案。 程序运行后的结果如图12-6所示。 图12-6 使用pset方法绘制艺术图案 2、画直线、矩形方法(Line) 11 语法格式: [Object.] Line [step](x1,y1)- [step](x2,y2), [color] ,[B[f]] 作用: Line方法可以在窗体或图片绘制一条直线段或一个矩形。 说明: Object 为窗体或图片框的对象名。 参数[step](x1,y1) 指定起始坐标[step](x1,y1) 指定终止坐标。如果有参数“B”,则绘制以给定两点为对角的矩形,否则画出以给定两点为端点的直线段。 参数color 指定直线或矩形边框的颜色。如果有参数“F”,则用边框颜色填充矩形。无参数“B”时,不能使用参数“F”。 执行完此方法后,对象的Current X、CurrentY属性值即为终点的坐标。 12 【例12.5】 使用Line方法绘制几何图案。 编写窗体的click事件代码: Private Sub Form_Click() Scale (1, 1)-(400, 180) xmax = 400: ymax = 180 xmin = 1:ymin = 1 s = 20 xs = (xmax - xmin) / s: ys = (ymax - ymin) / s For i = 1 To s Line (xmin + xs * i, ymax)-(xmax, ymax - ys * i), vbBlue Line (xmax - xs * i, ymin)-(xmax, ymax - ys * i), vbRed Line (xmax - xs * i, ymin)-(xmin, ymin + ys * i), vbRed Line (xmin, ymin + ys * i)-(xmin + xs * i, ymax), vbBlue Next i End Sub 13 【例12.5】 使用Line方法绘制几何图案。 运行时单击窗体,显示结果如图12-7所示。 图12-7 使用Line方法绘制几何图案 3、画圆方法(circle) 14 语法格式: [Object.] circle [step](x,y),Radius, [color] ,[Start],[End], [Aspect] 作用: circle方法可以在窗体或图片绘制圆形、椭圆或弧。 说明: (1)Object 为窗体或图片框的对象名。 (2)参数[step](x1,y1) 指定圆心或椭圆中心的坐标,Radius指定圆的半径或椭圆的长半轴,color 为线条的颜色。 (3) Star与End指定 弧的起止角度(单位是弧度),如果被省略,则绘制出完整的圆或椭圆。 (4)Aspect指定圆度(垂直半轴与水平半轴长度之比),当它为1或省略时,绘出的是一个圆,取其他值时为椭圆 。 15 【例12.6】使用Circle方法绘制艺术图案。 分析: 将一个作为圆心轨迹的圆(该圆的圆心为(X0,Y0),半径为r)等分为30份,以这30个等分点为圆心画30个圆,这些圆的圆心坐标为(x0+r*cos(i),y0-r*sin(i)),其中“i”为从水平轴右侧逆时针 转动的角度(以弧度为单位)。 16 【例12.6】使用Circle方法绘制艺术图案。 编写窗体的click事件代码: Private Sub Form_Click() r = ScaleHeight / 4 x0 = ScaleWidth / 2 y0 = ScaleHeight / 2 pi = 3.14159 For i = 0 To pi * 2 Step pi / 15 x = x0 + r * Cos(i) y = y0 - r * Sin(i) Circle (x, y), r * 0.8 Next i End Sub 17 【例12.6】使用Circle方法绘制艺术图案。 运行时单击窗体,画出如图12-8所示的具有艺术效果的图案。 图12-8 用Circle方法绘制的艺术图案 18 【例12.7】模拟地球绕太阳旋转。 (1)创建程序界面,设置属性。 在窗体上放置2个合适大小的形状控件Shape1、Shape2。将Shape1的Shape属性设置为圆形,显示填充色为红色,用来代表太阳;将Shape2的Shape属性设置为圆形,显示填充如图12-9所示。 图12-9 创建程序界面并设置属性 19 【例12.7】模拟地球绕太阳旋转。 (2)编写事件代码。 地球运动的椭圆方程为: x=x0+rx*cos(alfa):y=y0+ry*sin(alfa) 其中x0、y0为椭圆圆心坐标,rx为水平半径,ry为垂直半径,alfa为圆心角。 20 【例12.7】模拟地球绕太阳旋转。 (2)编写事件代码。 Dim rx As Single, ry As Single Dim alfa As Single Private Sub form_load() Shape1.Left = Form1.ScaleWidth / 2 - Shape1.Width / 2 Shape1.Top = Form1.ScaleHeight / 2 - Shape1.Height / 2 rx = Form1.ScaleWidth / 2 - Shape2.Width / 2 ry = Form1.ScaleHeight / 2 - Shape2.Height / 2 Shape2.Left = Form1.ScaleWidth / 2 + rx - Shape2.Width / 2 Shape2.Top = Form1.ScaleHeight / 2 + rx - Shape2.Height / 2 End Sub 编写窗体的load事件代码: 21 【例12.7】模拟地球绕太阳旋转。 (2)编写事件代码。 Private Sub Timer1_Timer() alfa = alfa + 0.05 '绘制地球的运行轨迹 Circle (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2), rx, , , , ry / rx x = Form1.ScaleWidth / 2 + rx * Cos(alfa) y = Form1.ScaleHeight / 2 + ry * Sin(alfa) Shape2.Left = x - Shape2.Width / 2 Shape2.Top = y - Shape2.Height / 2 End Sub 编写计时器Timer1的Timer事件代码: 22 【例12.7】模拟地球绕太阳旋转。 程序运行结果如图12-10所示。 图12-10 地球绕太阳旋转的模拟图 创建一个应用程序,用于在窗体上绘制线段、矩形。 23 课堂反馈: 任务4 与绘图有关的常用属性和事件 24 任务目标 掌握清除图形的方法。 掌握DrawWidth 和DrawStyle 的属性。 能够运用图形控件绘制简单图形。 任务实施 1、清除图形方法 Cls 25 语法格式: [Object.] Cls 作用: 清除窗体或图片上由print、pset、line、circle等方法输出的文字、图形和图像。 说明: Object 为窗体或图片框的对象名。Cls方法没有参数。 Cls方法不会清除窗体和图片框上由picture属性设置的背景图像,更不会清除窗体或图片框上的控件对象。 Cls方法用来清除之后Current X、CurrentY属性值都被设为0. 例如: picture1.cls 2、线宽属性和线型属性 26 设置值 常量 线型 0 vbsolid 实线,默认值 1 vbDash 虚线 2 vbDot 点线 3 vbDashDot 点画线 4 vbDashDotDot 双点画线 5 vbInvisible 无线 6 vbInsideSolid 内收实线 DrawWidth 属性设置绘图方法绘制的图形的线条样式,其取值范围从1~32767,以像素为单位。默认值为1,即一个像素宽。如果DrawWidth属性值大于1,画出的图形是实线;如果DrawWidth属性等于1,可以画出由DrawStyle定义的各种线型。DrawStyle 属性设置绘图方法绘制的图形的线条宽度。 表12-5 DrawStyle 属性值 3、填充颜色属性和填充样式属性 27 Fillcolor 属性设置由Circle 和 Line方法生成的圆、矩形等封闭图形的内部填充颜色。FillStyle 属性设置Shape 控件所画图形的填充样式。此属性的取值为0~7,具体意义如表12-6所示。 Fillstyle 属性的默认值为1(透明),此时,FillColor 属性的值被忽略。 表12-6 Fillstyle 属性值 设置值 填充样式 设置值 填充样式 0 实心 4 上斜对角线 1 透明(默认) 5 下斜对角线 2 水平直线 6 十字线 3 垂直直线 7 交叉对角线 用图形控件在窗体上绘制出以下图形,如图12-11所示。 28 课堂反馈: 图12-11窗体上绘制的图形 项目小结 Visual Basic提供了两种绘图方式:一是使用图形控件,如Shape控件和Line控件;二是使用绘图方法,使用图形控件无须编写代码,但提供的图形样式选择有限,只能实现简单功能,要实现更高级功能,还得采用绘图方法。 使用窗体和图片框的绘图方法绘制的图形和图像与Shape控件、Image控件、Line控件等也有着本质的不同。绘制的图形图像只是临时显示在屏幕上,基本上不占用内存,而各类控件作为对象具有属性、事件和方法,除了在屏幕上显示相应的图形图像之外,还会占用一定的内存。 29 $$

资源预览图

12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
1
12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
2
12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
3
12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
4
12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
5
12.3绘图方法(课件)-《程序设计基础(Visual Basic)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。