处理图形- 多媒体课件_第1页
处理图形- 多媒体课件_第2页
处理图形- 多媒体课件_第3页
处理图形- 多媒体课件_第4页
处理图形- 多媒体课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大学计算机基础教程TaiYuan University of Technology处理图形处理图形- - 多媒体课件多媒体课件5【例【例10-110-1】设计一个模拟单摆】设计一个模拟单摆控件:控件:图片框控件图片框控件Picture1Picture1:作单摆容器:作单摆容器直线控件直线控件Line1Line1:作绳索:作绳索形状控件形状控件Shape1Shape1:作球设计界面中为矩形:作球设计界面中为矩形定时器控件定时器控件Timer1Timer1:控制摆动。:控制摆动。622个模块级变量个模块级变量A A和和D D,表示摆动角度和方向。,表示摆动角度和方向。22个事件过程:个事件过程:F

2、orm_LoadForm_Load,初始化界面和控件属性,初始化界面和控件属性Timer1_TimerTimer1_Timer,控制单摆的运动。,控制单摆的运动。7 Option Explicit Option ExplicitDim A As Integer, D As Integer Dim A As Integer, D As Integer 模块级变量,模块级变量,A A表示角度,表示角度,D D表示方向表示方向Const PI = 3.1415926Const PI = 3.1415926Private Sub Form_Load()Private Sub Form_Load() F

3、orm1.Width = 1.3 Form1.Width = 1.3 * * Form1.Height Form1.Height 设置窗体的宽度和高度比例设置窗体的宽度和高度比例 Picture1.Width = 1.5 Picture1.Width = 1.5 * * Picture1.Height Picture1.Height 设置图片框的宽度和高度比例设置图片框的宽度和高度比例 Picture1.Scale (-150, -5)-(150, 195) Picture1.Scale (-150, -5)-(150, 195) 更改坐标系统更改坐标系统 Shape1.FillStyle =

4、 0 Shape1.FillStyle = 0 使形状控件的填充模式为使形状控件的填充模式为 实心实心 Shape1.FillColor = vbRed Shape1.FillColor = vbRed 使形状控件填充红色使形状控件填充红色 Shape1.BorderColor = vbRed Shape1.BorderColor = vbRed 使形状控件的边界颜色为红色使形状控件的边界颜色为红色 Shape1.Width = 15 Shape1.Width = 15 按坐标系,更改形状控件大小按坐标系,更改形状控件大小 Shape1.Shape = 3 Shape1.Shape = 3 使

5、形状控件的形状为圆形使形状控件的形状为圆形 Line1.BorderColor = vbRed Line1.BorderColor = vbRed 使绳索颜色为红色使绳索颜色为红色 Line1.X1 = 0: Line1.Y1 = 0 Line1.X1 = 0: Line1.Y1 = 0 使绳索上端在原点使绳索上端在原点(0,0)(0,0)上上 Picture1.AutoRedraw = True Picture1.AutoRedraw = True 使图片框的重绘属性为使图片框的重绘属性为TrueTrue Picture1.Line (-10, 0)-(10, 0) Picture1.Lin

6、e (-10, 0)-(10, 0) 顶端画一条固定绳索的横线顶端画一条固定绳索的横线 Timer1.Interval = 100Timer1.Interval = 100 A = -20: D = -1 A = -20: D = -1 设置初始角度和方向设置初始角度和方向End SubEnd Sub8 Private Sub Timer1_Timer() Private Sub Timer1_Timer() Dim X As Single, Y As Single Dim X As Single, Y As Single If D = -1 Then A = A + 2 Else A = A

7、 - 2 If D = -1 Then A = A + 2 Else A = A - 2 X = 170 X = 170 * * Sin(A Sin(A * * PI / 180) PI / 180) 确定圆心和直线下确定圆心和直线下端的位置端的位置 Y = 170 Y = 170 * * Cos(A Cos(A * * PI / 180) PI / 180) Line1.X2 = X: Line1.Y2 = Y Line1.X2 = X: Line1.Y2 = Y 更改直线下端位置更改直线下端位置 Shape1.Left = X - Shape1.Width / 2 Shape1.Left

