图形操作.docx

上传人:b****5 文档编号:2899359 上传时间:2022-11-16 格式:DOCX 页数:21 大小:31.45KB
下载 相关 举报
图形操作.docx_第1页
第1页 / 共21页
图形操作.docx_第2页
第2页 / 共21页
图形操作.docx_第3页
第3页 / 共21页
图形操作.docx_第4页
第4页 / 共21页
图形操作.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

图形操作.docx

《图形操作.docx》由会员分享,可在线阅读,更多相关《图形操作.docx(21页珍藏版)》请在冰豆网上搜索。

图形操作.docx

图形操作

第12章图形操作

本章要点

●图形操作基础:

VB中的坐标系统;使用颜色。

●使用图形控件绘图:

Line控件和Shape控件。

●使用绘图方法画图:

Line、PSet和Circle方法。

使用图形可以美化应用程序界面,实现特殊的动态图像效果。

在计算机应用中,图形操作是令人感兴趣的部分,同时也是较复杂、较难掌握的内容。

VB提供了丰富的图形操作工具以及功能强大的绘图方法,利用它们可以设计出美观实用的图形应用程序。

12.1图形操作基础

在VB中,图形操作主要是在窗体和图片框(PictureBox)对象上进行。

在讨论具体的图形操作之前,首先需要了解一些与绘图有关的基础知识,包括对象的坐标系统、颜色的使用以及相关的常用属性和方法。

12.1.1坐标系统

VB中的各种可视对象都定位于存放它的容器内。

例如,在窗体内绘制控件或图形,窗体就是控件或图形的容器。

窗体处于屏幕(Screen对象)内,屏幕则是窗体的容器。

如果在图片框内放置控件或绘制图形,该图片框就是控件或图形的容器。

对象在容器内的位置由该对象的Left和Top属性确定。

移动容器时,容器内的对象也随着一起移动,而且与容器的相对位置保持不变。

对象可以在容器内移动,如果将对象的一部分(或全部)移出了容器的边界,则移出部分(或全部)不予显示。

对象定位使用的是容器的坐标系,每个容器都有一个坐标系。

坐标系由三要素构成:

坐标原点,坐标度量单位(刻度),坐标轴的长度与方向。

1.坐标原点与坐标轴方向

在默认的VB坐标系统中,原点(0,0)位于容器内部的左上角,X轴的正向水平向右,Y轴的正向垂直向下。

对于窗体和图片框来说,这里所说的“容器内部”是指可以容纳其他控件并且可用于绘图的区域,该区域称为绘图区或工作区。

绘图区不包括边框,窗体的绘图区还要将标题栏和菜单栏(若有)除外。

因此,窗体中控件的Left属性是指控件左上角到窗体绘图区左边的距离,Top属性是控件左上角到窗体绘图区顶边的距离。

2.坐标刻度

坐标刻度即容器内坐标的度量单位。

VB中默认的刻度为缇(1厘米约为567缇,1英寸约为1440缇)。

刻度由窗体、图片框等容器对象的ScaleMode属性决定,该属性的设置值如195页表12.1所示,其中大于0的设置值称为标准刻度。

改变容器对象的ScaleMode属性值,不会改变容器的大小和它在屏幕上的位置,也不影响坐标原点。

设置该属性后,只是改变容器对象的刻度。

容器的刻度改变后,位于该容器内部的控件也不会改变大小和位置,但是控件大小和位置的计量单位会随容器刻度改变。

例如,在默认情况下,窗体的刻度为缇(ScaleMode=1),在窗体上放置一个命令按钮,设其Height=720,Width=1440,即该按钮的高度为720缇(0.5英寸),宽度为1440缇(1英寸)。

此时若将窗体的刻度改为英寸(ScaleMode=5),VB会自动将命令按钮的Height和Width属性值分别设为0.5和1,而按钮的实际大小并未改变。

改变ScaleMode属性后,VB将重新定义容器对象的坐标度量属性ScaleHeight和ScaleWidth,以便使它们与新刻度保持一致。

这两个属性分别为容器绘图区的高度和宽度。

