【VB开源代码栏目提醒】:网学会员--在 VB开源代码编辑为广大网友搜集整理了:vb图形设计应用程序 - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
第十五章
设计图形应用
程序本章要求: 1. 理解
VB中坐标系的概念(重要); 2. 掌握用Line控件、Shape控件画直线、矩形、圆 (弧)、椭圆的方法; 3. 掌握用Pset方法、Line方法、Circle方法画点、矩 形、圆(弧)、椭圆的方法;15-1 坐标系统15-1-1 缺省坐标系统 每个容器都有一个坐标系,构成一个坐标系,需要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。
坐标度量单位由容器对象的ScaleMode属性决定。
缺省时为Twip。
每英寸1440个Twip,20个Twip为一磅。
原点15-1-2 用户自定义坐标系统1、设置坐标系统的刻度单位用 户 可 用 ScaleMode 属 性 设 置 坐 标 系 统 的 刻 度 单 位 。
ScaleMode属性的取值及含义见表。
说明: (1)当设置容器对象(例如,窗体或图片框)的ScaleMode 属 性 值 0 , 将 使 容 器 对 象 的 ScaleLeft 和ScaleTop 自动设置为0,ScaleHeight 和 ScaleWidth 的度量单位也将发生改变。
(2)用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的方向。
2. 使用Scale属性建立自己的坐标系(1) 重新定义坐标原点 属性ScaleTop,ScaleLeft的值用于控制对象左上角坐标,所有对象的ScaleTop,ScaleLeft属性的缺省值为0,坐标原点在对象的左上角。
N,表示将X轴向Y轴的负方向平移N个单位 ScaleTop -N,表示X轴向Y轴的正方向平移N个单位同样,ScaleLeft的设置值可向左或向右平移坐标系的Y轴。
(2) 重定义坐标轴方向和度量单位 属性ScaleWidth,ScaleHeight的值可确定对象坐标系X轴与Y轴的正向及最大坐标值。
缺省时其值均大于0,此时,X轴的正向向右,Y轴的正向向下。
对象右下角坐标值为ScaleLeftScaleWidth,ScaleTopScaleHeight。
如 果 ScaleWidth的 值 小 于 0, 则 X 轴 的 正 向 向 左 , 如 果ScaleHeight的值小于0,则Y轴的正向向上。
0 X Y 0 X ScaleWidthn ScaleHeightm ScaleWidthn Scaleletf0 ScaleHeight-m ScaleTop0 Scaleletf0 ScaleTop0 Y nm n-m 将窗体的坐标系统的原点定义在其中心,X轴的正向向右,Y轴的正向向上,窗体高与宽分别为200和300单位长度。
通过ScaleTop,ScaleLeft,ScaleWidth和ScaleHeight属性实现。
-150100Form1.ScaleLeft -150Form1.ScaleTop 100Form1.ScaleWidth 300Form1.ScaleHeight -200 150-1003 利用Scale方法设置坐标系 对象.ScalexLeftyTop-xRightyBottom 对象的左上角坐标值 对象的右下角坐标值xLeftyTop xRightyBotton 可在程序中使用Scale方法改变坐标
系统。
当Scale方法不带参数时,取消用户定义的坐标系,采用缺省坐标系。
15-1-3 绘图属性与事件一、 当前坐标 CurrentX,CurrentY属性给出窗体或图形框或打印机在绘图时的当前坐标。
这两个属性在设计阶段不能使用。
使用格式:object.CurrentX xobject.CurrentY y注意: 当使用某些图形方法后,对象的CurrentX和CurrentY的设置值将发生变化,其具体的改变见表11.3。
例 以窗体中心为原心,随机向各个方向绘200条直线。
二、 线宽与线型 1.设置线宽——DrawWidth 属性 窗体、图形框或打印机的DrawWidth属性给出这些对象上所画线的宽度或点的大小。
使用格式:Object.DrawWidth Size其中: Object: 为对象表达式,可以是窗体、图片框和打印机对象。
Size: 为数值表达式,其范围从 1 到 32767。
该值以像素为单位表示线宽。
缺省值为 1,即一个像素宽。
2. 设置线型——DrawStyle 属性 窗体或图形框或打印机的DrawStyle属性给出这些对象上所画线的形状。
其设置值及含意见Pg.284表11.4。
设置值 线 型 图 示 0 实线缺省 1 长划线 2 点线 3 点划线 4 点点划线 5 透明线 6 内实线例11.3 用不同的DrawStyle 属性值,在窗体分别画一条直线。
三、 图形的填充 1.填充方式 ——FillStyle属性 下图是形状控件的FillStyle属性设置为08时的填充效果说明:(1)FillStyle为0是实填充,1为透明方式。
填充图案的颜色由FillColor属性来决定。
(2)对于窗体和图片框对象,FillStyle 属性设置后,并不能看到其填充效果,而只能在使用Circle 和 Line 图形方法生成的圆和方框时,在圆和方框中显示其填充效果。
2.FillColor属性 用于设置填充形状的颜色,缺省情况下,FillColor 设置为 0(黑色)。
四、 AutoRedraw属性 设置和返回对象或控件是否能自动重绘。
若值为 True,使Form对象或PictureBox控件的自动重绘有效。
对象不接受绘制事件(Paint事件)。
重绘:当改变对象大小或隐藏在另一个对象后又重新显 示的情况下,重新将以前使用Print方法输出的文本信息 和绘图方法绘制的图形显示出来。
五、 图形颜色 在Visual Basic系统中,所有的颜色属性都由一个Long整数表示: 在
代码中可使用4种方式给颜色赋值: 使用RGB函数。
使用QBColor函数,选择16种Qbasic颜色中 的一种。
使用系统提供的颜色常数。
直接使用Long型颜色值。
1、使用RGB函数 RGB函数可返回一个Long整数,用来表示一个RGB颜色值。
其使用格式如下:RGBred green blue 说明: red green blue3种颜色,从0~255之间的一个亮度值0表示亮度最低,而255表示亮度最高。
例:Form1.BackColor RGB255 0 0 设定背景红色2、使用QBColor函数 QBColor函数可返回一个Long值,用来表示所对应颜色值的RGB颜色码。
其使用格式如下:QBColorcolor 说明: color参数是一个界于0~15的整型数,分别代表16种颜色,如表11.6所示。
3、使用系统定义的颜色常数 在
VB系统中已经预先定义了常用颜色的颜色常数,如常数vbRed就代表红色,vbGreen代表绿色等等。
可“对象浏览器”中
查询常数
列表,表11.7是系统预定义的最
常用的颜色常数。
例如,要将窗体的背景色设为红色。
则可使用如下语句:Form1.BackColor vbRed4、直接使用颜色设置值 用十六进制数指定颜色的格式为: HBBGGRR其中,BB指定蓝颜色的值,GG指定绿颜色的值,RR指定红色的值。
每个数段都是两位十六进制数,即从00~FF。
例如, Form1.BackColor HFF0000它相当于:Form1.BackColor RGB0 0 25515-2 绘图方法 15-2-1 Pset方法 Pset方法用于画点,其语法格式如下: 对象.Pset Step X,Y ,颜色 例 在窗体上随机画一条不同亮度的红色彩带,然后再清除,在其它位置又画一条不同亮度的红色彩带,形成彩带在垂直方向浮动的动态效果。
15-2-2 Line方法 画直线或矩形: 对象. Line Step x1y1-x2y2颜色BF其中:对象可以是窗体或图形框。
x1y1 ,x2y2为线段的起终点坐标或矩形的左上角右下坐标。
颜色为可选参数,指定画线的颜色,缺省取对象的前景颜色,即ForeColor B表示画矩形,F表示用画矩形的颜色来填充矩形。
关键字Step表示采用当前作图位置的相对值,即从当前坐标移动相应的步长后所得的点为画线起点。
注意:各参数可根据实际要求进行取舍,但如 果舍去的是中间参数,参数的位置分隔符不能舍 去。
例如:画一条从250300到400500点的直线Line 250300-400500从当前位置(由CurrentX,CurrentY决定)画到400500Line - 400500出发点是150250,终点是向X轴正向走150,向Y轴正向走50的点Line 150250 - Step 15050等同于:Line 150250 - 300300画一个左上角在2040,右下角在150200的矩形,注意在color参数省略时,逗号并不省略。
Line 2040 - 150200 B用红色从2040到70110画一个实心的矩形。
Line 2040 - Step 5070 RGB25500 BF 例 用Line方法在窗体上画若干个同心,并填充不同颜色 的矩形。