8、= X - Shape1.Width / 2 使圆心位置在直线的下端使圆心位置在直线的下端 Shape1.Top = Y - Shape1.Height / 2Shape1.Top = Y - Shape1.Height / 2 If D = -1 And A = 20 Or D = 1 And A = -20 Then D = -D If D = -1 And A = 20 Or D = 1 And A = -20 Then D = -D 2020改方向改方向End SubEnd SubScaleScale方法使图片框左上角和右下角坐标分别为方法使图片框左上角和右下角坐标分别为(-150,-

9、5)(-150,-5)和和(150,195)(150,195)。而而170170表示着绳索的长度,可以取其它值,但应使整个单摆可见。表示着绳索的长度,可以取其它值,但应使整个单摆可见。9坐标系是用于确定数与根本几何对象之间对应关系的参坐标系是用于确定数与根本几何对象之间对应关系的参考系,是形和数结合的根底。考系,是形和数结合的根底。VBVB坐标系是确定对象和图形位置的参考系。坐标系是确定对象和图形位置的参考系。VBVB中每一个容器采用中每一个容器采用(x,y)(x,y)的二维坐标系统的二维坐标系统每个对象、图形操作,都要使用坐标系。每个对象、图形操作,都要使用坐标系。VBVB坐标系统使用有以下

10、规那么:坐标系统使用有以下规那么:移动或调整控件大小时,使用容器的坐标系统。移动或调整控件大小时,使用容器的坐标系统。绘图方法和绘图方法和PrintPrint方法,使用容器的坐标系统。方法,使用容器的坐标系统。1010.3.1 VB默认坐标系默认坐标系VB坐标系每个点用坐标系每个点用(x,y)表示表示x是水平方向沿是水平方向沿x轴的位置,默认最左端是轴的位置,默认最左端是0y是垂直方向沿是垂直方向沿y轴的位置,默认最上端是轴的位置,默认最上端是0坐标单位又称为坐标刻度,默认缇坐标单位又称为坐标刻度,默认缇twips)。还可以使用磅、像素和毫米等。还可以使用磅、像素和毫米等。屏幕的左上角的坐标总

11、是屏幕的左上角的坐标总是(0,0)11其它容器在其它容器在下,左上角是下,左上角是(0,0)(0,0)。窗体窗体(0,0)(0,0)点指窗体标题栏下边沿的左上角。点指窗体标题栏下边沿的左上角。使用对象的刻度属性和使用对象的刻度属性和ScaleScale方法,可重新设置方法,可重新设置容器的坐标系统。容器的坐标系统。1210.3.2 Scale方法方法使用使用Scale方法可以创立自定义刻度。方法可以创立自定义刻度。Scale方法的使用格式为:方法的使用格式为: 容器名容器名.Scale (x1,y1)-(x2,y2)1容器名指窗体名或图片框控件名。容器名指窗体名或图片框控件名。缺省指当前窗体缺

12、省指当前窗体2(x1, y1)和和(x2, y2) 为新坐标系统左上角和右下为新坐标系统左上角和右下角坐标角坐标3省略省略(x1,y1)-(x2,y2),恢复缺省刻度。,恢复缺省刻度。13 例例10-110-1中中Picture1.Scale (-150, -5)-(150, Picture1.Scale (-150, -5)-(150, 195) 195)更改图片框坐标系如上图。更改图片框坐标系如上图。这样求运动点这样求运动点(x,y)(x,y)的位置比较方便的位置比较方便设绳索长为设绳索长为170170,那么当绳索与,那么当绳索与y y轴的夹角为轴的夹角为a a时,时,那么那么x=170s

13、inax=170sina,y=170cosay=170cosa。1410.3.3 坐标属性坐标属性使用坐标属性可以更改容器的坐标刻度,也可以使用坐标属性可以更改容器的坐标刻度,也可以自定义坐标系。自定义坐标系。ScaleMode:设置坐标刻度,缺省值为:设置坐标刻度,缺省值为1缇缇ScaleLeft:表示或设置对象左边界水平坐标:表示或设置对象左边界水平坐标ScaleTop:表示或设置对象上边界垂直坐标:表示或设置对象上边界垂直坐标ScaleWidth:表示或设置对象内水平度量单位数:表示或设置对象内水平度量单位数ScaleHeight:表示或设置对象内垂直度量单位数:表示或设置对象内垂直度量

14、单位数CurrentX:当前输出的水平坐标。程序中使用。:当前输出的水平坐标。程序中使用。CurrentY:当前输出的垂直坐标。程序中使用。:当前输出的垂直坐标。程序中使用。15属性说明:属性说明:ScaleWidthScaleWidth、ScaleHeightScaleHeight不同于不同于WidthWidth、HeightHeightScaleModeScaleMode属性可以取值属性可以取值0707,表示刻度分别为自定,表示刻度分别为自定义、缇、磅、像素、字符、英寸、毫米和厘米。义、缇、磅、像素、字符、英寸、毫米和厘米。更改更改ScaleWidthScaleWidth、ScaleHei

