第9章 图形操作
9.1 图形操作基础
绘图对象:窗体、图片框(Picture Box)和打印机(Printer) 9.1.1 引例
例9.1(208页):绘制区间(-2π,2π)上的正弦曲线,振幅为1 Private Sub Form_Click() Dim I%, X!
Form1.Scale (-8, 2)-(8, -2)
Line (-7.5, 0)-(7.5, 0): Line (0, 1.9)-(0, -1.9) DrawWidth = 2
CurrentX = 7.5: CurrentY = 0.2: Print \ CurrentX = 0.5: CurrentY = 2: Print \ For I = -7 To 7 Line (I, 0)-(I, 0.1)
CurrentX = I - 0.2: CurrentY = -0.1: Print I Next I
For X = -6.283 To 6.283 Step 0.01 PSet (X, Sin(X)) Next X End Sub
9.1.2 坐标系统
⒈VB坐标系
默认时:原点在左上角,X轴向右,Y轴向下。单位:Twips。1英寸=1440Twips=72磅
绘图对象位置:Left、Top
绘图对象大小:Width、Height
绘图区左上角坐标:ScaleLeft、ScaleTop 绘图区大小:ScaleWidth(向右)、ScaleHeight(向下) ⒉自定义坐标系(Scale方法) 功能:自定义坐标系
格式:[对象.]Scale [(X1,Y1)-(X2,Y2)]
说明:(X1,Y1)和(X2,Y2)分别是绘图对象的左上角和右下角坐标,缺省这四个属性时,将度量单位设置为twips。
例题9.2(210页):自定义窗体的坐标系,内宽为600,内高为400,原点在中心,Y轴向上。并绘制X轴和Y轴。 Private Sub Form_Paint() Cls
Form1.Scale (-300, 200)-(300, -200)
Line (-300, 0)-(300, 0) ' 画X轴
Line (0, 200)-(0, -200) ' 画Y轴
CurrentX = 0: CurrentY = 0: Print 0 ' 标记坐标原点 CurrentX = 260: CurrentY = 50: Print \标记X轴 CurrentX = 10: CurrentY = 180: Print \标记Y轴 End Sub
9.2 绘图属性 9.2.1 当前坐标
⒈ CurrentX、CurrentY:默认的绘图位置。执行CLS方法后,这两个属性值为0。 ⒉ 例题9.3(211页):在窗体上随机显示50个“★”和50个“☆”。 Private Sub Form_Click() Dim I% Randomize Cls
For I = 1 To 100
CurrentX = Form1.ScaleWidth * Rnd CurrentY = Form1.ScaleHeight * Rnd If (I Mod 2) = 0 Then Print \★\ Else
Print \☆\ End If Next I End Sub
9.2.2 线宽与线型
1. DrawStyle属性
DrawStyle属性决定了图形方法绘制线条的类型:
值 含义
0 实线(Solid)(默认值) 1 虚线(Dash) 2 点线(Dot)
3 点划线(Dash-Dot)
4 双点划线(Dash-Dot-Dot) 5 透明(Transparent) 6 内实线(Inside Solid)
说明:若 DrawWidth 属性设置为大于 1, DrawStyle 属性设置值为 1 到 4 会画一条实线
2.DrawWidth属性
决定线条的宽度,取值范围从1到32767,单位是Pixel(像素),缺省值为1,即
一个像素。
例题9.4(212页):绘制7种不同线型的线段。 Private Sub Command1_Click() Cls Dim J%
Print \ Print \线 型 实线 长划线 点线 点划线 点点划线 透明线 内实线\ Print
Print \图 示 \
CurrentX = 600 ' 设置直线的开始位置 CurrentY = ScaleHeight / 3
DrawWidth = 1 ' 宽度为1时DrawStyle属性才能产生线型 For J = 0 To 6
DrawStyle = J ' 定义线的形状 CurrentX = CurrentX + 150 '当前点向右移150 Line -Step(600, 0) ' 向右画长600的线段 Next J End Sub
9.2.3 填充与色彩
⒈FillStyle
FillStyle属性:规定封闭图形的填充类型:
值 含义
0 实心(Solid)
1 透明(Transparent)(默认值) 2 水平线(Horizontal Line) 3 垂直线(Vertical Line)
4 上斜线(Upward Diagonal) 5 下斜线(Downward Diagonal) 6 交叉线(Cross)
7 斜交叉线(Diagonal Cross)
⒉FillColor:规定填充颜色
⒊RGB函数
⑴功能:用红、绿、蓝三基色产生颜色 ⑵格式:RGB(红,绿,蓝) 红,绿,蓝取值范围:0~255
⒋ QBColor函数 ⑴功能:产生颜色
⑵格式:QBColor(颜色码) 颜色码:0~15
例题9.5(214页):颜色渐变,由黑到白 Private Sub Form_Click() Dim J%, X!, Y!, Sp! X = Form1.ScaleWidth Y = Form1.ScaleHeight Sp = 255 / Y For J = 0 To Y
Line (0, J)-(X, J), RGB(J * Sp, J * Sp, J * Sp) ' 画线
'Line (0, j)-(x, j), RGB(j * sp, 0, j * sp) '变2色画线 黑色到亮品红色 'Line (0, j)-(x, j), RGB(j * sp, 0, 0) ' 变1色画线 Next J End Sub
9.3 图形方法
9.3.1 Line方法
1.格式:
[对象.]Line[[Step](x1,y1)]-[Step](x2,y2)[,[颜色][,B[F]]] 2.功能:
在指定的两点之间用指定的颜色画一条直线;或以指定的两点为对角线的端点画一个指定颜色的矩形。 3.参数:
(x1,y1):起点坐标,缺省时即为当前点(由属性对CurrentX和CurrentY决定)。 (x2,y2):终点坐标。
Step:表明后面的参数是相对坐标,此时(x1,y1)是相对当前点(CurrentX,CurrentY)的坐标,而(x2,y2)是相对起始点的坐标;缺省Step时,其后的(x1,y1)或(x2,y2)为绝对坐标。
颜色:本参数确定线或边框的颜色,缺省时,线或边框的颜色为ForeColor。 B:本参数表明画矩形,缺省时表明画线。
F:本参数指定用边框颜色填充矩形内部;缺省时,矩形内部的填充色为FillColor。
2
例题9.6(215页):绘制函数f(x)=x在区间[0.3,1]上的积分区域,填充色为蓝色。 Private Sub Picture1_Click() Dim S#, X#
Picture1.Scale (-0.5, 1)-(1.5, -0.2) ' 定义坐标系 Picture1.Line (-1, 0)-(2, 0)

