VB第十章 图形操作

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象.Zorder [position] Position:指出一个对象相对于另一个对象的位置的数值。 0:表示该对象被定位于Z序列的前面;
1:表示该对象被定位于Z序列的后面。
例:作出下列效果的界面
10.2 绘图属性(窗体、pictureBox和打印机对象所具有的属性) 一、当前坐标属性(当前坐标会随着输出内容而改变):
Form1.left
0
Form1.top
x
(scaleleft,scaletop) Form1.height Form1.scaleheight
y
3)属性ScaleMode决定对象坐标的度量单位,共有11种 (常用8种,默认的Twip),见下表:
常数 设置 描述 值
vbUser
vbTwips vbPoints vbPixels
Private Sub Form_Activate() Dim i As Integer Shape1(0).Shape = 0 Shape1(0).FillStyle = 2 For i = 1 To 5 Load Shape1(i) Shape1(i).Left = Shape1(i - 1).Left + 750 Shape1(i).Shape = i
For i = 1 To 2
For j = 1 To 2 k = (i - 1) * 2 + j Load Shape1(k) Shape1(k).Visible = True Shape1(k).Top = mtop: Shape1(k).Left = mleft
mleft = mleft + Shape1(0).Width
Private Sub Form_Click()
Dim j As Integer form1.CurrentX = 0 form1.CurrentY = ScaleHeight / 2 form1.DrawWidth = 1 For j = 0 To 6 form1.DrawStyle = j form1.Line -Step(ScaleWidth / 15, 0) Next j For j = 1 To 6
0
1 2 3
ScaleHeight等属性值中一个的或多个设置为自定义
缇(缺省) 磅 像素
vbChracters vbInches
vbMillimeters vbCentimeters
4 5
6 7
字符:水平每个单位=120缇,垂直每个单位=240缇 英寸
毫米 厘米
改变容器的ScaleMode属性值,不会改变容器的大小或 它在屏幕上的位置,只是改变了容器的度量单位,VB会重新 定义对象坐标度量属性ScaleHeight和ScaleWidth。 无论采用哪一种坐标单位,默认的坐标原点都为对象的左 上角,横向向右为X轴的正方向,纵向向下为Y轴的正向。
Private Sub Form_Click() Dim j As Integer, x As Single, y As Single y = Form1.ScaleHeight: x = Form1.ScaleWidth sp = 255 / y For j = 0 To y form1.Line (0, j)-(x, j), RGB(j * sp, j * sp, j * sp) For i = 1 To 10000 Next i Next j End Sub
Drawstyle属性给出了在这些对象上所画线条的线型,意义见下表:
常数 vbSolid vbDash 设置值 0 1 描述 实线(默认) 虚线
vbDot
vbDashDot vbDashDotDot
2
3 4
点线
点划线 双点划线
vbInsisible
vbInsideSolid
5
6
无线
内实线
例:通过改变DrawStyle属性在窗体上画出不同的线型。通过改变DrawWidth属性 画一系列宽度递增的直线。代码如下:
[对象名.] Scale [ ( xLeft , yTop )-(xRight, yBottom) ] 其中: (1)Scale:方法名
(2) ( xLeft , yTop )表示对象的左上角的坐标值, (xRight, yBottom)为对 象的右下角的坐标值。
只要给定了这两个值,VB系统会自动计算出ScaleTop、ScaleLeft、 ScaseHeight、和ScaleWidth的值:
form1.DrawWidth = j * 3
form1.Line -Step(ScaleWidth / 15, 0) Next j
End Sub
三、填充与色彩属性:
容器中用方法画出的封闭图形的填充方式和填充颜色由FillStyle和 FillColor这两个属性决定。FillColor指定填充图案的颜色,默认与Forecolor 相同。FillStyle指定填充的图案,共有8种,见P232图1.10.6 区别: FillColor 和ForeColor
1)VB默认采用对象的ForeColor绘图,即绘制出的线条颜色; 2) FillColor则是封闭图形的填充颜色。
两种颜色的设置可以使用属性窗口实现,也可以通过以下颜色函数指定色 彩。
1、RGB函数 格式:RGB(红,绿,蓝) 从理论上讲,用三基色混合可产生256*256*256种颜色,但实际使用时受 到硬件的限制。 2、QBColor函数
格式:QBColor(颜色码)
其中:颜色码的取值见下表:
颜色码 0 1 2
颜色 黑 蓝 绿
颜色码 6 7 8
颜色 黄 白 灰
颜色码 12 13 14
颜色 亮红 亮晶红 亮黄
3
4 5