15、ghtScaleHeight、ScaleLeftScaleLeft、ScaleTopScaleTop之之 一时,一时,VBVB自动将自动将ScaleModeScaleMode的值设为的值设为0 0。如如Scale (-150, -5)-(150, 195)Scale (-150, -5)-(150, 195),也可以表示成:,也可以表示成: ScaleWidth=300:ScalHeight=200: ScaleWidth=300:ScalHeight=200: ScaleLeft=-150:ScaleTop=-5ScaleLeft=-150:ScaleTop=-5假设要改坐标轴方向,可将假设

16、要改坐标轴方向,可将ScaleWidthScaleWidth或或ScaleHeightScaleHeight设置成负值设置成负值16ScaleModeScaleMode属性取值为属性取值为1717时的刻度,称为标准时的刻度,称为标准刻度刻度在设置了在设置了ScaleModeScaleMode属性的值后,属性的值后,VBVB会重定义会重定义ScaleWidthScaleWidth和和ScaleHeightScaleHeight,使它们与新刻度,使它们与新刻度保持一致。保持一致。左上角坐标总是:左上角坐标总是:(ScaleLeft,ScaleTop)(ScaleLeft,ScaleTop)右下角坐

17、标总是:右下角坐标总是: (ScaleLeft+ScaleWidth,ScaleTop (ScaleLeft+ScaleWidth,ScaleTop +ScaleHeight)+ScaleHeight)。1710.4.1 画点画点PSet方法方法绘图方法可画点、画线、画矩形、画椭圆等。绘图方法可画点、画线、画矩形、画椭圆等。格式:格式: 对象名对象名.PSet (x,y) ,.PSet (x,y) ,颜色颜色 1 1(x,y)(x,y)为所画点的坐标位置为所画点的坐标位置2 2颜色指点的颜色。缺省时由容器的颜色指点的颜色。缺省时由容器的ForeColorForeColor属性决定。属性决定。例

18、如:例如:PSet (1000, 1000), RGB(255, 0, 0)PSet (1000, 1000), RGB(255, 0, 0)在在(1000,1000)(1000,1000)处画红点,大小由容器的处画红点,大小由容器的DrawWidthDrawWidth属性决属性决定。定。3 3擦除一个点,可采用以背景色重画点。擦除一个点,可采用以背景色重画点。4 4 ClsCls方法可擦除绘图方法及方法可擦除绘图方法及PrintPrint方法的输出内容。方法的输出内容。18【例【例10-210-2】绘制一条】绘制一条y=xy=x2 2的抛物线。的抛物线。Private Sub Form_Cl

19、ick()Private Sub Form_Click() Dim x As Single Dim x As Single Scale (-10, 105)-(10, -2) Scale (-10, 105)-(10, -2) For x = -9 To 9 Step 0.01 For x = -9 To 9 Step 0.01 PSet (x, x PSet (x, x * * x) x) Next x Next xEnd SubEnd Sub1910.4.2 画直线和矩形画直线和矩形LineLine的方法的方法使用使用LineLine方法可以画出直线或矩形。方法可以画出直线或矩形。1 1画

20、线格式:画线格式: 对象名对象名.Line (x1,y1)-(x2,y2) .Line (x1,y1)-(x2,y2) ,颜色颜色 (x1,y1)(x1,y1)和和(x2,y2)(x2,y2)分别为起点和终点坐标分别为起点和终点坐标如:如:Line (100, 150)-(1400, 1300), vbRedLine (100, 150)-(1400, 1300), vbRed 缺省起点缺省起点 (x1,y1)(x1,y1),表示将当前输出位置作为,表示将当前输出位置作为 起点。起点。20坐标点的另一种表示形式为:坐标点的另一种表示形式为:Step(x,y)Step(x,y)是相对位置的表示法

21、,表示当前输出位置水平方向加上是相对位置的表示法,表示当前输出位置水平方向加上x x,垂直方向加上垂直方向加上y y后得到的坐标点。后得到的坐标点。对象的当前位置由对象的当前位置由CurrentXCurrentX和和CurrentYCurrentY决定决定Line (100, 200)-(150, 250)Line (100, 200)-(150, 250)等价:等价:Line (100, 200)-Line (100, 200)-Step(50, 50)Step(50, 50)VBVB画直线时,包括了起点,未包括终点。画终画直线时,包括了起点,未包括终点。画终点可用:点可用: PSet St

