第8章VB图形设计.ppt

上传人:本田雅阁 文档编号:3435470 上传时间:2019-08-25 格式:PPT 页数:59 大小:402.04KB
返回 下载 相关 举报
第8章VB图形设计.ppt_第1页
第1页 / 共59页
第8章VB图形设计.ppt_第2页
第2页 / 共59页
第8章VB图形设计.ppt_第3页
第3页 / 共59页
第8章VB图形设计.ppt_第4页
第4页 / 共59页
第8章VB图形设计.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《第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厘米为

3、567Twip。 Visual Basic提供了8种坐标系,如下表所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,5,第一节 坐标系统,2. 自定义坐标系统 在程序设计过程中,特别是在进行图形设计过程中,往往需要改变Visual Basic的默认坐标系统,这时,可以通过设置窗体和图片框等容器对象的ScaleMode、ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight等属性来实现。 (1)ScaleMode属性,该属性主要用来确定坐标系统的刻度单位,其数据类型为整型,可以是以下值之一。 0User:该选项是用户自定义刻度单位,具体由ScaleWidth和S

4、caleHeight算出。 1Twip:该选项是以“缇”为单位,系统的缺省值。 2Point该选项是以“磅”为单位,1英寸=72磅。 3Pixel该选项是以像素为单位,分辨率的最小单位。 4Character该选项是以字符为单位,水平1个字符=120缇,垂直1个字符=240缇。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,6,第一节 坐标系统, 5Inch该选项是以英寸为单位。 6Millimeter该选项是以毫米为单位。 7Centimeter该选项是以厘米为单位。 (2)ScaleWidth属性,该属性主要来设置以下三个方面的值。其数据类型为数值型。 可以用来表示容器的内部宽度,如果设

5、置ScaleWidth=5,即表示容器内部宽度为5个单位。 可以算出自定义坐标系X轴的刻度单位,例如,当容器实际内部宽度为2000缇,而当前ScaleWidth属性值设置为5,则X轴的每一个刻度表示2000/5=400缇。 可以设置为负值,则表示反转X轴的方向,即自定义坐标系的X轴与系统默认X轴的正向反向。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,7,第一节 坐标系统,(3)ScaleHeight属性,该属性主要用来设置以下三个方面的值,其数据类型为数值型。 可以用来表示容器的内部高度,如果设置ScaleHeight=5,即表示容器内部高度为5个单位。 可以算出自定义坐标系Y轴的刻度单

6、位,例如,当容器实际内部高度为1000缇,而当前ScaleHeight属性值设置为2,则Y轴的每一个刻度表示1000/2=500缇。 可以设置为负值,则表示反转y轴的方向,即自定义坐标系的y轴与系统默认y轴的正向反向。 (4)ScaleLeft属性,该属性主要用来设置在自定义坐标系统中,定义容器左上角向右为X坐标。 (5)ScaleTop属性,该属性主要用来设置在自定义坐标系统中,定义容器左上角向下为Y坐标。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,8,第一节 坐标系统,3. 当前坐标系统 当在对象中绘制图形或输出结果时,常常需要将图形或输出结果定位在某一希望的位置处,为此,Visua

7、l Basic专门在其窗体和图片框等对象中定义了两个属性,CurrentX和CurrentY,用来指示下一次输出在哪里位置,这就是当前坐标,其中CurrentX表示输出位置的X轴坐标,CurrentY表示输出位置的Y轴坐标。 CurrentX和CurrentY属性:该属性主要用来确定当前绘图点的X轴坐标和Y轴坐标,其数据类型为数值型。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,9,第一节 坐标系统,二、改变系统坐标的方法 1. 改变系统坐标属性 可以利用改变系统坐标的属性值来改变系统坐标,例如,通过下面的程序代码可以改变系统的坐标。 【程序代码】 form1.scalemode=0 fo

8、rm1.scalewidth=2 form1.scaleheight=-2 scaleleft=-1 scaletop=-1 执行以上的程序代码后,可以定义一个完整的坐标系统,即坐标原点在窗体中心,X轴向右为正方向,Y轴向上为正方向。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,10,第一节 坐标系统,2. 利用Scale方法改变系统坐标 除了使用以上的属性可以改变系统的坐标外,还可以调用容器的Scale方法来自定义坐标系统。Scale方法如下: . ( x1 , y1 ) - ( x2 , y2 ) 该方法的功能是将容器的左上角坐标定义为(x1,y1),将右下角坐标定义为(x2,y2),