使用ScaleX和ScaleY方法可以进行不同刻度的换算,语法格式如下:

容器对象.ScaleX(宽度,源刻度,目标刻度)

容器对象.ScaleY(高度,源刻度,目标刻度)

例如,以下代码将100毫米的宽度换算为以缇为单位的宽度数输出:

PrintForm1.ScaleX(100,vbMillimeters,vbTwips)

输出结果为:

5669.286。

如果“源刻度”或“目标刻度”为vbCharacters(字符单位),则ScaleX和ScaleY方法的返回值不同;其他刻度之间的换算,两种方法的返回值相同。

例如:

PrintForm1.ScaleX(1,vbCharacters,vbTwips)'一个字符单位的宽度为120缇

输出结果为:

120。

PrintForm1.ScaleY(1,vbCharacters,vbTwips)'一个字符单位的高度为240缇

输出结果为:

240。

3.自定义坐标系

在实际应用中,有时可能需要改变坐标系的原点、坐标轴的方向或刻度,这时就要建立自己的坐标系。

创建自定义坐标系可以使用容器对象的属性,亦可使用它的方法。

(1)使用Scale属性组

除ScaleMode属性外,VB还为容器对象提供了四个以Scale为前缀的属性,即ScaleLeft、ScaleTop、ScaleWidth和ScaleHeight属性,合称为Scale属性组。

用这些属性可以创建自定义坐标系。

ScaleLeft和ScaleTop属性用于控制绘图区左上角的坐标,默认值均为0,此时坐标原点(0,0)位于绘图区左上角。

如果要移动原点的位置,比如像数学中的笛卡尔(直角)坐标系那样,将原点设在窗体或图片框的中心,就需要改变ScaleLeft和ScaleTop属性值。

ScaleWidth和ScaleHeight属性可用于创建一个自定义的坐标比例尺。

例如,执行语句ScaleHeight=100将改变窗体绘图区高度的度量单位,取代当前的标准刻度(如缇、像素、厘米等),即高度将变为100个自定义单位。

当窗体改变大小时,自定义单位的总数不会改变,仍为100个单位(即始终用0~100的刻度来定义坐标位置),但每个单位所代表的实际距离会发生变化。

比如,无论窗体尺寸怎样变化,50个单位的实际距离始终是绘图区高度的一半。

此外,如果将这两个属性的值设置为负数,则改变坐标轴的方向。

使用上述四个属性,可以建立一个完整的带有正负坐标的坐标系统。

例如,以下程序段可以将窗体绘图区定义为数学中的笛卡尔坐标系(见196页图12.1),即原点(0,0)位于绘图区中心,X轴的正向水平向右,Y轴的正向垂直向上:

ScaleWidth=100'定义宽、高各为100单位

ScaleHeight=-100'负值改变坐标轴方向

ScaleLeft=-50'将原点定位于绘图区中心

ScaleTop=50

上述语句只是改变了坐标系统,要实现图12.1所示的界面效果,需要使用后面介绍的绘图方法。

改变上述四个属性后,VB自动将ScaleMode属性设为vbUser(0)。

也可以为该属性显式赋值:

ScaleMode=vbUser

(2)使用Scale方法

建立自定义坐标系更简单的做法是调用容器对象的Scale方法,语法格式为:

[容器对象.]Scale(x1,y1)-(x2,y2)

说明:

容器对象是指窗体或图片框,省略时默认为当前窗体。

(x1,y1)为左上角的坐标,(x2,y2)为右下角的坐标。

注意两对括号之间的“-”不代表相减。

调用Scale方法后,ScaleLeft和ScaleTop属性分别被设为x1和y1的值。

ScaleWidth属性被设为x2与x1之差,ScaleHeight属性被设为y2与y1之差。

若省略(x1,y1)-(x2,y2),则恢复默认坐标系统,即以容器对象的左上角为坐标原点。

例如,以下语句可在窗体上建立如图12.1所示的笛卡尔坐标系:

Me.Scale(-50,50)-(50,-50)

若将容器对象改为图片框,则可在图片框中建立同样的坐标系。