22、ep(0, 0), color连续使用缺省起点的连续使用缺省起点的LineLine方法,可以绘制多点方法,可以绘制多点折线。折线。21【例【例10-310-3】在窗体上中间画出一个等腰三角形。】在窗体上中间画出一个等腰三角形。可根据窗体可根据窗体ScaleWidthScaleWidth和和ScaleHeightScaleHeight属性确定属性确定三点位置三点位置由于一条线的终点等价于另一条线的起点,因由于一条线的终点等价于另一条线的起点,因此除了第一条线以外,其它两条线均可用缺省此除了第一条线以外,其它两条线均可用缺省起点的起点的LineLine方法。方法。22232 2画矩形采用格式:画矩

23、形采用格式: 对象名对象名.Line (x1,y1)-(x2,y2) ,.Line (x1,y1)-(x2,y2) ,颜颜色色,BF,BF(x1,y1)(x1,y1)和和(x2,y2) (x2,y2) 为矩形的两个对角顶点坐标为矩形的两个对角顶点坐标缺省缺省(x1,y1)(x1,y1),表示当前输出位置作,表示当前输出位置作(x2,y2)(x2,y2)的对的对角顶点角顶点参数参数B B表示绘制矩形表示绘制矩形参数参数F F表示矩形填充,即为实心的矩形表示矩形填充,即为实心的矩形如:如:Line (500, 200)-Step(200, 200), vbRed, Line (500, 200)-

24、Step(200, 200), vbRed, B B如:如: Line (500, 200)-Step(200, 200), vbRed, Line (500, 200)-Step(200, 200), vbRed, BFBF假设颜色缺省,逗号也不能省假设颜色缺省,逗号也不能省24【例【例10-410-4】编制简易黑板。功能是:用鼠标左键在】编制简易黑板。功能是:用鼠标左键在窗体上拖动时,画出线条;用鼠标右键在窗体上拖窗体上拖动时,画出线条;用鼠标右键在窗体上拖动时,擦去线条。击动时,擦去线条。击“去除去除 擦去所有痕迹。擦去所有痕迹。事件:事件: 窗体窗体MouseDownMouseDown

25、:画出按下鼠标的第一点:画出按下鼠标的第一点窗体窗体MouseMoveMouseMove:画出线条或删除线条:画出线条或删除线条用背景色,画小矩形擦用背景色,画小矩形擦“去除的去除的ClickClick:擦去所有痕迹:擦去所有痕迹25Private Sub Command1_Click() Private Sub Command1_Click() 擦擦“黑板黑板ClsClsEnd SubEnd SubPrivate Sub Form_Load() Private Sub Form_Load() 初始化初始化 Form1.Caption = Form1.Caption = 简易黑板简易黑板 Fo

26、rm1.BackColor = RGB(0, 0, 0) Form1.BackColor = RGB(0, 0, 0) Form1.ForeColor = RGB(255, 255, 255) Form1.ForeColor = RGB(255, 255, 255) Command1.Caption = Command1.Caption = 擦除擦除 End SubEnd Sub26Private Sub Form_MouseDown(Button As Integer, Shift As Private Sub Form_MouseDown(Button As Integer, Shift

27、As Integer, X As Single, Y As Single)Integer, X As Single, Y As Single) If Button = 1 Then Button = 1 If Button = 1 Then Button = 1表示按下左键,表示按下左键, 画第一点画第一点 Form1.PSet (X, Y)Form1.PSet (X, Y) End If End IfEnd SubEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Private Sub Form_MouseMove(B

28、utton As Integer, Shift As Integer, X As Single, Y As Single)Integer, X As Single, Y As Single) If Button = 1 Then If Button = 1 Then 左键拖动画线左键拖动画线 Form1.Line -(X, Y)Form1.Line -(X, Y) ElseIf Button = 2 Then ElseIf Button = 2 Then 右键拖动以黑色画实心方块,起擦除作用右键拖动以黑色画实心方块,起擦除作用 Form1.Line (X - 200, Y - 200)-(X

29、+ 200, Y + 200), Form1.Line (X - 200, Y - 200)-(X + 200, Y + 200), RGB(0, 0, 0), BFRGB(0, 0, 0), BF End If End IfEnd SubEnd Sub2710.4.3 画圆、弧和椭圆画圆、弧和椭圆Circle方法方法 Circle Circle方法可画出圆、圆弧、扇形或椭圆。方法可画出圆、圆弧、扇形或椭圆。1 1画圆格式:画圆格式: 对象名对象名.Circle Step(x,y), .Circle Step(x,y), 半径半径 , ,颜色颜色 Step(x,y)Step(x,y)表示圆心的