9、如果省略则默认为是当前窗体。如果省略“(x1,y1)-(x2,y2)”则将坐标系统还原为系统默认的坐标系统。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,11,第一节 坐标系统,三、图像分辨率 Visual Basic绘图中的点是以显示器像素为标准的,设置一个点的颜色是设置窗体对应着的显示器的一个像素的颜色。 1. 显示器简介 显示器是计算机最主要的外部设备之一。显示系统由显示器和适配卡(显示卡)组成,两者必须配对。 2. 显示分辨率 显示分辨率是指屏幕上有多少个基本像素点。显示系统的分辨率是指显示卡和显示器两者的分辨率。不同分辨率的显示器应与相对应分辨率的显示卡配套使用,才能获得所希望达

10、到的显示效果。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,12,第一节 坐标系统,3. 显示速度 显示速度是指显示图像或文字时的速度。由于显示分辨率和显示器的扫描频率有关,显示分辨率高时,一个完整屏幕的像素点就增多了,所有像素都要显示一遍,速度就要慢下来,这就需要提高扫描频率。 4. 颜色和灰度 颜色和灰度是衡量显示系统性能的又一重要参数。早期的显示卡MDA配单色的显示器只能显示字符,仅有一般亮度和高亮度两种灰度,彩色显示系统最多也只有16种颜色。而目前的颜色显示系统VGA,可达256种颜色甚至更多。 5. 图形显示能力 图形显示能力是指屏幕上的每一个像素点可以设置成不同值的能力。早期的

11、单色显示系统MDA是字符型的,不支持图形显示,它的控制比较简单。而随后出现的显示系统均能支持图形显示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,13,第一节 坐标系统,四、几个数字图像的重要概念 1色阶(1evels) 色阶是指各种图像色彩模式下图形原色(如RGB模式下的原色为R,G,B和RGB四种)的明暗度,色阶的调整也就是明暗度的调整。色阶的范围为0255,也就是说,总共包含256种色阶。 2色调(Hue) 图像通常被划分为多个色调(如绿色、红色),其中包含一个主色调。色调调整也就是旨将图像颜色在各种颜色之间进行调整,用户可分别调整各色调。 3饱和度(Saturation) 饱和度

12、是指图像颜色的彩度或鲜艳程度(如更红或更绿),将一个图像的饱和度降至-100时图像即变为灰度图。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,14,第一节 坐标系统,4亮度(Brightness) 亮度是指图像中明暗程度的平衡,它决定了明暗色调的强度。 5对比度(Contrast) 对比度是指不同颜色之间的差异。对比度越大,两种颜色之间的差异就越大。例如,将一幅灰度图像的对比度增加后,黑白颜色对比会更加鲜明。当对比度增加到极限时,一幅灰度图像将只剩下黑白两色;而将对比度减小到极限时,一幅灰度图像将只剩下灰色底图。 6色域(Gamut) 事实上,人眼所能看见的光、色范围非常广泛,而由计算机的

13、彩色屏幕按RGB模式或由彩色印刷品按CYMK模式所表示出来的光与色,只不过是其中的一部分。,返回本章首页,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,15,第二节 绘制线段,一、简单画点 1. 画点方法 在Visual Basic中提供了画点的函数,其格式如下: . Pset ( x , y ) , Color 功能:在该对象中的X轴和Y轴上画一个点,若选择了 ,Color参数,则画出的点具有颜色。 【例题6.3】 使用画点函数画出99个点,颜色选择为黑色,即RGB(10,10,10),画点原点为系统默认坐标原点(0,0)。 Private Sub Command1_Click() Dim

14、 i As Integer For i = 0 To 99 PSet (i * 50, i * 50), RGB(10, 10, 10) Next End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,16,第二节 绘制线段,2. 清除点 清除点的方法是采用把某一点的背景颜色设置为(Back Color),其格式如下: . Pset ( x , y ) 功能:清除画点。 【例题6.4】 利用Pset函数在窗体上画出由下列参数方程决定的曲线: 在窗体下的Click过程下,绘制以上的曲线为星形线,其程序代码如下: Private Sub Form_Click() Form1.Scale

