第8章VB图形设计.ppt
《第8章VB图形设计.ppt》由会员分享,可在线阅读,更多相关《第8章VB图形设计.ppt(59页珍藏版)》请在三一办公上搜索。
1、VB程序设计教程,沈美莉 马银晓 陈孟建 编著,1,第八章 图形设计,一、坐标系统二、绘制线段三、绘制圆、椭圆和弧,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,2,第一节 坐标系统,一、坐标系统定义为了确定图形在窗体中的具体位置,Visual Basic提供了窗口坐标,一个完整的直角坐标系,用于确定一个控件或一个图形在容器中的位置,所以,一个完整的直角坐标系应规定某坐标原点,X轴和Y轴的方向及其刻度单位。在这样一个具有完整坐标系的容器中,一个控件的位置就可以用该控件左上角的坐标(x,y)来表示,一段直线就可以用其起始点的坐标(x1,y1)和终点(x2,y2)来表示,一个矩形就可用其左下角的
2、坐标(x1,y1)和右上角的坐标(x2,y2)来表示了。1.系统默认的坐标系统在Visual Basic语言中的窗口坐标系统与数学中的平面几何坐标系统不一样,窗口坐标系统以窗口的左上角为原点(0,0),X轴方向从左向右,而Y轴方向则从上至下,如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,3,第一节 坐标系统,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,4,第一节 坐标系统,Visual Basic缺省的坐标刻度单位为Twip(缇)。Twip是印刷单位,1个Twips为Point(点)的1/120,72Point为1英寸,这样,1英寸就为1440twip。1厘米为567Twi
3、p。Visual Basic提供了8种坐标系,如下表所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,5,第一节 坐标系统,2.自定义坐标系统在程序设计过程中,特别是在进行图形设计过程中,往往需要改变Visual Basic的默认坐标系统,这时,可以通过设置窗体和图片框等容器对象的ScaleMode、ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight等属性来实现。(1)ScaleMode属性,该属性主要用来确定坐标系统的刻度单位,其数据类型为整型,可以是以下值之一。0User:该选项是用户自定义刻度单位,具体由ScaleWidth和ScaleHeight算
4、出。1Twip:该选项是以“缇”为单位,系统的缺省值。2Point该选项是以“磅”为单位,1英寸=72磅。3Pixel该选项是以像素为单位,分辨率的最小单位。4Character该选项是以字符为单位,水平1个字符=120缇,垂直1个字符=240缇。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,6,第一节 坐标系统,5Inch该选项是以英寸为单位。6Millimeter该选项是以毫米为单位。7Centimeter该选项是以厘米为单位。(2)ScaleWidth属性,该属性主要来设置以下三个方面的值。其数据类型为数值型。可以用来表示容器的内部宽度,如果设置ScaleWidth=5,即表示容器内
5、部宽度为5个单位。可以算出自定义坐标系X轴的刻度单位,例如,当容器实际内部宽度为2000缇,而当前ScaleWidth属性值设置为5,则X轴的每一个刻度表示2000/5=400缇。可以设置为负值,则表示反转X轴的方向,即自定义坐标系的X轴与系统默认X轴的正向反向。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,7,第一节 坐标系统,(3)ScaleHeight属性,该属性主要用来设置以下三个方面的值,其数据类型为数值型。可以用来表示容器的内部高度,如果设置ScaleHeight=5,即表示容器内部高度为5个单位。可以算出自定义坐标系Y轴的刻度单位,例如,当容器实际内部高度为1000缇,而当前
6、ScaleHeight属性值设置为2,则Y轴的每一个刻度表示1000/2=500缇。可以设置为负值,则表示反转y轴的方向,即自定义坐标系的y轴与系统默认y轴的正向反向。(4)ScaleLeft属性,该属性主要用来设置在自定义坐标系统中,定义容器左上角向右为X坐标。(5)ScaleTop属性,该属性主要用来设置在自定义坐标系统中,定义容器左上角向下为Y坐标。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,8,第一节 坐标系统,3.当前坐标系统当在对象中绘制图形或输出结果时,常常需要将图形或输出结果定位在某一希望的位置处,为此,Visual Basic专门在其窗体和图片框等对象中定义了两个属性,
7、CurrentX和CurrentY,用来指示下一次输出在哪里位置,这就是当前坐标,其中CurrentX表示输出位置的X轴坐标,CurrentY表示输出位置的Y轴坐标。CurrentX和CurrentY属性:该属性主要用来确定当前绘图点的X轴坐标和Y轴坐标,其数据类型为数值型。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,9,第一节 坐标系统,二、改变系统坐标的方法1.改变系统坐标属性可以利用改变系统坐标的属性值来改变系统坐标,例如,通过下面的程序代码可以改变系统的坐标。【程序代码】form1.scalemode=0form1.scalewidth=2form1.scaleheight=-2
8、scaleleft=-1scaletop=-1执行以上的程序代码后,可以定义一个完整的坐标系统,即坐标原点在窗体中心,X轴向右为正方向,Y轴向上为正方向。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,10,第一节 坐标系统,2.利用Scale方法改变系统坐标除了使用以上的属性可以改变系统的坐标外,还可以调用容器的Scale方法来自定义坐标系统。Scale方法如下:.(x1,y1)-(x2,y2)该方法的功能是将容器的左上角坐标定义为(x1,y1),将右下角坐标定义为(x2,y2),如果省略则默认为是当前窗体。如果省略“(x1,y1)-(x2,y2)”则将坐标系统还原为系统默认的坐标系统。,
9、VB程序设计教程,沈美莉 马银晓 陈孟建 编著,11,第一节 坐标系统,三、图像分辨率Visual Basic绘图中的点是以显示器像素为标准的,设置一个点的颜色是设置窗体对应着的显示器的一个像素的颜色。1.显示器简介显示器是计算机最主要的外部设备之一。显示系统由显示器和适配卡(显示卡)组成,两者必须配对。2.显示分辨率显示分辨率是指屏幕上有多少个基本像素点。显示系统的分辨率是指显示卡和显示器两者的分辨率。不同分辨率的显示器应与相对应分辨率的显示卡配套使用,才能获得所希望达到的显示效果。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,12,第一节 坐标系统,3.显示速度显示速度是指显示图像或文
10、字时的速度。由于显示分辨率和显示器的扫描频率有关,显示分辨率高时,一个完整屏幕的像素点就增多了,所有像素都要显示一遍,速度就要慢下来,这就需要提高扫描频率。4.颜色和灰度颜色和灰度是衡量显示系统性能的又一重要参数。早期的显示卡MDA配单色的显示器只能显示字符,仅有一般亮度和高亮度两种灰度,彩色显示系统最多也只有16种颜色。而目前的颜色显示系统VGA,可达256种颜色甚至更多。5.图形显示能力图形显示能力是指屏幕上的每一个像素点可以设置成不同值的能力。早期的单色显示系统MDA是字符型的,不支持图形显示,它的控制比较简单。而随后出现的显示系统均能支持图形显示。,VB程序设计教程,沈美莉 马银晓 陈
11、孟建 编著,13,第一节 坐标系统,四、几个数字图像的重要概念1色阶(1evels)色阶是指各种图像色彩模式下图形原色(如RGB模式下的原色为R,G,B和RGB四种)的明暗度,色阶的调整也就是明暗度的调整。色阶的范围为0255,也就是说,总共包含256种色阶。2色调(Hue)图像通常被划分为多个色调(如绿色、红色),其中包含一个主色调。色调调整也就是旨将图像颜色在各种颜色之间进行调整,用户可分别调整各色调。3饱和度(Saturation)饱和度是指图像颜色的彩度或鲜艳程度(如更红或更绿),将一个图像的饱和度降至-100时图像即变为灰度图。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,14,
12、第一节 坐标系统,4亮度(Brightness)亮度是指图像中明暗程度的平衡,它决定了明暗色调的强度。5对比度(Contrast)对比度是指不同颜色之间的差异。对比度越大,两种颜色之间的差异就越大。例如,将一幅灰度图像的对比度增加后,黑白颜色对比会更加鲜明。当对比度增加到极限时,一幅灰度图像将只剩下黑白两色;而将对比度减小到极限时,一幅灰度图像将只剩下灰色底图。6色域(Gamut)事实上,人眼所能看见的光、色范围非常广泛,而由计算机的彩色屏幕按RGB模式或由彩色印刷品按CYMK模式所表示出来的光与色,只不过是其中的一部分。,返回本章首页,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,15,第
13、二节 绘制线段,一、简单画点1.画点方法在Visual Basic中提供了画点的函数,其格式如下:.Pset(x,y),Color 功能:在该对象中的X轴和Y轴上画一个点,若选择了,Color参数,则画出的点具有颜色。【例题6.3】使用画点函数画出99个点,颜色选择为黑色,即RGB(10,10,10),画点原点为系统默认坐标原点(0,0)。Private Sub Command1_Click()Dim i As IntegerFor i=0 To 99PSet(i*50,i*50),RGB(10,10,10)NextEnd Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,16,第二节
14、绘制线段,2.清除点清除点的方法是采用把某一点的背景颜色设置为(Back Color),其格式如下:.Pset(x,y)功能:清除画点。【例题6.4】利用Pset函数在窗体上画出由下列参数方程决定的曲线:在窗体下的Click过程下,绘制以上的曲线为星形线,其程序代码如下:Private Sub Form_Click()Form1.Scale(-1,1)-(1,-1)DrawWidth=2For t=0 To 2*3.14259265 Step 0.001x=Sin(2*t)*Cos(t)y=Sin(2*t)*Sin(t)PSet(x,y),QBColor(2)Next tEnd Sub运行该程
15、序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,17,第二节 绘制线段,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,18,第二节 绘制线段,【例题6.5】使用画点函数画出99个点,颜色选择为黑色,即RGB(10,10,10),画点原点为系统默认坐标原点(0,0)。单击“画点”按钮,即可99个点,单击“清点”按钮后,即可清除刚画好的这99个点。以下程序是在例题6.3的基础上再增加一段“清除点”的程序。【程序代码】Private Sub Command2_Click()Dim i As IntegerFor i=0 To 99PSet(i*50,i*50),Back
16、 ColorNextEnd Sub运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,19,第二节 绘制线段,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,20,第二节 绘制线段,二、绘制线段1.简单画线方法格式:.Line Step(x1,y1)-step(x2,y2),BF功能:在控件上,画出一条从(x1,y1)到(x2,y2)的线段。其中(x1,y1)和,为可选项。参数x和y既可以是整数,又可以是小数。说明:(1):表示要绘制线段的对象名称,例如,窗体、图片框等。省略时默认为当前窗体。(2)(x1,y1):表示要绘制线段的起始坐标位置,是可选项。该参前面
17、带有Step选项,表示相对于(CurrentX,CurrentY)的坐标,否则为相对于当前坐标系的坐标。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,21,第二节 绘制线段,(3)(x2,y2):表示绘制线段的终点坐标,是必选项,如果(x2,y2)前面带有Step选项,则表示相对于(CurrentX,CurrentY)的坐标,否则为相对于当前坐标系的坐标。(4):表示绘制线段的颜色选择,是可选项,若省略时,则使用对象当前的前景色,也就是当前的Forecolor属性的值。(5)B:表示是否画矩形,是可选项,当选择该参数时,矩形左上角的坐标为(x1,y1),矩形右下角的坐标为(x2,y2)。(
18、6)F:是可选项,如果选择了B后再选择F参数,则矩形的填充颜色取矩形的边框颜色,如果只选择B参数,而不选择F参数,则矩形的填充取当前对象的FillColor属性和FillSytle属性所指的颜色。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,22,第二节 绘制线段,【例题6.6】利用画线函数在窗体上画出两条对角直线,当改变窗体大小或双击鼠标器时,可以删除该对角线。(1)窗体单击事件将画出两条对角线Private Sub Form_Click()Line(0,0)-(ScaleWidth,ScaleHeight)Line(0,ScaleHeight)-(ScaleWidth,0)End Su
19、b(2)双击窗体后将删除对角线Private Sub Form_DblClick()ClsEnd Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,23,第二节 绘制线段,(3)改变窗体后将删除对角线Private Sub Form_Resize()ClsEnd Sub运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,24,第二节 绘制线段,【例题6.7】利用画线函数在窗体上画出矩形框。当用鼠标器双击该窗体时,画出一个矩形框,如图6-10(a)所示。当用鼠标器单击该窗体时,画出10个矩形框,如图6-10(b)所示。(1)窗体双击事件将画出1个矩形框Pri
20、vate Sub Form_DblClick()Form1.ClsLine(600,600)-(600,2000)Line(600,2000)-(2000,2000)Line(2000,2000)-(2000,600)Line(2000,600)-(600,600)End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,25,第二节 绘制线段,(2)窗体单击事件将画出10个矩形框Private Sub Form_Click()Dim count As SingleDim end_tmp As SingleDim start_tmp As SingleFor count=1 To 10e
21、nd_tmp=count*200start_tmp=count*60Line(start_tmp,start_tmp)-(start_tmp,end_tmp)Line(start_tmp,end_tmp)-(end_tmp,end_tmp)Line(end_tmp,end_tmp)-(end_tmp,start_tmp)Line(end_tmp,start_tmp)-(start_tmp,start_tmp)Next countEnd Sub运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,26,第二节 绘制线段,第二节 绘制线段2.另一种画线方法除了指定起点
22、确定一条直线之外,还可以使用步长的方法来确定线段的长度和方向,其格式如下:格式:.Line(x1,y1)-step(x2,y2),功能:在控件上,画出一条从(x1,y1)到step(x2,y2)的线段。其中(x2,y2)的值是x1和y1的增值。例如:Line(200,250)-(500,1000)Line(200,250)-Step(300,750)以上两个语句的功能是一样的。使用第二个语句的step是一个步长,这个步长就是在原来的基础上再增加一个值,也就是说,从原来的坐标位置处,增加的值就是画线的长度。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,27,第二节 绘制线段,三、改变线的宽度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 图形 设计
链接地址:https://www.31ppt.com/p-5928984.html