30、坐标。表示圆心的坐标。半径的度量单位与容器坐标系的单位相同,不半径的度量单位与容器坐标系的单位相同,不能为负。能为负。画圆时,半径通常由水平单位指定。画圆时,半径通常由水平单位指定。28如以下代码绘制如图。如以下代码绘制如图。Scale (-50, 20)-(50, -20)Scale (-50, 20)-(50, -20)Line (-15, 15)-(15, -15), , BLine (-15, 15)-(15, -15), , BCircle (0, 0), 15Circle (0, 0), 15又如以窗体中心为圆心,以窗体又如以窗体中心为圆心,以窗体ScaleWidthScaleWi

31、dth的的1/41/4为半径画圆:为半径画圆:Circle (ScaleWidth / 2 + ScaleLeft, Circle (ScaleWidth / 2 + ScaleLeft, ScaleHeight / 2 + ScaleTop), _ScaleHeight / 2 + ScaleTop), _ScaleWidth / 4ScaleWidth / 429【例【例10-510-5】编程,在窗体中间画】编程,在窗体中间画10001000个同心多彩圆。个同心多彩圆。 编写通用过程编写通用过程PaintCirclePaintCircle:绘制彩色圆:绘制彩色圆Sub PaintCircl

32、e()Sub PaintCircle() Dim R As Integer, X As Integer, Y As Integer Dim R As Integer, X As Integer, Y As Integer X = ScaleWidth / 2 X = ScaleWidth / 2 将将x x坐标设置在窗体内横向中间坐标设置在窗体内横向中间 Y = ScaleHeight / 2 Y = ScaleHeight / 2 将将y y坐标设置在窗体内纵向中间坐标设置在窗体内纵向中间 If X Y Then R = X If X Y Then R = X * * 0.9 Else R

33、= Y 0.9 Else R = Y * * 0.9 0.9 Circle (X, Y), R Circle (X, Y), R * * Rnd, RGB(Rnd Rnd, RGB(Rnd * * 255, Rnd 255, Rnd * * 255, Rnd 255, Rnd * * 255) 255) 画圆画圆End SubEnd Sub30 Private Sub Command1_Click() Private Sub Command1_Click()Dim i As IntegerDim i As IntegerFor i = 1 To 1000For i = 1 To 1000 Pa

34、intCircle PaintCircleNextNextEnd SubEnd Sub 其中乘其中乘0.90.9是为了最大圆不会紧贴窗体边缘。是为了最大圆不会紧贴窗体边缘。312 2画弧格式为:画弧格式为: 对象名对象名.Circle Step(x,y),.Circle Step(x,y),半径半径,颜色颜色, , Start, End, AspectStart, End, Aspect圆弧以弧度为单位,按逆时针方向画弧。圆弧以弧度为单位,按逆时针方向画弧。StartStart和和EndEnd表示弧线起始角和终止角的弧度数据表示弧线起始角和终止角的弧度数据平行于平行于X X轴的正向为轴的正向为

35、0 0弧度弧度如果如果StartStart参数或参数或EndEnd参数是负数,那么参数是负数,那么VBVB将画一条将画一条连接圆心到负端点的直线。连接圆心到负端点的直线。使用不为使用不为1 1的的 AspectAspect参数,表示为椭圆弧线的一段。参数,表示为椭圆弧线的一段。如:如:Circle (800, 800), 500, , -3.14 / 2, -3.14 Circle (800, 800), 500, , -3.14 / 2, -3.14 / 3/ 3Circle (1800, 800), 500, , 0, 3 Circle (1800, 800), 500, , 0, 3 *

36、 * 3.14 / 4 3.14 / 4323 3画椭圆格式:画椭圆格式: 对象名对象名.Circle Step(x,y),.Circle Step(x,y),半径半径,颜色颜色, Start, , Start, End, AspectEnd, Aspect画圆还是画椭圆由圆的方位比画圆还是画椭圆由圆的方位比AspectAspect决定。它指定了垂直长度和水决定。它指定了垂直长度和水平长度的比例平长度的比例VBVB在在CircleCircle方法中的半径参数对应椭圆的长轴。方法中的半径参数对应椭圆的长轴。 ,颜色颜色, Start, End, Aspect, Start, End, Aspec