15、(-1, 1)-(1, -1) DrawWidth = 2 For t = 0 To 2 * 3.14259265 Step 0.001 x = Sin(2 * t) * Cos(t) y = Sin(2 * t) * Sin(t) PSet (x, y), QBColor(2) Next t End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,17,第二节 绘制线段,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,18,第二节 绘制线段,【例题6.5】 使用画点函数画出99个点,颜色选择为黑色,即RGB(10,10,10),画点原点为系统默认坐

16、标原点(0,0)。单击“画点”按钮,即可99个点,单击“清点”按钮后,即可清除刚画好的这99个点。 以下程序是在例题6.3的基础上再增加一段“清除点”的程序。 【程序代码】 Private Sub Command2_Click() Dim i As Integer For i = 0 To 99 PSet (i * 50, i * 50), Back Color Next End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,19,第二节 绘制线段,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,20,第二节 绘制线段,二、绘制线段 1. 简单画线

17、方法 格式: . Line Step( x1 , y1 )- step( x2 , y2 ) , ,BF 功能:在控件上,画出一条从( x1 , y1 )到( x2 , y2 )的线段。其中( x1 , y1 )和, 为可选项。参数x和y既可以是整数,又可以是小数。 说明: (1):表示要绘制线段的对象名称,例如,窗体、图片框等。省略时默认为当前窗体。 (2)( x1 , y1 ):表示要绘制线段的起始坐标位置,是可选项。该参前面带有Step选项,表示相对于(CurrentX,CurrentY)的坐标,否则为相对于当前坐标系的坐标。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,21,第二节

18、 绘制线段,(3)( x2 , y2 ):表示绘制线段的终点坐标,是必选项,如果( x2 , y2 )前面带有Step选项,则表示相对于(CurrentX,CurrentY)的坐标,否则为相对于当前坐标系的坐标。 (4) :表示绘制线段的颜色选择,是可选项,若省略时,则使用对象当前的前景色,也就是当前的Forecolor属性的值。 (5)B:表示是否画矩形,是可选项,当选择该参数时,矩形左上角的坐标为( x1 , y1 ),矩形右下角的坐标为( x2 , y2 )。 (6)F:是可选项,如果选择了B后再选择F参数,则矩形的填充颜色取矩形的边框颜色,如果只选择B参数,而不选择F参数,则矩形的填充

19、取当前对象的FillColor属性和FillSytle属性所指的颜色。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,22,第二节 绘制线段,【例题6.6】 利用画线函数在窗体上画出两条对角直线,当改变窗体大小或双击鼠标器时,可以删除该对角线。 (1)窗体单击事件将画出两条对角线 Private Sub Form_Click() Line (0, 0)-(ScaleWidth, ScaleHeight) Line (0, ScaleHeight)-(ScaleWidth, 0) End Sub (2)双击窗体后将删除对角线 Private Sub Form_DblClick() Cls En

20、d Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,23,第二节 绘制线段,(3)改变窗体后将删除对角线 Private Sub Form_Resize() Cls End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,24,第二节 绘制线段,【例题6.7】 利用画线函数在窗体上画出矩形框。当用鼠标器双击该窗体时,画出一个矩形框,如图6-10(a)所示。当用鼠标器单击该窗体时,画出10个矩形框,如图6-10(b)所示。 (1)窗体双击事件将画出1个矩形框 Private Sub Form_DblClick() Form1.Cls Line

