教学课件第9章 图形设计.ppt
《教学课件第9章 图形设计.ppt》由会员分享,可在线阅读,更多相关《教学课件第9章 图形设计.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第9章章图形设计图形设计 2本章内容本章内容n图形设计的基础知识图形设计的基础知识n坐标系统、颜色坐标系统、颜色n各种绘图方法和绘图的基本技巧各种绘图方法和绘图的基本技巧n绘图属性绘图属性n图形的重绘图形的重绘 3学习目标学习目标 n了解了解Visual Basic坐标系统的刻度单位坐标系统的刻度单位n了解默认坐标系了解默认坐标系n了解图形的重绘的方法了解图形的重绘的方法n理解当前坐标、颜色值等概念理解当前坐标、颜色值等概念n掌握自定义坐标系的方法掌握自定义坐标系的方法n掌握与线宽、线形、填充色、填充样式有关的掌握与线宽、线形、填充色、填充样式有关的属性和其使用方法属性和其使用方法n熟练掌
2、握画点、矩形、圆、椭圆、圆弧的方法熟练掌握画点、矩形、圆、椭圆、圆弧的方法n能够利用本章介绍的绘图方法,设计编写绘制能够利用本章介绍的绘图方法,设计编写绘制各种简单几何图形的程序各种简单几何图形的程序 49.1 坐标系统与颜色坐标系统与颜色 n坐标系统坐标系统 nVisual Basic的坐标系统与数学中的直角坐标系的坐标系统与数学中的直角坐标系类似类似nY轴是向下的轴是向下的nVisual Basic的容器对象都有自己的坐标系统的容器对象都有自己的坐标系统n在容器中放置的其他对象,其在容器中放置的其他对象,其Left、Top属性就属性就是相对于容器坐标原点的横坐标和纵坐标是相对于容器坐标原点
3、的横坐标和纵坐标n在容器中绘制图形也是相对于坐标系的在容器中绘制图形也是相对于坐标系的n图形中每个点的位置都由当前坐标系中的坐标来图形中每个点的位置都由当前坐标系中的坐标来确定确定n坐标系不同,图形的相对位置也不同坐标系不同,图形的相对位置也不同 5刻度单位刻度单位 n容器的容器的ScaleMode属性确定了使用的刻度单位属性确定了使用的刻度单位 值值系统常量系统常量单位单位含义含义0vbUserUser用户自定义。若设置了用户自定义。若设置了ScaleWidth、ScaleHeight、ScaleLeft、ScaleTop属性,属性,ScaleMode自动为自动为01vbTwipsTwip(
4、缇)(缇)默认值,默认值,1440 Twip等于等于1英寸英寸2vbPointsPoint(点)(点)72点等于点等于1英寸英寸3vbPixelsPixel(象素)(象素)每英寸象素数由设备分辨率确定每英寸象素数由设备分辨率确定4vbCharactersCharacter(字符)(字符)1个字符为个字符为1/12英寸宽,英寸宽,1/6英寸高英寸高5vbInchesInch(英寸)(英寸)6vbMillimetersMillimeter(毫米)(毫米)7vbCentimetersCentimeter(厘米)(厘米)6Visual Basic默认坐标系默认坐标系 n刻度单位是刻度单位是Twipn坐
5、标原点(坐标原点(0,0)是容器对象工作区的左上角)是容器对象工作区的左上角nX轴的方向向右,轴的方向向右,Y轴的方向向下轴的方向向下nScaleWidth和和ScaleHeight属性属性 窗体的窗体的Height图片框的图片框的Height图片框的图片框的ScaleHeight窗体的窗体的ScaleHeight窗体的窗体的Width窗体的窗体的ScaleWidth图片框的图片框的ScaleWidth图片框的图片框的Width(0,0)(0,0)Y轴轴Y轴轴X轴轴X轴轴7自定义坐标系自定义坐标系 n容器对象的容器对象的Scale方法方法 n.Scale () ()n省略对象名表示是当前窗体省
6、略对象名表示是当前窗体nx1, y1是对象新坐标系下工作区左上角的坐标值是对象新坐标系下工作区左上角的坐标值nx2, y2是对象新坐标系下工作区右下角的坐标值是对象新坐标系下工作区右下角的坐标值n缺省缺省x1, y1和和x2, y2表示恢复表示恢复Visual Basic默认坐标系默认坐标系(-500,400)(500,-400)XY Scale (-500, 400) - (500, -400)(-200,300)(500,-100)XYScale (-200, 300) - (500, -100)8n例例9-1 运行下面程序,单击运行下面程序,单击Command1按钮移按钮移动动Text1
7、文本框,然后单击窗体后再单击文本框,然后单击窗体后再单击Command1按钮,观察两次移动文本框的不同按钮,观察两次移动文本框的不同 Private Sub Command1_Click() Text1.Move 100, 200 Text1.Text = 宽:宽: & Str(Text1.Width) _ & ,高:,高: & Str(Text1.Height)End SubPrivate Sub Form_Click() Scale (-100, 300) - (500, -100) Line (-100, 0) - (500, 0) Line (0, 300) - (0, -100) C
8、urrentX = 0 CurrentY = 0 Print OEnd Sub 改变坐标系前移动文本框改变坐标系前移动文本框改变坐标系后移动文本框改变坐标系后移动文本框9当前坐标当前坐标 nCurrentX和和CurrentY属性记录当前坐标位置属性记录当前坐标位置n只能在程序中引用和赋值,不能在属性窗口中设置只能在程序中引用和赋值,不能在属性窗口中设置 n例如例如nPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)n CurrentX = Xn CurrentY =
9、 Yn Print 这是当前位置这是当前位置nEnd Subn单击窗体,将从鼠标点击的位置开始,输出单击窗体,将从鼠标点击的位置开始,输出“这这是当前位置是当前位置” 10颜颜 色色 n颜色的表示颜色的表示n屏幕上每个点的颜色由红、绿、蓝屏幕上每个点的颜色由红、绿、蓝3种基色混合而种基色混合而成成n3种基色的比例不同,产生的颜色效果就不同种基色的比例不同,产生的颜色效果就不同n每种基色用一个整数表示,其取值范围是每种基色用一个整数表示,其取值范围是0255 n3种基色值按一定格式构成一个不小于种基色值按一定格式构成一个不小于0的整数即的整数即颜色值,代表一种颜色颜色值,代表一种颜色n例如例如n
10、0表示黑色表示黑色n十六进制数十六进制数 H00FFFFFF 表示白色表示白色nH000000FF表示红色表示红色 11QBColor函数函数 n返回返回16种常见颜色的颜色值种常见颜色的颜色值n调用格式调用格式nQBColor() 颜色码颜色码颜色颜色颜色码颜色码颜色颜色0黑黑8灰灰1蓝蓝9亮蓝亮蓝2绿绿10亮绿亮绿3青青11亮青亮青4红红12亮红亮红5品工品工13亮品红亮品红6黄黄14亮黄亮黄7白白15亮白亮白12RGB函数函数n颜色函数颜色函数RGB可以指定可以指定3种基色所占的成分来获得一个颜色值种基色所占的成分来获得一个颜色值n调用格式调用格式nRGB(,)nRed、Green、Bl
11、ue分别是基色红、绿、蓝在颜色中所占的成分分别是基色红、绿、蓝在颜色中所占的成分n它们的取值范围都是它们的取值范围都是0255n某个基色数值越大,表示该基色在颜色中的成分越多某个基色数值越大,表示该基色在颜色中的成分越多 颜色颜色红红绿绿蓝蓝例例颜色颜色红红绿绿蓝蓝例例黑黑000RGB(0, 0, 0)黄黄255 2550RGB(255, 255, 0)红红25500RGB(255, 0, 0)紫紫2550255RGB(255, 0, 255)绿绿02550RGB(0, 255, 0)青青0255255RGB(0, 255, 255)蓝蓝00255RGB(0, 0, 255)白白255 255
12、255RGB(255, 255, 255)13颜色的应用颜色的应用n例例9-2 通过文本框输入基色值,或通过滚动条设置基色值来改变图片通过文本框输入基色值,或通过滚动条设置基色值来改变图片框的背景色。框的背景色。n分析分析n需要使用需要使用3个文本框和个文本框和3个滚动条个滚动条n3个滚动条的个滚动条的Min、Max属性都分属性都分 别设置为别设置为0和和255n滚动块的位置(滚动块的位置(Value属性)值作属性)值作 为为RGB函数的参数,获得颜色值函数的参数,获得颜色值n滚动块的位置值与文本框内的数值应动态保持一致滚动块的位置值与文本框内的数值应动态保持一致n界面设计界面设计控件类型控件
13、类型控件名称控件名称用途用途控件类型控件类型名称名称用途用途属性设置属性设置文本框文本框TRed输入输入/显示红色值显示红色值滚动条滚动条HSRed改变红色值改变红色值Min=0 ,Max=255文本框文本框TGreen输入输入/显示绿色值显示绿色值滚动条滚动条HSGreen改变绿色值改变绿色值Min=0 ,Max=255文本框文本框TBlue输入输入/显示蓝色值显示蓝色值滚动条滚动条HSBlue改变蓝色值改变蓝色值Min=0 ,Max=255图片框图片框Picture1演示颜色效果演示颜色效果14nPrivate Sub HSRed_Scroll()n TRed.Text = HSRed.V
14、aluen Picture1.BackColor = RGB(HSRed.Value, HSGreen.Value, HSBlue.Value)nEnd SubnPrivate Sub HSGreen_Scroll()n TGreen.Text = HSGreen.Valuen Picture1.BackColor = RGB(HSRed.Value, HSGreen.Value, HSBlue.Value)nEnd SubnPrivate Sub HSBlue_Scroll()n TBlue.Text = HSBlue.Valuen Picture1.BackColor = RGB(HSRe
15、d.Value, HSGreen.Value, HSBlue.Value)nEnd SubnPrivate Sub TBlue_Change()n HSBlue.Value = Val(TBlue.Text)nEnd SubnPrivate Sub TGreen_Change()n HSGreen.Value = Val(TGreen.Text)nEnd SubnPrivate Sub TRed_Change()n HSRed.Value = Val(TRed.Text)nEnd Sub 159.2 图形的绘制与清除图形的绘制与清除n有两种方式可以在容器对象上绘制图形有两种方式可以在容器对象上
16、绘制图形n利用图形控件绘制简单图形利用图形控件绘制简单图形n只能画出简单图形,但编程比较简单只能画出简单图形,但编程比较简单 直线、圆、矩形等直线、圆、矩形等n利用容器对象的绘图方法在容器上画图形利用容器对象的绘图方法在容器上画图形n比较灵活,可以画出各种复杂图形比较灵活,可以画出各种复杂图形n绘制过程需要设计算法,编程相对复杂绘制过程需要设计算法,编程相对复杂 16画线与矩形的方法画线与矩形的方法 n画直线线段与画矩形需要使用容器对象的画直线线段与画矩形需要使用容器对象的Line方法方法 n调用格式调用格式n.Line Step (, ) Step (, ) , , BF n缺省对象表示当前
17、窗体缺省对象表示当前窗体nx1,y1是线段起点坐标,或矩形左上角坐标是线段起点坐标,或矩形左上角坐标 若前面有若前面有Step,表示相对于当前坐标的相对位置,表示相对于当前坐标的相对位置 缺省缺省x1,y1则表示起点为当前坐标则表示起点为当前坐标nx2,y2是线段终点坐标,或矩形右下角坐标是线段终点坐标,或矩形右下角坐标 Step的含义与起点的相同的含义与起点的相同n颜色是画线的颜色,省略则用容器对象的前景色画线颜色是画线的颜色,省略则用容器对象的前景色画线nB表示画矩形表示画矩形nF必须与必须与B联用,表示用前面的颜色值来填充矩形,省略联用,表示用前面的颜色值来填充矩形,省略F则由则由Fil
18、lColor和和FillStyle属性决定矩形的填充方式属性决定矩形的填充方式n调用了调用了Line方法后,方法后,CurrentX,CurrentY的值为线段的的值为线段的终点坐标终点坐标 17画线画线n例例9-3n用鼠标单击窗体在窗体上用不同颜色随机画用鼠标单击窗体在窗体上用不同颜色随机画16条直线条直线n分析分析n随机画直线实际就是随机产生直线两个端点的坐标随机画直线实际就是随机产生直线两个端点的坐标n这两个坐标应在窗体工作区的范围之内这两个坐标应在窗体工作区的范围之内n程序代码程序代码nPrivate Sub Form_Click()n Dim x1%, x2%, y1%, y2%n
19、For k = 0 To 15n x1 = Int(Rnd * Form1.ScaleWidth)n y1 = Int(Rnd * Form1.ScaleHeight)n x2 = Int(Rnd * Form1.ScaleWidth)n y2 = Int(Rnd * Form1.ScaleHeight)n Line (x1, y1)-(x2, y2), QBColor(k)n Next knEnd Sub 18画矩形画矩形n例例9-4n数组中存放着某企业数组中存放着某企业4个季度的利润值,用直方图表示各个季度的利润值,用直方图表示各季度利润情况,并标出利润值。程序执行结果如图所示季度利润情况
20、,并标出利润值。程序执行结果如图所示n分析分析n每个季度的利润用一个矩形表示每个季度的利润用一个矩形表示n矩形的宽都相同,矩形的高等于利润值矩形的宽都相同,矩形的高等于利润值ny轴方向应向上,所以要重新定义坐标系轴方向应向上,所以要重新定义坐标系n4个季度的利润值可以用个季度的利润值可以用Array函数放到数组函数放到数组a中中 19Const RWidth = 50 矩形的宽度矩形的宽度Private Sub Command1_Click() a = Array(212, 433, 322, 520) 4个季度数据个季度数据 DrawCoordinate 画坐标轴并显示画坐标轴并显示x轴的标
21、值轴的标值 DrawRectangle a 画矩形图画矩形图9-6 例例9-4的界面的界面End SubPrivate Sub DrawRectangle(a) Dim x1%, x2%, y1%, y2% For k = 1 To 4 x1 = k * RWidth * 2 - RWidth y1 = 0 x2 = x1 + RWidth y2 = a(k - 1) Line (x1, y1)-(x2, y2), , B CurrentX = x1 CurrentY = y2 + 60 Print Trim(Str(a(k - 1) Next kEnd Sub 程序代码程序代码(一一)20程
22、序代码(二)程序代码(二)Private Sub DrawCoordinate() Dim xLen%, yLen%, y% xLen = (4 + 2) * RWidth * 2 x轴长度轴长度(数据个数数据个数+2)乘两倍矩形宽度乘两倍矩形宽度 yLen = Int(520 * 1.2) y轴长度,比最大数据(轴长度,比最大数据(520)多)多20% 建立坐标系,在坐标轴负方向各留一定长度建立坐标系,在坐标轴负方向各留一定长度 Scale (-RWidth, yLen)-(xLen, -yLen * 0.1) Line (0, 0)-(xLen, 0) 画画x轴轴 Line (0, 0)-
23、(0, yLen) 画画y轴轴 For k = 1 To 4 CurrentY = -5 CurrentX = k * RWidth * 2 - 50 Print Trim(Str(k) & 季度季度 显示显示x轴的标值轴的标值 Next kEnd Sub 21画曲线画曲线22程序代码程序代码Private Sub Form_Click() Const PI = 3.14159 Scale (-0.5, 1)-(4, -1) Line (-0.5, 0)-(4, 0) Line (0, 1)-(0, -1) s = 0 For x = 0 To PI Step 0.01 y = Sin(x)
24、s = s + (x - CurrentX) * y Line (x, 0)-(x, y), vbRed Next x Text1 = sEnd Sub 23画圆、椭圆和圆弧的方法画圆、椭圆和圆弧的方法 n画圆、椭圆、圆弧、扇形需要用容器的画圆、椭圆、圆弧、扇形需要用容器的Circle方法方法nCircle方法的调用格式方法的调用格式n.Circle Step (,), , , , , n对象是指在承载图形的容器对象,缺省则表示当前窗体对象是指在承载图形的容器对象,缺省则表示当前窗体nx,y是圆心坐标,若前面有是圆心坐标,若前面有Step,表示相对于当前坐标的相,表示相对于当前坐标的相对位置对
25、位置n对于椭圆,半径是指长轴的一半对于椭圆,半径是指长轴的一半n颜色是指线条的颜色,若省略,则使用容器对象的前景色颜色是指线条的颜色,若省略,则使用容器对象的前景色n圆弧起点和终点圆弧起点和终点沿逆时针圆弧的起始角度和终止角度沿逆时针圆弧的起始角度和终止角度用弧度表示,取值范围为用弧度表示,取值范围为02 若起点或终点前有负号,则画出该点到圆心的径向线若起点或终点前有负号,则画出该点到圆心的径向线n纵横比是椭圆纵轴与横轴长度的比值,默认值为纵横比是椭圆纵轴与横轴长度的比值,默认值为1,表示画圆,表示画圆n调用调用Circle方法后,方法后,CurrentX,CurrentY为圆心坐标值为圆心坐
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件第9章 图形设计 教学 课件 图形 设计
限制150内