37、t四项中任一项都是可选的,当前面四项中任一项都是可选的,当前面的项缺省时,逗号仍不能省去。的项缺省时,逗号仍不能省去。省略省略Start, EndStart, End中的任一项,表示该项为中的任一项,表示该项为0 0,画弧。两项都省去,画弧。两项都省去,表示画圆或椭圆。表示画圆或椭圆。如以下代码,使用半径均为如以下代码,使用半径均为500500,但使用不同的方位比,其效果如,但使用不同的方位比,其效果如图。图。Circle (800, 800), 500, , , , 3Circle (800, 800), 500, , , , 3Circle (800, 800), 500Circle (8

38、00, 800), 500Circle (2000, 800), 500, , , , 1 / 3Circle (2000, 800), 500, , , , 1 / 33310.5.1 更改线条形式更改线条形式1 1DrawWidthDrawWidth属性属性DrawWidthDrawWidth属性可以设置线条的粗细、点的属性可以设置线条的粗细、点的大小大小DrawWidthDrawWidth属性值以像素为单位,取值范围属性值以像素为单位,取值范围为为132767132767当数据取得很大时,可能一个点就能占满整个容器。当数据取得很大时,可能一个点就能占满整个容器。34下面代码根据下面代码根

39、据DrawWidthDrawWidth取值,效果如图。取值,效果如图。Private Sub Form_Click()Private Sub Form_Click()Dim i As Integer, t As IntegerDim i As Integer, t As Integert = ScaleWidth / 20t = ScaleWidth / 20For i = 1 To 20 Step 2For i = 1 To 20 Step 2 Form1.DrawWidth = i Form1.DrawWidth = i PSet (t PSet (t * * i, ScaleHeight

40、 / 4) i, ScaleHeight / 4) Line (t Line (t * * i, ScaleHeight / 2)-(t i, ScaleHeight / 2)-(t * * i, i, ScaleHeight)ScaleHeight)Next iNext iEnd SubEnd Sub352 2DrawStyleDrawStyle属性属性DrawStyleDrawStyle属性用于指定绘制的图形线条形式。属性用于指定绘制的图形线条形式。DrawStyleDrawStyle属性取值为属性取值为0606,形式如表。,形式如表。6 6:内收实线,框线较粗时,:内收实线,框线较粗时,

41、才可见效果,如图才可见效果,如图3610.5.2 填充图案填充图案 1 1FillStyleFillStyle属性属性设置封闭图形的填充图案样式,取值设置封闭图形的填充图案样式,取值0 0至至7 7缺省值为缺省值为1 1 ,无论何种色彩,均表现为空心。,无论何种色彩,均表现为空心。如希望窗体上显示各填充效果,可用代码:如希望窗体上显示各填充效果,可用代码:t = ScaleWidth / 9t = ScaleWidth / 9For I = 0 To 7For I = 0 To 7 FillStyle = I FillStyle = I Line (I Line (I * * t + 100,

42、 500)-(I + 0.8) t + 100, 500)-(I + 0.8) * * t + 100, 500 + 1000), , B t + 100, 500 + 1000), , B Next I Next I 372 2FillColorFillColor属性属性FillColorFillColor属性表示填充颜色属性表示填充颜色只要只要FillStyleFillStyle属性不为属性不为1 1,就可,就可FillColorFillColor填色填色VBVB填充矩形、圆、扇形等封闭图形填充矩形、圆、扇形等封闭图形FillColorFillColor属性的设置方式和属性的设置方式和Fo

43、reColorForeColor相同相同38注意注意FillColorFillColor和和ForeColorForeColor的差异:的差异:前者用于填充颜色前者用于填充颜色后者为默认的边线颜色,或输出文字颜色。后者为默认的边线颜色,或输出文字颜色。假设假设LineLine语句中使用了参数语句中使用了参数F F,那么所有的填充,那么所有的填充形式和填充颜色都无效。形式和填充颜色都无效。39【例【例10-610-6】根据绘图属性,画扇形、画椭圆、画环。】根据绘图属性,画扇形、画椭圆、画环。对于圆环,没有单独语句,可用图形组合。对于圆环,没有单独语句,可用图形组合。Private Sub Com

44、mand1_Click() Private Sub Command1_Click() 画扇形。画扇形。 FillStyle = 7FillStyle = 7 FillColor = RGB(255, 0, 0) FillColor = RGB(255, 0, 0) Circle (800, 1000), 800, , -0.0001, -3.14 Circle (800, 1000), 800, , -0.0001, -3.14 * * 2 / 3 2 / 3End SubEnd Sub40 Private Sub Command2_Click() Private Sub Command2_C

45、lick() 画两个椭圆画两个椭圆 FillStyle = 1 FillStyle = 1 画一个红色点线的空心椭圆画一个红色点线的空心椭圆 DrawStyle = 2 : Circle (2300, 500), 400, vbRed, , , 2DrawStyle = 2 : Circle (2300, 500), 400, vbRed, , , 2 DrawStyle = 0 DrawStyle = 0 恢复默认的线条样式恢复默认的线条样式 FillStyle = 0 FillStyle = 0 画线宽画线宽3 3个像素,线条红色的个像素,线条红色的 一个实心黄椭圆一个实心黄椭圆 Draw