21、(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 Single Dim end_tmp As Single Dim start_tmp As Single For count = 1 To 10 end_tmp = count

22、 * 200 start_tmp = count * 60 Line (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 count End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,26,第二节 绘制线段,第二节 绘制线段

23、2. 另一种画线方法 除了指定起点确定一条直线之外,还可以使用步长的方法来确定线段的长度和方向,其格式如下: 格式: . 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是一个步长,这个步长就是在原来的基础上再增加一个值,也就是说,从原来的坐标位置处,增加

24、的值就是画线的长度。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,27,第二节 绘制线段,三、改变线的宽度和虚实 1. 改变线宽 在绘制线段时,如果不加以说明或设置其线宽,则按系统的默认线宽进行绘制线段。在实际情况下,需要改变线段的宽度,则可以对DrawWidth属性的值进行改变,达到线宽的目的。 DrawWidth属性:该属性主要用来设置绘制线段的宽度,其数据类型为数值型。 【例题6.8】 改变线段宽度属性值,画出不同线宽的线段。 Private Sub Command1_Click() Dim linewidth As Integer For linewidth = 1 To 10 D

25、rawWidth = linewidth Print “第”; linewidth; “号”,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,28,第二节 绘制线段,Line (100, 500 * linewidth) -(3000, 500 * linewidth) Print Next End Sub 执行以上运行该程序后, 显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,29,第二节 绘制线段,2. 实线和虚线 设置线段的虚线和实线可以对DrawStyle属性的值进行改变即可达到目的。 DrawStyle属性:该属性主要用来设置绘制线段的类型,是虚线还是实线,其数

26、据类型为数值型。该属性共有以下7种线条效果,它们是: 0Solid:表示该属性的值可以绘制的线段为实线; 1Dash:表示该属性的值可以绘制的线段为长虚线; 2Dot:表示该属性的值可以绘制断虚线; 3Dash-Dot:表示该属性的值可以绘制点划线; 4Dash-Dot-Dot:表示该属性的值可以绘制点点划线; 5Transparent:表示该属性的值可以绘制空线即不可见的线,或者可以用来删除线段。 6Inside Solid:表示该属性的值可以绘制实线。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,30,第二节 绘制线段,【例题6.10】 利用画线函数在窗体上画出若干条随机的直线,并以窗

27、体中心为起点,每0.1秒画出一条直线,线宽设计为2,线的颜色使用RGB函数随机产生,单击停止按钮后则停止画线。 【程序代码】 (1)命令按钮1单击事件段 Private Sub Command1_Click() Form1.Cls Timer1.Enabled = True End Sub (2)命令按钮2单击事件段 Private Sub Command2_Click() Timer1.Enabled = False End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,31,第二节 绘制线段,(3)窗体装运事件段 Private Sub Form_Load() Timer1.En

28、abled = False Timer1.Interval = 100 Randomize Form1.Scale (-1, 1)-(1, -1) DrawWidth = 2 End Sub (4)时钟段 Private Sub Timer1_Timer() randx = Rnd randy = Rnd,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,32,第二节 绘制线段,If Rnd 0.5 Then randx = -randx If Rnd 0.5 Then randy = -randy Form1.Line (0, 0)-(randx, randy), RGB(Rnd * 255,

29、 Rnd * 255, Rnd * 255) End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,33,第二节 绘制线段,四、画线综合应用举例 【例题6.11】 利用画点和画线函数在窗体上画出任意形状的几何图形。当在窗体上用鼠标器单击时,便在该坐标点上画一个黑色的小点,当在窗体上用鼠标器双击时,便可将在该窗体上的所有黑色小点用直线连接起来,当按下键盘上的任何一个键时,将删除所有的图形,即清除屏幕。 (1)通用声明段 Dim xpt(100) As Integer Dim ypt(100) As Integer Dim num As Integer

30、 (2)按任意键后将清屏 Private Sub Form_KeyPress(KeyAscii As Integer) Cls num = 0 End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,34,第二节 绘制线段,(3)单击鼠标器左键画点,单击鼠标器右键则画一条连线 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If (Button = 1) Then 单击鼠标器左键 xpt(num) = X 记住鼠标器位置 ypt(num) = Y PSet

31、 (X, Y) 在鼠标器位置绘点 num = num + 1 End If If (Button = 2) Then 单击鼠标器右键 For i = 0 To num - 2 将各点连线 For j = i + 1 To num - 1 Line (xpt(i), ypt(i)-(xpt(j), ypt(j) Next j Next i End If End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,35,第二节 绘制线段,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,36,第二节 绘制线段,【例题6.13】 试编写一程序,要求使用鼠标器的拖

32、拽方法来绘线,也就是,当按下鼠标器的左按键后,不放手,移动鼠标器后,在窗体下就会绘制出鼠标器移动的轨迹。当按下键盘中的任何按键后,将删除刚绘制的一段,即清屏。 (1)通用声明段 Dim colorval As Long (2)窗体按键段 Private Sub Form_KeyPress(KeyAscii As Integer) Cls End Sub (3)窗体装运事件段 Private Sub Form_Load() colorval = RGB(0, 0, 255) 设置线段为蓝色 End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,37,第二节 绘制线段,(4)窗体鼠标器按

33、下事件段 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If (Button = 1) Then 按鼠标器的左边键 PSet (X, Y), colorval 在鼠标器位置处绘点 End If End Sub (5)窗体鼠标器拖拽事件段 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Line

34、-(X, Y), colorval 按鼠标器左边键 End If End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,38,第二节 绘制线段,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,39,第二节 绘制线段,【例题6.14】 对例题6.13增加一个改变线宽的功能,增加一个实线和虚线功能,增加一个菜单功能,如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,40,第二节 绘制线段,(1)按下鼠标器左键绘点 Private Sub Form_MouseDown(Button As Integer, Shift As Integer,

35、X As Single, Y As Single) If (Button = 1) Then 按下鼠标器左边键 PSet (X, Y) 在鼠标器位置处绘点 menCls.Enabled = -1 令清除指令可操作 End If End Sub (2)鼠标器拖拽后产生的绘图效果 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Line -(X, Y) 按鼠标器左边键 End If End Sub,VB程序设计教程,沈美莉 马银晓

36、 陈孟建 编著,41,第二节 绘制线段,(3)执行版本说明程式指令 Private Sub menAbout_Click() msg = “作者:高级程序员“ msg = msg + Chr(10) 用于换行 msg = msg + “时间:2003年11月28日“ MsgBox msg End Sub (4)清屏处理 Private Sub menCls_Click() Cls menCls.Enabled = 0 令清除指令无法运作 End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,42,第二节 绘制线段,(5)执行退出程式指令 Private Sub menuquit_Cl

37、ick() End End Sub (6)执行改变线宽程式指令 Private Sub menWidth_Click(Index As Integer) menWidth(DrawWidth - 1).Checked = 0 取消原先设定 DrawWidth = Index + 1 设定线宽 menWidth(Index).Checked = -1 设定此指令 End Sub,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,43,第二节 绘制线段,(7)执行改变线条效果 Private Sub menstyle_Click(Index As Integer) DrawStyle = Index

38、 + 1 设定线条效果 menstyle(DrawStyle - 1).Checked = 0 取消原先设定 menstyle(Index).Checked = -1 设定此指令 End Sub 运行该程序后,显示结果如下图所示。,返回本章首页,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,44,第三节 绘制圆、椭圆和弧,一、Circle方法 在Visual Basic中提供了Circle方法,可以用来画圆、椭圆、圆弧、扇形等图形,其格式为: . Circlestep(x,y), , , 功能:在指定的对象位置处画圆形。 说明: (1):表示要绘制的圆形、椭圆、圆弧、扇形等的对象名称,例如窗

39、体、图片框等,若省略该选项,则默认为当前的窗体。 (2)(x,y):表示要绘制图形的圆心起始坐标位置,是可选项。该参前面带有Step选项,表示相对于(CurrentX,CurrentY)的坐标,否则为相对于当前坐标系的坐标。 (3):表示绘制圆图形的半径,若要绘制椭圆形,则指椭圆形长半轴的长度。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,45,第三节 绘制圆、椭圆和弧,(4):表示绘制图形的边框颜色值,是可选项,若省略时,则使用当前对象的前景颜色,即使用当前对象的ForeColor属性值。 (5):表示要绘制图形的起始角度,以弧度为单位,该项为可选项。 (6):表示要绘制图形的终止角度,

40、以弧度为单位,该项为可选项。 (7):表示要绘制的椭圆形图形的长半轴与短半轴的比值,若大于1,则为纵向椭圆形,若小于1时,则为横向椭圆形,若等于1时,为圆。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,46,第三节 绘制圆、椭圆和弧,【例题6.15】 试编写程序,画出一些简单的圆形图。 Private Sub Command1_Click() Dim radius As Single radius = (Width - 1000) / 2 Dim angle As Double angle = 5 Dim color As Long color = 255 Do While radius

41、= 300 Circle (Width / 2, Height / 2 - 200), radius, 255 radius = radius * 10 / 11 color = color + 10 Loop End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,47,第三节 绘制圆、椭圆和弧,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,48,第三节 绘制圆、椭圆和弧,【例题6.16】 试编写程序,在窗体上画出一个地球仪图形。 【程序代码】 Private Sub Command1_Click() Form1.Scale (-1, 1)-(1

42、, -1) Form1.Cls Form1.DrawWidth = 2 Form1.Circle (0, 0), 0.8, , , , 1 Form1.Circle (0, 0), 0.8, , , , 0.2 Form1.Circle (0, 0), 0.8, , , , 2 End Sub 运行修改的程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,49,第三节 绘制圆、椭圆和弧,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,50,第三节 绘制圆、椭圆和弧,二、改变绘图参数 1. RGB颜色系统 我们已经知道计算机可以使用三原色RGB即Red(红色)、Gree

43、n(绿色)、Blue(蓝色)来表示颜色的。RGB函数的格式为: RGB(数值,数值,数值) RGB各项的数值都是0255,用16 进制表示就是00FF。 几种常用颜色的RGB值如下: (1)白色:RGB(255,255,255) (2)黑色:RGB(0,0,0) (3)红色:RGB(255,0,0) (4)蓝色:RGB(0,0,255) (5)绿色:RGB(0,255,0) (6)紫色:RGB(255,0,255) (7)黄色:RGB(255,255,0) (8)蓝绿色:RGB(0,255,255),VB程序设计教程,沈美莉 马银晓 陈孟建 编著,51,第三节 绘制圆、椭圆和弧,2. QBCo

44、lor颜色系统 QBColor颜色系统使用QBColor函数,其格式如下: QBColor(int x) QBColor函数中的X数值取值为015,其数据类型为整型。 【例题6.17】 试编写程序,在窗体上画出不同的QBColor函数值的颜色。 Private Sub Command1_Click() Dim i As Integer Form1.Cls DrawWidth = 2 For i = 0 To 15 Line (1 + i, 400 * i)-(4000, 2000), QBColor(i) Next i End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美

45、莉 马银晓 陈孟建 编著,52,第三节 绘制圆、椭圆和弧,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,53,第三节 绘制圆、椭圆和弧,3. 用长整型数值表示颜色 我们知道在RGB函数中,我们使用了3个从0255的整数来表示颜色,那么,表示颜色的总数可达到255*255*255=16777216种,因此,我们也可以直接使用长整型数据即016777215之间的任意整数作为颜色的值。 在Visual Basic中,用整型数&H&表示颜色,其中颜色的数位设置为&HBBGGRR&,从低到高分别是红、绿、蓝。 【例题6.18】 试编写程序,用长整型数值表示颜色,在窗体上画出不同的数值所表示的颜色。运行

46、程序后将看到的是一幅颜色渐变的图。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,54,第三节 绘制圆、椭圆和弧,Private Sub Command1_Click() Dim i, j As Integer Dim color As Long Form1.Cls For i = 0 To 255 For j = 0 To 255 color = i * 100 color = color * 100 PSet (i * 20, j * 20), color Next j Next i End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,55

47、,第三节 绘制圆、椭圆和弧,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,56,第三节 绘制圆、椭圆和弧,4. 图形的填充效果 在填充图形时,可以使用FillStyle属性值来完成,该属性值可以对等间隔的各类横线斜线甚至是交叉的线条进行填充,下表所示的是FillStyle属性中的各个数值所对应的填充效果。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,57,第三节 绘制圆、椭圆和弧,【例题6.19】 试编写程序,使用FillStyle属性值来填充图形。 Private Sub Command1_Click() Dim i As Integer Dim k As Long DrawWidth = 2 k = 100 For i = 1 To 7 k = k * i FillStyle = i Line (k + 400, k + 400)-Step(k + 900, k + 900), RGB(255, 0, 0), B Next i End Sub 运行该程序后,显示结果如下图所示。,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,58,第三节 绘制圆、椭圆和弧,返回本章首页,VB程序设计教程,沈美莉 马银晓 陈孟建 编著,59,本次课程结束谢谢合作!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1