红 晶红
9
10 11
亮蓝
亮绿 青亮
15
亮白
例:演示颜色的渐变填充过程
分析:要产生渐变效果,可多次使用RGB函数,每次对RGB( )函数的参 数稍做变化。现以线段填充矩形区,通过改变直线的起终点坐标和RGB函 数中的三基色的成分产生渐变效果。代码如下:
例:在Form_click事件中通过Scale方法定义Form1新的坐标系。
Private Sub Form_click() Form1.Cls Form1.Scale (-200, 250)-(300, -150) Form1.Line (-200, 0)-(300, 0) Form1.Line (0, 250)-(0, -150) CurrentX = 0: CurrentY = 0: Print 0 CurrentX = 280: CurrentY = 20: Print "X" CurrentX = CurrentY = 240: Print "Y" Form1.Line (0, 0)-(200, 180), QBColor(12) Form1.Line (0, 0)-(-200, 180), QBColor(14)
窗体、pictureBox或打印机(Printer)的CurrentX和CurrentY属性给出了这 些对象在绘图时的当前坐标。当坐标系确定后,常用这两个属性来指定一个坐 标点,再在这个点上输出内容。 例:用Print方法在窗体上随机输出1000个五角星。代码如下:
Private Sub Form_Click( ) For i = 1 To 1000
form1.CurrentX = Form1.ScaleWidth * Rnd
form1.CurrentY = Form1.ScaleHeight * Rnd form1.Print "★"
For j = 1 To 1000000
Next j Next i End Sub
二、线宽和线型属性:
窗体、图片框或打印机的DrawWidth属性给出这些对象上所画出(用 方法画出)线条的宽度或点的大小(以像素为单位,最小及默认值为1)。
Shape可以用来画矩形、正方形、圆、椭圆、圆角矩形和 圆角正方形。当Shape控件放到窗体时显示为一矩形,通过 Shape属性可确定所需要的几何形状。FillStyle属性为形状填 充图案。FillColor属性为形状着色。
例:用Shape控件的Shape属性显示Shape控件的6种形状,并 填充不同的图案。如图所示。
如:当新建一个窗体时,坐标原点在窗体的左上角, Height=3600,Width=4800,ScaleLeft=0,ScaleTop=0,
而:ScaleHeight=3195,ScaleWidth=4680
二、自定义坐标系统(对容器对象而言):
容器对象的默认坐标系统对绘制控件不会有影响,但对作图就有较大 的影响。因为习惯上绘图坐标原点是在窗体的中心。所以常需要对坐标原 点进行重新设置。设置方法为:
Private Sub Form_Load() Dim mtop As Integer, mleft As Integer Dim i As Integer, j As Integer, k As Integer mtop = Shape1(0).Top mleft = Shape1(0).Left + Shape1(0).Width
•B:表示画矩形;
•F:表示用画矩形的颜色来填充矩形,F必须和B一起使用,如果只有 B没有F,则矩形的填充由FillColor和FillStyle决定。
注意:用Line方法在窗体上绘制图形时,如果将绘制过程放在Form_load事 件内,必须将窗体的AutoRedraw属性设置为True,否则所绘制的图形将无 法在窗体上显示。
Next j
mtop = mtop + Shape1(0).Width / 2 mleft = Shape1(0).Left + Shape1(0).Width / 2 Next i End Sub
10.4
一、Line方法
图形方法(容器对象所具有的)
该方法用于画直线或矩形,格式为: [对象.] Line 其中: •对象:指Line在何处产生结果,常为窗体或图形框。 •(x1,y1):为线段的起点坐标或矩形的左上角坐标; •(x2,y2):为线段的终点坐标或矩形的右上角坐标; •Step:表示采用当前作图位置的相对值; [ [Step](x1,y1)] – [step](x2,y2) [,颜色] [,B[F] ]
第10章 设计图形应用程序
10.1 图形操作基础
一、坐标系统(对窗体、图片框等容器对象而言): 在VB中,每个对象都定位于存放它的容器之中,对象 定位都要使用容器的坐标系统,对象的Left、Top属性指示 了该对象在容器内的位置。 每个容器都有一个坐标系统。构成一个坐标系统需要三 个要素:坐标原点、坐标度量单位、坐标轴的方向。 1)容器的属性ScaleTop、ScaleLeft用于确定容器左边 和顶端的坐标,它们指定了该容器左上角的坐标。所有容器 的这两个属性的默认值都为0,即容器的左上角为坐标原点。 2)属性ScaleHeight、ScaleWidth确定容器对象内部垂 直方向和水平方向的长度。
Shape1(i).FillStyle = i + 2
Shape1(i).Visible = True Next i End Sub
例:用控件数组产生如图所示的表示奥运会的五环旗(自学)。
设置:在窗体上放置一个Shape控件,设置其Index属性为0, BorderWidth为3。使用双重循环按行和列的顺序产生2*2个 Shape控件数组,排列成五环。 运行结果如下:
10.3 图形控件
图形控件共有4个:PictureBox、Image、Line、Shape, 前两个已经讲过,现介绍后两个。
一、Line(划线工具)
Line控件可以用来划线。设计时其最重要的属性是 BorderWidth和BorderStyle属性。 BorderWidth确定线的宽度, BorderStyle确定线的形状。运行时Line控件最重要的属性是 x1、y1和x2、y2属性,它们决定了线的两个端点的位置。 二、Shape(形状)
层次 最上层 中间层 最下层
对象类型 除标签、线条、形状以外的对象 标签、线条、形状 由图形方法绘制的图形
注意:位于上层的对象会遮盖下层相同位置上的任何对象;位于同一层内 的对象在发生层叠时,位于前面的对象回遮盖位于后面的对象。
同一层内对象排列顺序称为Z序列。在设计时可以通过格 式菜单中顺序命令调整Z序列,在运行时可以使用以下语句进 行调整:
此时:
ScaleTop=yTop ScaleLeft=xLeft
ScaleWidth=xRight-xLeft ScaleHeight=yBottom-yTop
见P229例10.1
三、图形层(所有对象的叠放):
从视觉上讲,一个物体离我们有远、中、近之分。在图形构造上就 是图层。一般分为最上层、中间层和最下层。 在VB中,哪些对象放在哪一层,有以下规律
相关文档
最新文档