46、Width = 3 : FillColor = vbYellowDrawWidth = 3 : FillColor = vbYellow Circle (2300, 1200), 400, vbRed, , , 0.5 Circle (2300, 1200), 400, vbRed, , , 0.5 DrawWidth = 1 DrawWidth = 1 恢复默认线宽恢复默认线宽End SubEnd SubPrivate Sub Command3_Click() Private Sub Command3_Click() 绘制圆环绘制圆环 FillStyle = 4 FillStyle = 4

47、画一个有填充的大圆画一个有填充的大圆 FillColor = vbBlue : Circle (3500, 1000), 600, vbRedFillColor = vbBlue : Circle (3500, 1000), 600, vbRed FillStyle = 0 FillStyle = 0 画一个实心的以背景色填充的同画一个实心的以背景色填充的同心小圆心小圆 FillColor = BackColor : Circle (3500, 1000), 300, vbRedFillColor = BackColor : Circle (3500, 1000), 300, vbRedEnd

48、 SubEnd Sub4110.6.1 直线控件直线控件Line直线控件可以在容器对象中绘制直线直线控件可以在容器对象中绘制直线该直线不能被该直线不能被Cls方法去除,方法去除,程序中修改端点可以移动直线。程序中修改端点可以移动直线。1创立直线控件:工具箱内选取直线工具创立直线控件:工具箱内选取直线工具422 2直线控件的主要属性直线控件的主要属性名称名称NameName。直线控件名称。缺省值为。直线控件名称。缺省值为Line1Line1BorderColorBorderColor:设置线条颜色:设置线条颜色BorderStyleBorderStyle:线条样式,取值为:线条样式,取值为060

49、6,分别表示透,分别表示透明、实线、破折线、点线、点划线、双点划线和明、实线、破折线、点线、点划线、双点划线和内收实线。内收实线。BorderWidthBorderWidth:设置线条粗细:设置线条粗细X1X1和和Y1Y1:分别为起点的:分别为起点的x x坐标和坐标和y y坐标坐标X2X2和和Y2Y2:分别为终点的:分别为终点的x x坐标和坐标和y y坐标坐标直线控件没有事件直线控件没有事件43 形状控件形状控件ShapeShape形状控件可以直接在容器对象中绘制图形形状控件可以直接在容器对象中绘制图形这些图形可是圆、椭圆、也可以是矩形等这些图形可是圆、椭圆、也可以是矩形等1 1创立形状控件:

50、在工具箱内选取工具创立形状控件:在工具箱内选取工具2 2形状控件的属性形状控件的属性同直线控件的同直线控件的BorderColorBorderColor、BorderStyleBorderStyle、BorderWidthBorderWidth常规属性常规属性HeightHeight、WidthWidth、LeftLeft、TopTop、VisibleVisible等等NameName名称,形状控件名称。缺省值为名称,形状控件名称。缺省值为Shape1Shape144FillColorFillColor:设置填充颜色:设置填充颜色FillStyleFillStyle:填充样式,取值:填充样式,

51、取值0707,默认为,默认为1 1,即透明。,即透明。ShapeShape:设置图形的形状,取值设置图形的形状,取值0505,分别表示矩形、正方形、,分别表示矩形、正方形、椭圆、圆、圆角矩形、圆角正方形。默认为椭圆、圆、圆角矩形、圆角正方形。默认为0 0。控件为圆时,半径为控件为圆时,半径为Height/2Height/2和和Width/2Width/2的最小的最小值;值;控件为正方形时,边长为控件为正方形时,边长为HeightHeight和和WidthWidth的最小的最小值。值。ShapeShape控件没有事件。控件没有事件。45【例【例10-710-7】用直线控件和形状控件制作钟。】用直

52、线控件和形状控件制作钟。控件:控件:7 7条直线控件条直线控件Line1Line4Line1Line4作为作为3 3、6 6、9 9、1212点的位置点的位置Line5Line7Line5Line7分别作为时、分、秒的指针。分别作为时、分、秒的指针。1 1个形状控件:作为钟的圆盘个形状控件:作为钟的圆盘用用TimeTime、HourHour、MinuteMinute、SecondSecond函数获得时、分、函数获得时、分、秒秒为了计算方便,原点为了计算方便,原点(0,0)(0,0)改在窗体中心,并且轴改在窗体中心,并且轴方向与数学上的一致,但没有更改刻度。方向与数学上的一致,但没有更改刻度。时