建立自定义坐标系后,容器内部控件对象的Left、Top属性决定了该控件左上角在容器内的坐标位置,控件的Width和Height属性决定了该控件的大小,这些属性的计量单位总是与容器的刻度单位相同。

12.1.2使用颜色

颜色的使用是绘图操作中的重要环节。

在程序运行时,有四种方式可以指定颜色值:

使用QBColor函数;使用RGB函数;使用内部常数;直接输入颜色值。

1.使用QBColor函数

QBColor函数能够选择早期版本的Basic所规定的16种颜色之一。

语法格式为:

QBColor(颜色值)

颜色值的取值范围为0~15,如197页表12.2所示。

例如:

Picture1.BackColor=QBColor(14)'将图片框的背景色设为黄色

2.使用RGB函数

使用RGB函数能指定任何颜色。

语法格式为:

RGB(红,绿,蓝)

使用该函数时要对三原色(红、绿、蓝)分别赋予从0到255之间的数值,0表示亮度最低,255表示亮度最高。

每一种可见的颜色都是由三原色组合产生。

例如:

Me.ForeColor=RGB(0,0,255)'设窗体前景色为蓝色

Me.BackColor=RGB(0,128,0)'设窗体背景色为绿色,中等亮度

3.使用颜色常数

VB提供了8种颜色常数,已在第2章中介绍过。

例如:

BackColor=vbYellow,这里的vbYellow即为内部常数黄色。

4.使用颜色值

RGB颜色的有效范围为0到16,777,215(&HFFFFFF&)。

每种颜色的设置值(属性或参数)都是一个四字节的整数。

对于这个范围内的数,其高字节都是0,而低三个字节,即从最低字节向左到第三个字节,分别定义了红、绿、蓝三种颜色的值。

红、绿、蓝三种成分都是用0到255(&HFF)之间的数表示。

因此,可以用十六进制数按照下述语法来指定颜色:

&HBBGGRR&

BB指定蓝色值,GG指定绿色值,RR指定红色值。

每个数段都是两位十六进制数,即从00到FF。

中间值是&H80。

因此,下面的数值是这三种颜色的中间值,即灰色:

&H808080&

实际上,使用QBColor函数、RGB函数和内部常数所返回的都是RGB颜色值。

例如,QBColor(9)、RGB(0,0,255)和vbBlue的值均为&HFF0000&,即蓝色。

12.2用图形控件绘图

除图片框和图像框外,VB还提供了两种图形控件:

Line(直线)控件

和Shape(形状)控件

它们可用来在窗体、图片框等容器对象表面绘制简单图形。

这两种控件不支持任何事件,只用于表面装饰。

12.2.1用Line控件画线

Line控件可以用来画线。

Line控件主要属性是BorderWidth、BorderStyle和BorderColor属性,以及x1、y1和x2、y2属性。

BorderWidth确定线的宽度,BorderStyle确定线的形状,BorderColor确定线的颜色。

x1、y1和x2、y2属性控制线的两个端点的位置。

198页图12.2展示了BorderWidth和BorderStyle属性不同设置值的效果,以及用Line控件画出的坐标轴。

图中所有控件均在设计时添加并完成属性设置。

也可用控件数组在运行时添加控件。

12.2.2用Shape控件画几何图形

Shape控件可以用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形。

将Shape控件添加到窗体时默认为矩形,通过Shape属性可确定所需要的几何形状。

FillStyle属性为形状控件指定填充的图案,FillColor属性用于为形状控件着色。

Shape控件也具有BorderWidth、BorderStyle和BorderColor属性,分别为边线的宽度、样式和颜色。

【例12.1】用Shape控件数组通过Shape属性显示该控件的6种形状,并通过FillStyle属性为其填充不同的图案,如199页图12.3和图12.4所示。

在图12.4中,上面的数字为Shape属性设置值,下面的数字为FillStyle属性的设置值。

按199页图12.3所示在窗体上添加一个Shape控件,设其Index属性为0。

设窗体的背景色为白色。

为窗体的Activate事件过程编写以下代码:

PrivateSubForm_Activate()

DimiAsInteger,jAsIn

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

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1