第7章绘图方法精选PPT.ppt
第7章绘图方法台州学院计算机系1第1页,本讲稿共38页台州学院计算机系2本章内容本章内容7.17.1 坐标系统坐标系统坐标系统坐标系统7.1.17.1.1 坐标刻度坐标刻度7.1.27.1.2 自定义坐标系自定义坐标系7.27.2 绘图属性绘图属性绘图属性绘图属性7.2.17.2.1当前坐标当前坐标7.2.27.2.2使用颜色使用颜色7.37.3绘图方法绘图方法绘图方法绘图方法7.3.17.3.1画点方法画点方法PsetPset7.3.27.3.2画线、矩形方法画线、矩形方法LineLine6.4 6.4 滚动条滚动条7.3.37.3.3画圆、圆弧和椭圆方法画圆、圆弧和椭圆方法CircleCircle7.47.4绘图应用实例绘图应用实例绘图应用实例绘图应用实例第2页,本讲稿共38页台州学院计算机系37.1 坐标系统在Visual Basic中,容器都有一个自己默认的坐标系,坐标系中的坐标原点在容器里的左上角,X轴向右为正、Y轴向下为正,如图7-1所示窗体容器的默认坐标系。(0,0)XY第3页,本讲稿共38页台州学院计算机系47.1.1坐标刻度在Visual Basic中,容器的默认坐标系其缺省的坐标刻度是Twip(缇)。我们在程序设计中,也可以使用其它的刻度单位如:磅和毫米等等。这些可通过设置容器的ScaleMode属性进行选择改变坐标系统的刻度单位。其ScaleMode的属性值如表7-1所示。第4页,本讲稿共38页台州学院计算机系57.1.2自定义坐标系1自定义坐标系的Scale方法格式:容器名.Scale(x1,y1)-(x2,y2)功能:定义容器(缺省容器名指窗体)左上角的坐标为(x1,y1),右下角的坐标值为(x2,y2)。例如:用下列语句是在图片框控件中设置自己的坐标系,且图片框左上角的坐标为(-2,1),右下角的坐标是(2,-1),则原点在图片框中心。Picture1.Scale(-2*3.14,1)-(2*3.14,-1)使用无参数的Scale方法(如“容器名.Scale”),则可以使该容器的坐标还原为系统默认的坐标系。第5页,本讲稿共38页台州学院计算机系62使用属性自定义坐标系除了用Scale方法自定义坐标系外,也可以使用如下四个容器类对象的属性来定义坐标系,效果一样。ScaleLeft:容器左上角的横坐标,缺省值为0。ScaleTop:容器左上角的纵坐标,缺省值为0。ScaleWidth:容器自身的宽度值。ScaleHeight:容器自身的高度值。若容器左上角的坐标为(x1,y1),右下角的坐标值为(x2,y2),则:容器名.ScaleLeft=x1容器名.ScaleTop=y1容器名.ScaleWidth=x2-x1容器名.ScaleHeight=y2-y1故上述例子也可这样来自定义坐标系:Picture1.ScaleLeft=-2*3.14Picture1.ScaleTop=1Picture1.ScaleWidth=4*3.14Picture1.ScaleHeight=-2 第6页,本讲稿共38页台州学院计算机系77.2.1当前坐标当前坐标是指在坐标系中的当前位置。在容器的某一特定位置要输出一结果时,就要用到当前坐标。与当前坐标有关的两个属性:CurrentX属性:当前点在容器内的横坐标(数值类型)。CurrentY属性:当前点在容器内的纵坐标(数值类型)。在设置CurrentX、CurrentY属性后,所设值就是下一个输出方法的当前位置。如执行下列程序,则在图片框的中心输出“0”。Private Sub Picture1_Click()Picture1.Scale(-2*3.14,1)-(2*3.14,-1)Picture1.CurrentX=0 Picture1.CurrentY=0 Picture1.Print 0End Sub在使用Cls方法后,CurrentX、CurrentY属性值为0。第7页,本讲稿共38页台州学院计算机系87.2.2使用颜色在使用图形方法绘图时要使用不同的颜色,Visual Basic中使用的颜色用一个长整型数(通常用16进制)表示,如&HFFFF00&。其数值由3部分组成:右边的两位(16进制数,下同)代表红色的值,中间的两位代表绿色的值,左边的两位代表蓝色的值。每个值都可以取0到255之间的数值,因此共有256的立方种不同的颜色取值。一是在设计阶段,可以通过在对象的属性窗口中选择需要设置的颜色属性,用打开的“调色板”对话框进行颜色设置。二是程序运行运行阶段,可以使用颜色函数、使用系统预定义好的颜色常量、直接赋值或使用通用对话框中的“颜色”对话框来选取颜色。第8页,本讲稿共38页台州学院计算机系97.2.2使用颜色1颜色函数Visual Basic提供了两个专门处理颜色的函数:RGB和QBColor。(1)RGB函数格式:RGB(Red,Green,Blue)其中:Red、Green、Blue分别代表红色的值,绿色的值和蓝色的值。取值范围都是0到255。例如:语句Form1.BackColor=RGB(255,255,0),用来将窗体Form1的背景色设置为黄色。RGB函数采用红、绿、蓝三色原理,返回一个Long整数,用来表示一个颜色值。表7-2列出了一些常见的颜色以及这些颜色的三色值。第9页,本讲稿共38页台州学院计算机系107.2.2使用颜色第10页,本讲稿共38页台州学院计算机系117.2.2使用颜色2颜色常量颜色常量是在Visual Basic系统内部预定义好的常量,程序设计时可以不需要声明就可以直接使用。如:Form1.BackColor=vbYellowVisual Basic定义的常用颜色常量如表7-4所示。第11页,本讲稿共38页台州学院计算机系127.2.2使用颜色3直接赋值如果知道具体的颜色值,也可以直接给颜色属性赋值。例如:语句Form1.BackColor=&HFFFF00&,也是将窗体的背景色设置为黄色。7.2.3线宽和线型1线宽DrawWidth属性:用以设置点的大小或线的宽度。以像素为单位,最小值为1。2线型DrawStyle属性:设置所画线的形状。7.2.4填充在绘图中,如果图形是封闭的,就可以进行填充,与填充有关的两个属性。1填充图案FillStyle属性:设置填充的图案样式,可取值07之间。2填充颜色FillColor属性:设置填充的颜色。第12页,本讲稿共38页台州学院计算机系137.3.1画点方法PsetPset方法用于在对象的指定位置用某一颜色画点。格式:容器名.Pset step(x,y),颜色其中:(x,y)为画点的坐标。step表示用当前画点位置的相对值。颜色为画点的颜色值,缺省为用容器对象的前景色(ForeColor)画点。该方法所画点的大小,取决于容器对象的DrawWidth属性值。第13页,本讲稿共38页台州学院计算机系147.3.1画点方法Pset【例7-1】单击窗体,用Pset方法画出-2,2上的正弦曲线和余弦曲线。第14页,本讲稿共38页台州学院计算机系157.3.1画点方法Pset【例7-1】单击窗体,用Pset方法画出-2,2上的正弦曲线和余弦曲线。分析:(1)由于正弦曲线和余弦曲线的取值都在-1和1之间,且要求画出-2,2区间上的,因此可以先用Scale方法定义坐标系,使窗体对象的左上角坐标为-2,1,而右下角的坐标为2,-1,然后再用Pset方法画出该坐标系。(2)单击窗体时,根据x从-2,2的不断取值,用y=sin(x)和y=cos(x)求出y,然后在(x,y)点用Pset画出即可(用循环实现)。第15页,本讲稿共38页台州学院计算机系16依据以上分析,可得程序代码如下:Const pi=3.1416Private Sub Form_click()Dim x As Single For x=-2*pi To 2*pi Step 0.01 Form1.PSet(x,Sin(x),vbBlue Form1.PSet(x,Cos(x),vbRed Next xEnd SubPrivate Sub Form_Load()Dim x As Single,y As Single Form1.Scale(-2*pi,1)-(2*pi,-1)For x=-2*pi To 2*pi Step 0.01 Form1.PSet(x,0)Next x For y=-1 To 1 Step 0.001 Form1.PSet(0,y)Next y Form1.CurrentX=0.1 Form1.CurrentY=-0.01 Print 0End Sub 第16页,本讲稿共38页台州学院计算机系17【例7-2】将图片框Picture1中图像复制到图片框Picture2,要求保持色彩、纵横比例不变。第17页,本讲稿共38页台州学院计算机系18分析:(1)当程序运行时,图片框Picture1中已加载图像,且“复制”按钮能用,“结束”按钮不能用。其运行界面如图7-3所示。图7-3图像复制运行界面(2)当单击“复制”按钮后,Picture1中的图像按要求保持色彩、纵横比例不变后复制到Picture2,同时“复制”按钮不能用,“结束”按钮可用;单击“结束”退出程序。依据以上分析,可得程序代码如下:第18页,本讲稿共38页台州学院计算机系19依据以上分析,可得程序代码如下:Private Sub Command1_Click()Dim i As Integer,j As Integer,x As Integer,y As Integer Dim c As Long For i=1 To Picture1.ScaleWidth For j=1 To Picture1.ScaleHeight c=Picture1.Point(i,j)x=Picture2.ScaleWidth*i/Picture1.ScaleWidth y=Picture2.ScaleHeight*j/Picture1.ScaleHeight Picture2.PSet(x,y),c Next j Next i Command1.Enabled=False Command2.Enabled=TrueEnd SubPrivate Sub Command2_Click()EndEnd Sub 第19页,本讲稿共38页台州学院计算机系207.3.2画线、矩形方法LineLine方法用于在指定对象上画直线和矩形。格式:容器名.Line step(x1,y1)-step(x2,y2),颜色,BF其中:容器可以是窗体、图片框等,缺省为窗体。(x1,y1)为直线的起点坐标或矩形的左上角坐标,(x2,y2)为直线的终点坐标或矩形的右下角坐标。B为画矩形。F为填充的矩形,F必须和B一起使用。第20页,本讲稿共38页台州学院计算机系21如例7-1中的画坐标系是用画点来完成的,现已经有了Line来画线,则可改为简单的如下代码:Private Sub Form_Load()Form1.Scale(-2*pi,1)-(2*pi,-1)Form1.Line(-2*pi,0)-(2*pi,0)Form1.Line(0,1)-(0,-1)Form1.CurrentX=0.1 Form1.CurrentY=-0.01 Print 0End Sub 第21页,本讲稿共38页台州学院计算机系22例如,执行下列程序,在窗体上输出结果如图7-4所示。Private Sub Form_Click()Form1.FillStyle=2 Form1.FillColor=vbBlue Form1.ForeColor=vbGreen Line(100,100)-(1500,1000),vbRed,B 红色外框,蓝色水平填充线 Line(1600,100)-(2500,1000),B 绿色外框,蓝色水平填充线 Line(2800,100)-(3800,1000),vbRed,BF 红色实心矩形End Sub第22页,本讲稿共38页台州学院计算机系237.3.3画圆、圆弧和椭圆方法CircleCircle方法用于在指定对象上画圆、椭圆、圆弧和扇形。格式:容器名.Circle Step(x,y),半径,颜色,起始角,终止角,长短轴比率其中:(x,y)为圆心坐标。关键字Step表示采用当前作图位置的相对值。圆弧和扇形通过参数起始角,终止角控制。当起始角、终止角取值在02时为圆弧,当在起始角、终止角取值前加一负号时,画出扇形,负号表示画圆心到圆弧的径向线。椭圆通过长短轴比率控制,默认值为1,画圆。第23页,本讲稿共38页台州学院计算机系24【例7-3】单击窗体后,画一系列圆心在窗体中心,半径随机,且窗体所能容纳的同心圆。运行后如图7-5所示。第24页,本讲稿共38页台州学院计算机系25分析:(1)根据题意每一个圆的圆心固定在窗体中心,即(x,y)确定;画的圆要在窗体内,则要求判断窗体的高度和宽度的大小,然后,半径是最小者的一半;同时画出的圆颜色是各不相同的,是随机的,则可用到Rnd。画这样一个圆可用一个过程来完成。(2)单击窗体后,要画一系列这样的圆,则可在一个循环中调用过程就可以了。第25页,本讲稿共38页台州学院计算机系26依据以上分析,可得程序代码如下:Public Sub circledemo()Dim r As Integer,g As Integer,b As Integer Dim r1 As Single r=Int(Rnd*255)g=Int(Rnd*255)b=Int(Rnd*255)If Form1.ScaleHeight 6.28 Then alfa=0 End If x=1600*Cos(alfa)y=800*Sin(alfa)Form1.Circle(x,y),80End Sub第38页,本讲稿共38页