53、和分采用实数型时和分采用实数型此题所有的属性设置在此题所有的属性设置在Form_LoadForm_Load中完成。中完成。 46Dim H1 As Integer, M1 As Integer, S1 As Integer 指针长度Const PI = 3.1415926Private Sub Form_Load() 初始化初始化Dim R As Integer Dim R As Integer 钟的半径钟的半径Scale (-ScaleWidth / 2, ScaleHeight / 2)-(ScaleWidth / 2, -ScaleHeight / Scale (-ScaleWidth

54、/ 2, ScaleHeight / 2)-(ScaleWidth / 2, -ScaleHeight / 2) 2) Shape1.FillStyle = 0: Shape1.Shape = 3: Shape1.FillColor = vbYellow Shape1.FillStyle = 0: Shape1.Shape = 3: Shape1.FillColor = vbYellow Shape1.Left = -Shape1.Width / 2: Shape1.Top = Shape1.Height / 2 Shape1.Left = -Shape1.Width / 2: Shape1.

55、Top = Shape1.Height / 2 If Shape1.WidthShape1.Height Then R=Shape1.Width/2 If Shape1.Width= Picture1.ScaleWidth Then n + 100 = Picture1.ScaleWidth Then Label1.Caption = Label1.Caption = 数据读取完成!共用了数据读取完成!共用了 & (n + & (n + 1) & 1) & 秒秒 MsgBox MsgBox 数据读取完成数据读取完成!, , !, , 消息消息 Command1.

56、Enabled = True : Command1.SetFocus Command1.Enabled = True : Command1.SetFocus n = 0 : Timer1.Enabled = False n = 0 : Timer1.Enabled = FalseElseElse n = n + 1 n = n + 1End IfEnd IfEnd SubEnd Sub5510.7.2 影像框影像框Image影像框控件与图片框控件相似影像框控件与图片框控件相似影像框控件只用于显示图片,不能作为容器。影像框控件只用于显示图片,不能作为容器。1创立影像框:在工具箱内选取影像框工具创

57、立影像框:在工具箱内选取影像框工具2影像框的属性影像框的属性影像框控件使用布局属性和可见、可用属性。影像框控件使用布局属性和可见、可用属性。没有字体属性、颜色属性、坐标属性和绘图属性。没有字体属性、颜色属性、坐标属性和绘图属性。56其它主要属性:其它主要属性:名称名称NameName。影像框控件名称,缺省值为。影像框控件名称,缺省值为Image1Image1。StretchStretch:设置加载的图片是否能自动扩展或缩小以适:设置加载的图片是否能自动扩展或缩小以适应控件的尺寸,还是影像框去适合图片的大小。缺省应控件的尺寸,还是影像框去适合图片的大小。缺省值为值为FalseFalse。Stre

58、tchStretch为为TrueTrue时,影像框大小不会自动改变,可由影时,影像框大小不会自动改变,可由影像框的大小来调整图片的大小像框的大小来调整图片的大小StretchStretch为为为为False False 时,影像框的大小根据图片大小来时,影像框的大小根据图片大小来自动调整。自动调整。PicturePicture:设置控件内显示的图片文件。:设置控件内显示的图片文件。573 3影像框的事件影像框的事件ClickClick、DblClickDblClick、MouseDownMouseDown、MouseMoveMouseMove、MouseUpMouseUp但没有但没有Paint

59、Paint和和ResizeResize事件。事件。可用可用ImageImage控件创立按钮控件创立按钮( (因识别因识别Click)Click)。4 4影像框的方法影像框的方法可用可用MoveMove方法移动或调整它的大小方法移动或调整它的大小没有绘图方法。没有绘图方法。585 5加载图片加载图片使用使用PicturePicture属性属性可以在属性窗口中设置可以在属性窗口中设置可以利用函数可以利用函数LoadPictureLoadPicture来设置来设置PicturePicture属性。属性。ImageImage使用较少系统资源,且加载比使用较少系统资源,且加载比PictureBoxPic

60、tureBox快。快。当只要求显示图片时,可以选用当只要求显示图片时,可以选用ImageImage控件。控件。59【例【例10-910-9】利用定时器控件编程,使得】利用定时器控件编程,使得4 4幅图片在幅图片在影像框影像框Image1Image1中轮流显示,当单击中轮流显示,当单击Image1Image1时,将时,将放大的图片显示在放大的图片显示在Image2Image2中。中。控件:控件:个影像框控件:个影像框控件: StretchStretch属性设置为属性设置为TrueTrue个定时器控件个定时器控件使用静态变量控制图片显示。使用静态变量控制图片显示。60影像框影像框-图片轮流显示图片轮流显示 Private Sub Form_Load() Private Sub For

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论