第八章绘图(2学时) 、教学内容 本章讨论如何在VB6.0中编写图形应用程序 二、目的要求 通过对本章的学习,使学生理解VB中坐标系的概念;掌握用Line控件、 Shape 控件画直线、矩形、圆(弧)、椭圆的方法;掌握图片框、图象框的常用属性、 常用方法、图片的载入及应用;掌握用Pset方法、Line方法、 Circle方法画点、 矩形、圆(弧)、椭圆的方法 三、教学重点与难点 教学重点:WB中坐标系,绘图方法的使用 教学难点:容器控件的坐标,及用户自定义坐标系。 四、教学方法 课堂教学为主。适当提问,加深学生对概念的理解。 五、教学过程 8.1坐标系统 8.1.1标准系统 坐标系三要素:坐标原点、坐标度量单位、坐标轴的长度与方向。 坐标度量单位由容器对象的 ScaleMode属性决定。缺省时为Twip。每英寸 1440个Twip,20个Twip为一磅 窗体、图片框容器的缺省坐标系统 网区 Height Scalene
第八章 绘 图 (2 学时) 一、教学内容 本章讨论如何在 VB6.0 中编写图形应用程序 二、目的要求 通过对本章的学习,使学生理解VB中坐标系的概念;掌握用 Line控件、Shape 控件画直线、矩形、圆(弧)、椭圆的方法;掌握图片框、图象框的常用属性、 常用方法、图片的载入及应用;掌握用 Pset 方法、Line 方法、Circle 方法画点、 矩形、圆(弧)、椭圆的方法; 三、教学重点与难点 教学重点: VB 中坐标系,绘图方法的使用 教学难点:容器控件的坐标,及用户自定义坐标系。 四、教学方法 课堂教学为主。适当提问,加深学生对概念的理解。 五、教学过程 8.1 坐标系统 8.1.1 标准系统 坐标系三要素:坐标原点、坐标度量单位、坐标轴的长度与方向。 坐标度量单位由容器对象的 ScaleMode 属性决定。缺省时为 Twip。每英寸 1440 个 Twip,20 个 Twip 为一磅
在ⅦB中规定,用 Scalemode属性设置绘图长度的单位而且只能设置8种规 格,用 Scalex或 Scaley语句可对不同的单位进行相互转换。其格式如下: 1, object ]scalex (width[, fromscale][, toscale]) 2、[ object.] scaley( width[, fromscale][,“”]) 1式为不同单位横坐标之间的转换,2式为不同单位纵坐标之间的转换 “ ob ject”是 ScaleMode方法的对象,缺省时指窗体 “ width”时横坐标数值 “ fromscale”是坐标的原始单位 “ toscale”是坐标值转换后的单位 8.1.2自定义坐标系统 在ⅦB种可以通过设置 ScaleMode属性来建立新的坐标系统。建立的新的坐 标系统称为自定义系统。 用户可用 ScaleMode属性设置坐标系统的刻度单位。 ScaleMode属性的取值 及含义见Pg173表8.1所示。 1、定义新的坐标系统格式如下 [对象.] scaleleft=x [对象.] Scaletop=y 其中,X是距离对象左边界的距离,Y是距离对象顶部的距离。如果省略“对 象”,则在窗体内设置坐标原点,有了原点还必须有“刻度”,即水平方向、垂 直方向的设置值,这样才能确定一个点的位置,建立起坐标系统。 【例8.1】 Scaleleft=100 Scaletop=50 以上两条语句,将坐标原点定义在了(100,50) 2、水平方向、垂直方向的刻度属性分别由 Scalewidth, Scaleheight属性来 设置,其格式如下: [对象.] Scalewidth=宽度
在 VB 中规定,用 ScaleMode 属性设置绘图长度的单位而且只能设置 8 种规 格,用 Scalex 或 Scaley 语句可对不同的单位进行相互转换。其格式如下: 1、[object.]scalex(width[,fromscale][,toscale]) 2、[object.]scaley(width[,fromscale][,“”]) 1 式为不同单位横坐标之间的转换,2 式为不同单位纵坐标之间的转换 “object”是 ScaleMode 方法的对象,缺省时指窗体 “width”时横坐标数值 “fromscale”是坐标的原始单位 “toscale”是坐标值转换后的单位 8.1.2 自定义坐标系统 在 VB 种可以通过设置 ScaleMode 属性来建立新的坐标系统。建立的新的坐 标系统称为自定义系统。 用户可用 ScaleMode 属性设置坐标系统的刻度单位。ScaleMode 属性的取值 及含义见 Pg173 表 8.1 所示。 1、定义新的坐标系统格式如下: [对象.]scaleleft=x [对象.]Scaletop=y 其中,X 是距离对象左边界的距离,Y 是距离对象顶部的距离。如果省略“对 象”,则在窗体内设置坐标原点,有了原点还必须有“刻度”,即水平方向、垂 直方向的设置值,这样才能确定一个点的位置,建立起坐标系统。 【例 8.1】 Scaleleft=100 Scaletop=50 以上两条语句,将坐标原点定义在了(100,50) 2、水平方向、垂直方向的刻度属性分别由 Scalewidth,Scaleheight 属性来 设置,其格式如下: [对象.] Scalewidth=宽度
[对象.] Scaleheight=高度 说明: (1)当设置容器对象(例如,窗体或图片框)的 Scalemode属性值>0,将 使容器对象的 Scaleleft和 Scaletop自动设置为0, Scaleheight和 ScaleWidth的度量单位也将发生改变。 (2)用 ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的 方向。 (3)四个属性的值可以是正值也可以是负值 【例8.2】将窗体的坐标系统的原点定义在其中心,X轴的正向向右,Y轴 的正向向上,窗体高与宽分别为200和300单位长度。 通过 Scaletop, Scaleleft, Scalewidth和 Scaleheight属性实现。 Forml. Scaleleft =-150 Forml. ScaleTop 100 Forml ScaleWidth 300 Forml ScaleHeight =-200 网回图 (100,-150) (,0) (-100,150) 3、可以用 Scale语句定义新坐标,其格式如下 [对象.] Scale(X1,Y1)-(X2,Y2) (XL,Y1)为对象左上角在新坐标系中的坐标值。(X2,Y2)为对象右下角在新 坐标系中的坐标值 4、大小设置格式如下: [对象.] Width
[对象.] Scaleheight =高度 说明: (1)当设置容器对象(例如,窗体或图片框)的 ScaleMode 属性值>0,将 使容器对象的 ScaleLeft 和 ScaleTop 自动设置为 0,ScaleHeight 和 ScaleWidth 的度量单位也将发生改变。 (2)用 ScaleMode 属性只能改变刻度单位,不能改变坐标原点及坐标轴的 方向。 (3)四个属性的值可以是正值也可以是负值。 【例 8.2】将窗体的坐标系统的原点定义在其中心,X 轴的正向向右,Y 轴 的正向向上,窗体高与宽分别为 200 和 300 单位长度。 通过 ScaleTop,ScaleLeft,ScaleWidth 和 ScaleHeight 属性实现。 Form1.ScaleLeft = -150 Form1.ScaleTop = 100 Form1.ScaleWidth = 300 Form1.ScaleHeight = -200 3、可以用 Scale 语句定义新坐标,其格式如下: [对象.] Scale(X1,Y1)-(X2,Y2) (X1,Y1) 为对象左上角在新坐标系中的坐标值。(X2,Y2)为对象右下角在新 坐标系中的坐标值。 4、大小设置格式如下: [对象.]Width
[对象.] Height 【例8.3】 command1. width+200 Commandl height+100 以上两条语句将使命令按钮在水平方向上增加宽度200,在垂直方向上增加 高度 8.2形状控件和直线控件 8.2.1形状控件 Shape 使用 Shape控件可在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆 形、圆角矩形或圆角正方形等图形 Shape控件预定义形状是由 Shape属性的取值决定的 口区 ○○□ 0 2 3 5 图8.1 Shape属性取不同值对应的形状 1.填充方式—— Fillstyle属性 下图是形状控件的 Fillstyle属性设置为08时的填充效果 Fi1sty1e属性 □区 日蔑 图8.2 说明 (1) Fillstyle为0是实填充,1为透明方式。填充图案的颜色由 Fillcolor 属性来决定
[对象.]Height 【例 8.3】command1.width+200 Command1.height+100 以上两条语句将使命令按钮在水平方向上增加宽度 200,在垂直方向上增加 高度 100。 8.2 形状控件和直线控件 8.2.1 形状控件 Shape 使用 Shape 控件可在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆 形、圆角矩形或圆角正方形等图形。 Shape 控件预定义形状是由 Shape 属性的取值决定的。 图 8.1 Shape 属性取不同值对应的形状 1.填充方式 ——FillStyle 属性 下图是形状控件的 FillStyle 属性设置为 0~8 时的填充效果 图 8.2 说明: (1)FillStyle 为 0 是实填充,1 为透明方式。填充图案的颜色由 FillColor 属性来决定
(2)对于窗体和图片框对象, Fillstyle属性设置后,并不能看到其填充效果, 而只能在使用 Circle和Line图形方法生成的圆和方框时,在圆和方框中显示 其填充效果。 8.2.2线控件Line 1. Boder Styie属性 该属性用来确定直线的线型,属性值为0-—6,分别表示为以下线型 属性值 透明 0123456 实线 虚线 点线 点划线 双点划线 内实线 2.line常用属性 8.3绘图方法 8.3.1清屏与画点 1、清屏 格式:[对象.]CLS 作用:清除控件中所有的图形。若省略对象,则表示清除窗体 2、画点 格式:[对象.]Pset[Step](x,y)[,颜色] 作用:在指定的位置上用指定的颜色画一个点。 说明 1、X、Y是单精度值。缺省时以TWIP为单位
(2)对于窗体和图片框对象,Fillstyle 属性设置后,并不能看到其填充效果, 而只能在使用 Circle 和 Line 图形方法生成的圆和方框时,在圆和方框中显示 其填充效果。 8.2.2 线控件 Line 1.BoderStyie 属性 该属性用来确定直线的线型,属性值为 0—6,分别表示为以下线型: 2.line 常用属性 8.3 绘图方法 8.3.1 清屏与画点 1、清屏 格式:[对象.]CLS 作用:清除控件中所有的图形。若省略对象,则表示清除窗体 2、画点 格式:[对象.]Pset[Step](x,y)[,颜色] 作用:在指定的位置上用指定的颜色画一个点。 说明: 1、X、Y 是单精度值。缺省时以 TWIP 为单位。 属性值 说 明 0 透明 1 实线 2 虚线 3 点线 4 点划线 5 双点划线 6 内实线
2、颜色取值为1~16777215。缺省时则将当前使用的 FORECOLOR值作为属 性 3、每次画完点后,画笔停留的这个位置通常称为当前作图位置。此位置的 X坐标会自动存在 CURRENTX的属性中,Y坐标会自动放在 CURRENT的属性中 4、一般情况下,X、Y为相对与原点的偏移量。如果选择了STEP,则X、Y 时相对于当前作图位置的偏移量。 8.3.2画直线 1.Line方法 画直线或矩形 [对象.]Line[[Step](x1,y1)]-(x2,y2)[,颜色][,B[F] 其中:对象可以是窗体或图形框。 (x1,y1),(x2,y2)为线段的起终点坐标或矩形的左上角右下坐标。颜色为可 选参数,指定画线的颜色,缺省取对象的前景颜色,即 Forecolor 2.直线的类型 在缺省情况下,直线被画成实线,其宽度为1TWIP,但也可以通过设置 DrawStyle和 DrawWidth属性,改变直线的类型和宽度 用以改变直线类型的格式如下 [对象.] DrawStyle[=线形 其中,线形有7种。 设置值 线型 线(缺 长划线 点线 点划线 点点划线 5 透明线 内实线 3.线宽 直线的宽度实通过 DrawWidth属性来设置的,其格式如下:
2、颜色取值为 1~16777215。缺省时则将当前使用的 FORECOLOR 值作为属 性 3、每次画完点后,画笔停留的这个位置通常称为当前作图位置。此位置的 X 坐标会自动存在 CURRENTX 的属性中,Y 坐标会自动放在 CURRENT 的属性中。 4、一般情况下,X、Y 为相对与原点的偏移量。如果选择了 STEP,则 X、Y 时相对于当前作图位置的偏移量。 8.3.2 画直线 1. Line 方法 画直线或矩形: [对象.] Line [ [Step] (x1,y1)]-(x2,y2)[,颜色][,B[F]] 其中:对象可以是窗体或图形框。 (x1,y1) ,(x2,y2)为线段的起终点坐标或矩形的左上角右下坐标。颜色为可 选参数,指定画线的颜色,缺省取对象的前景颜色,即 ForeColor。 2. 直线的类型 在缺省情况下,直线被画成实线,其宽度为 1TWIP,但也可以通过设置 DrawStyle 和 DrawWidth 属性,改变直线的类型和宽度 用以改变直线类型的格式如下: [对象.] DrawStyle[=线形] 其中,线形有 7 种。 3. 线宽 直线的宽度实通过 DrawWidth 属性来设置的,其格式如下: 设置值 线 型 0 实线(缺省) 1 长划线 2 点线 3 点划线 4 点点划线 5 透明线 6 内实线
[对象.] DrawWidth[=线宽] 线宽取值范围为1~32767,其值以像素为单位,缺省时值为1,即一个像素 宽 8.3.3画矩形 1、画矩形的格式如下 [对象.]Line[[Step](x1,y1)]-(x2,y2)[,颜色],B[F] 说明: (1)画直线与画矩形的语句差不多,只是将画直线的选择项“B”变成了 必选项,而且只能时必选项,否则,画出的矩形图形成为直线 (2)没有选择“F”,则表示画空心矩形,加上“F”,则表示画实心矩形 可以对矩形进行填充。 2、用图形填充的格式如下 [对象.] Fillstyle=图案 8.3.4画圆 画圆的格式如下: [对象.] circle[step](x,y),半径[,颜色] 功能:以X,Y为圆心,用指定的半径、颜色画一个圆 8.3.5画椭圆 画椭圆的格式如下 [对象.] circle[step](x,y),半径[,颜色],[纵横比] 说明: 1、画椭圆的格式比画圆的格式多了3个“,”号及“纵横比”参数选项,多 3个逗号的原因时因为纵横比是最后一个参数,二前面两个参数可以不要,但逗 号必须保留。 2、纵横比指的是纵轴与横轴的点数之比 8.3.6画弧
[对象.] DrawWidth [=线宽] 线宽取值范围为 1~32767,其值以像素为单位,缺省时值为 1,即一个像素 宽。 8.3.3 画矩形 1、画矩形的格式如下: [对象.] Line [ [Step] (x1,y1)]-(x2,y2)[,颜色],B[F] 说明: (1)画直线与画矩形的语句差不多,只是将画直线的选择项“B”变成了 必选项,而且只能时必选项,否则,画出的矩形图形成为直线 (2)没有选择“F”,则表示画空心矩形,加上“F”,则表示画实心矩形。 可以对矩形进行填充。 2、用图形填充的格式如下: [对象.]FillStyle=图案 8.3.4 画圆 画圆的格式如下: [对象.] circle[step](x,y),半径 [,颜色] 功能:以 X,Y 为圆心,用指定的半径、颜色画一个圆 8.3.5 画椭圆 画椭圆的格式如下: [对象.] circle[step](x,y),半径 [,颜色],,,[纵横比] 说明: 1、画椭圆的格式比画圆的格式多了 3 个“,”号及“纵横比”参数选项,多 3 个逗号的原因时因为纵横比是最后一个参数,二前面两个参数可以不要,但逗 号必须保留。 2、纵横比指的是纵轴与横轴的点数之比 8.3.6 画弧
1、画弧的格式 [对象.] circle[step](x,y),半径[,颜色][起始角,终止角][,纵横比] 2、功能: 从起始角开始到终止角画一条弧线。省掉纵横比或纵横比等于1时,则画的 是圆弧,否则画的是椭圆的一部分。 3、说明: (1)WB中是按逆时针方向画弧的,起始角和终止角都以弧度为单位。 (2)起始角可以正也可以负,若为正,则起始角和终止角都要为正;若为 负,则终止角也要为负。为正时仅画一弧线,为负时,则除画弧线外,还画出两 个径线为一个扇形 8.3.7颜色 在 Visual basic系统中,所有的颜色属性都由一个Long整数表示: 在代码中可使用4种方式给颜色赋值 使用RGB函数 使用 QBColor函数,选择16种 Qbasic颜色中的一种, 使用系统提供的颜色常数。 √直接使用Long型颜色值。 1、使用RGB函数 RGB函数可返回一个Long整数,用来表示一个RGB颜色值。其使用格式 如下: RGB (red, green, blue) 说明:red, green,blue(红、绿、蓝)3种颜色,从0~255之间的 个亮度值(0表示亮度最低,而255表示亮度最高)。 例如: Forml BackColor =RGB(255, 0, 0) 设定背景为红色 2、函数 QBColor 格式:颜色值= QBColor(彩色值)
1、画弧的格式: [对象.] circle[step](x,y),半径 [,颜色][起始角,终止角][,纵横比] 2、功能: 从起始角开始到终止角画一条弧线。省掉纵横比或纵横比等于 1 时,则画的 是圆弧,否则画的是椭圆的一部分。 3、说明: (1)VB 中是按逆时针方向画弧的,起始角和终止角都以弧度为单位。 (2)起始角可以正也可以负,若为正,则起始角和终止角都要为正;若为 负,则终止角也要为负。为正时仅画一弧线,为负时,则除画弧线外,还画出两 个径线为一个扇形。 8.3.7 颜色 在 Visual Basic 系统中,所有的颜色属性都由一个 Long 整数表示: 在代码中可使用 4 种方式给颜色赋值: ✓ 使用 RGB 函数。 ✓ 使用 QBColor 函数,选择 16 种 Qbasic 颜色中的一种。 ✓ 使用系统提供的颜色常数。 ✓ 直接使用 Long 型颜色值。 1、使用 RGB 函数 RGB 函数可返回一个 Long 整数,用来表示一个 RGB 颜色值。其使用格式 如下: RGB(red, green, blue) 说明: red, green, blue(红、绿、蓝)3 种颜色,从 0~255 之间的一 个亮度值(0 表示亮度最低,而 255 表示亮度最高)。 例如: Form1.BackColor = RGB(255, 0, 0) '设定背景为红色 2、函数 QBColor 格式:颜色值=QBColor(彩色值)
彩色值为0~15的整数,分别代表16种不同的颜色 、颜色函数 在VB中有一文本文件 CONSTANT.TXT,该文件中定义的常用颜色参数如下 Global Const black=&ho& Global Const black=&h0& Global Const green=&hffoO& Global Const yellow=&hffff& Global Const blue=&hff0000& Global Const magenta=&hffooff& Global Const white=&hffffff& 用时,只要把上述常数键入全局模块,以后在需要颜色参数的地方,调 用符号常量即可。 4、直接使用颜色值 VB中每种颜色都对应一值,值的范围为0~255,若值用16进制表示 格式如下: &HBBGGRR 说明:H表示16进制的整型数 BB为蓝色的参数 GG为绿色的参数 RR为红色的参数 六、作业P188习题8.1-8.7
彩色值为 0~15 的整数,分别代表 16 种不同的颜色 3、颜色函数 在 VB 中有一文本文件 CONSTANT.TXT,该文件中定义的常用颜色参数如下: Global Const Black=&h0& Global Const Black=&h0& Global Const green=&hff00& Global Const yellow=&hffff& Global Const blue=&hff0000& Global Const magenta=&hffooff& Global Const white=&hffffff& 用时,只要把上述常数键入全局模块,以后在需要颜色参数的地方,调 用符号常量即可。 4、直接使用颜色值 VB 中每种颜色都对应一值,值的范围为 0~255,若值用 16 进制表示, 格式如下: &HBBGGRR 说明:&H 表示 16 进制的整型数 BB 为蓝色的参数 GG 为绿色的参数 RR 为红色的参数 六、作业 P188 习题 8.1-8.7