
第六章 图形图像和多媒体应用程序设计方法 一、要点解析 本章在分析“指针式时钟”和“①播放器”程序设计实例的基础上,主要介绍图形操 作的基础知试和B中开发多媒体应用程序的两种主要方式。主要包括坐标系统、简单几何 绘图、相关控件的使用方法等。通过本章学习,你应该能够达到如下学习目标: 1,掌握图形图像的基本处理方法。 2,理解VB坐标系统的原理。 3,掌握图形控件和多翼体控件的使用和与绘图有关的常用属性和方法, 4.理解“指针式时钟”程序的设计方法,能够读幅并完养这类程序的部分语句: 5.了解“CD播放器”程序设计的方法,能够读懂并完善这类程序的部分语句, 6.了解播放多媒体信息的基本方法 一、主要知讯点 1.VB坐标系统 在VB中,每个对象都定位在存政它的容器内,对象的定位都要使用容器的坐标系。例 如,窗体处于屏幕内,屏幕就是官体的容器(如教材图丘5所示,而在窗体内绘制对象时, 窗体就是容器(如教材图8所示)。如果在图片框内绘制图形,则该图片框就是容器(如 教材图瓜.7所示),容器内的对象只能在容器内变动,当移动容器时,容器内的对象也随着 容器一起移动。而且与容器的相对位置保转不变。 《1)窗体的缺省坐标系统 构成一个坐标系需要三个要素:坐标原点,坐标轴度量单位、坐标轴方向。坐标轴的度 量单位由对象的ScMc属性来决定(有8种形式),缺省为Twip银),默认的坐标原点 (0,0)为对象的左上角,横向向右为X轴的正向,城向向下为Y轴的正向。窗体的峡省 坐标系饶如图1所示, Forml X绍 (Scale Top.ScaicLeft 缺省植@.明 窗体的标准坐标系 ScaleHeizht Y轴 ScaleWidh 图1留体的缺省坐标暴统 注意:忽体的Height属性植包括了标题栏和水平边柜宽度,Wi地属性值包括了重直 边框宽度(如蚊材图6.5所标1实际可用宽度和高度由ScaleWidth和ScaleHeight
1 第六章 图形图像和多媒体应用程序设计方法 一、要点解析 本章在分析“指针式时钟”和“VCD 播放器”程序设计实例的基础上,主要介绍图形操 作的基础知识和 VB 中开发多媒体应用程序的两种主要方式。主要包括坐标系统、简单几何 绘图、相关控件的使用方法等。通过本章学习,你应该能够达到如下学习目标: 1.掌握图形图像的基本处理方法。 2.理解 VB 坐标系统的原理。 3.掌握图形控件和多媒体控件的使用和与绘图有关的常用属性和方法。 4.理解“指针式时钟”程序的设计方法,能够读懂并完善这类程序的部分语句。 5.了解“VCD 播放器”程序设计的方法,能够读懂并完善这类程序的部分语句。 6.了解播放多媒体信息的基本方法 一、主要知识点 1.VB 坐标系统 在 VB 中,每个对象都定位在存放它的容器内,对象的定位都要使用容器的坐标系。例 如,窗体处于屏幕内,屏幕就是窗体的容器(如教材图 6.5 所示),而在窗体内绘制对象时, 窗体就是容器(如教材图 6.6 所示)。如果在图片框内绘制图形,则该图片框就是容器(如 教材图 6.7 所示)。容器内的对象只能在容器内变动,当移动容器时,容器内的对象也随着 容器一起移动,而且与容器的相对位置保持不变。 (1)窗体的缺省坐标系统 构成一个坐标系需要三个要素:坐标原点、坐标轴度量单位、坐标轴方向。坐标轴的度 量单位由对象的 ScaleMode 属性来决定(有 8 种形式),缺省为 Twip(缇)。默认的坐标原点 (0,0)为对象的左上角,横向向右为 X 轴的正向,纵向向下为 Y 轴的正向。窗体的缺省 坐标系统如图 1 所示。 注意:窗体的 Height 属性值包括了标题栏和水平边框宽度,Width 属性值包括了垂直 边框宽度(如教材图 6.5 所示)。实际可用宽度和高度由 ScaleWidth 和 ScaleHeight 图 1 窗体的缺省坐标系统 窗体的标准坐标系 (ScaleTop,ScaleLeft) 缺省值(0,0) Y 轴 ScaleWidth ScaleHeight X 轴

属性决定, (2)自定义坐标系统 VB中坐标系的定义有如下两种方法 ①通过Scale Top、ScaleLeft,ScaleWidth、ScaleHeight四项属性米实现 ScaleTop,ScaleLeft的值用于指定对象左上角坐标,所有对象的ScakcLeft、ScaleTop属 性的缺省值为O,坐标原点在对象的左上角,当政变ScaleLef、Scale Top的值后,坐标系的 X轴或Y触按此值平移形成新的坐标原点。对象右下角的坐标为(ScaleLeft+Scale5dh, SealeTop叶ScaleHeigh加),根据左上角和右下角坐标的大小自动设置坐标轴的正向,X轴与Y 轴的度量单位分别为1/ScaleWidth和I/ScaleHeight。 例如,在FormI_Click)事件中通过属性定义窗体Foml的坐标系。 Private Sub Form Click() s Form1 ScaleLeft■-l4 Forml.ScaleTop=14 Forml.ScaleWidth-28 Form1.ScaleHeight=-28 1ine-14.0-14.00 1ine0.14-(0.-14) CurrentX =0.CurrentY =0:Print 0 CurrentX 13:CurrentY =2:Print"X' CurrentX=0.5:CurrentY 13:Print"Y End Sub 程序运行界面如图2所示: Forml 回 图2 2采用Scale方法来设置坐标系 其语法如下, [对象名]Scale[(xl.yl)-(2y2)】 (xyI)表示对象左上角坐标,(2,y2)表示对象右上角坐标,VB根据给定的坐标参数 计算出ScaleLet,ScaleTop,ScaleWidth,ScaleHeight的值。Scale方法不带参数时,则 2
2 属性决定。 (2)自定义坐标系统 VB 中坐标系的定义有如下两种方法: ①通过 ScaleTop、ScaleLeft、ScaleWidth、ScaleHeight 四项属性来实现 ScaleTop、ScaleLeft 的值用于指定对象左上角坐标,所有对象的 ScaleLeft、ScaleTop 属 性的缺省值为 0,坐标原点在对象的左上角,当改变 ScaleLeft、ScaleTop 的值后,坐标系的 X 轴或 Y 轴按此值平移形成新的坐标原点。对象右下角的坐标为(ScaleLeft+ScaleWidth, ScaleTop+ ScaleHeight),根据左上角和右下角坐标的大小自动设置坐标轴的正向,X 轴与 Y 轴的度量单位分别为 1/ScaleWidth 和 1/ScaleHeight。 例如,在 Form1_Click()事件中通过属性定义窗体 Form1 的坐标系。 Private Sub Form_Click() Cls Form1.ScaleLeft = -14 Form1.ScaleTop = 14 Form1.ScaleWidth = 28 Form1.ScaleHeight = -28 Line (-14, 0)-(14, 0) Line (0, 14)-(0, -14) CurrentX = 0: CurrentY = 0: Print 0 CurrentX = 13: CurrentY = 2: Print "X" CurrentX = 0.5: CurrentY = 13: Print "Y" End Sub 程序运行界面如图 2 所示: 图 2 2.采用 Scale 方法来设置坐标系 其语法如下: [对象名.]Scale[(x1,y1)-(x2,y2)] (x1,y1)表示对象左上角坐标,(x2,y2)表示对象右上角坐标,VB 根据给定的坐标参数 计算出 ScaleLeft、ScaleTop 、ScaleWidth 、ScaleHeight 的值。Scale 方法不带参数时,则

取消用户白定义的坐标系,而采用欧认的坐标系。 例如,Foral..Seale(-14,14)-(14,-14)可建立和上图一样的坐标系, 复习教材图69和图610进一步理解用Scale方法设置坐标系的含义。 使用V腾.0的颜色 在程序运行时,有两种方式可以指定颜色值。 (1)使用RGB函数 (2)使用QBColor函数 2.图形控件 VB图形控件如表1所示 表】图形控件 控件名 作用及说明 常用属性 PictureBox控件(图片框) 用米显示图片。AoS属 AuteSize 性为Tue时,图片框脆自动调 BorderStyle《用来设置图片 整大小与显示的图片匹配。为 都的边框风格) F时,图形据不能白动调整 PictureBox(用于加载图片) 大小来适应其中的图形,加载到 PictureBax控件中的图形保持 原尺寸.因此如果图形比图片据 大,则超过的部分将被载剪草。 可作为容器。 Image控件(图像框) 用来暴示图片,Stretch属 PictureBox(用于如载图片) 性设置为Fs时,图像框可自 Stretch 动改变大小以适应其中的图形, 议置为Te时,加载到图像框 的图形可自动调整尺寸以适应 图像框的大小。 该控件没有AutoSize属性。不 能作为容器。 une控件(线条) 用于在容器对象中面直线。 BorderColor(用于设置线条 由xy1和x2,2属性确定直线 的颜色) 位置, BorderWidth(用于设置线条 的宽度)、 BorderStyle(用于设置线条 的类型) Shape控件(形状) 用来在窗体或图片框中绘制 Shape(用于设定几何图形的 常见的几何图形, 类型) FSe(用于设置形状内的 填充格式》 FillColor(设置形状内的填充 格式颜色》 PictureBox控件和Imge控件的异同点: (1)两种控件都支持相同的图片格式。支样的图片格式有:位图(bmp)、图标(ico). 增强型图元文件(.cmfD、普通图元文件(.m)、位图(g,可支持256种颜色)、位图(pg 3
3 取消用户自定义的坐标系,而采用默认的坐标系。 例如,Form1.Scale(-14,14)-(14,-14)可建立和上图一样的坐标系。 复习教材图 6.9 和图 6.10 进一步理解用 Scale 方法设置坐标系的含义。 使用 VB6.0 的颜色 在程序运行时,有两种方式可以指定颜色值。 (1)使用 RGB 函数 (2)使用 QBColor 函数 2.图形控件 VB 图形控件如表 1 所示 表 1 图形控件 控件名 作用及说明 常用属性 PictureBox 控件(图片框) 用来显示图片。AutoSize 属 性为 Ture 时,图片框能自动调 整大小与显示的图片匹配。为 False 时,图形框不能自动调整 大小来适应其中的图形,加载到 PictureBox 控件中的图形保持 原尺寸。因此如果图形比图片框 大,则超过的部分将被裁剪掉。 可作为容器。 AutoSize BorderStyle(用来设置图片 框的边框风格) PictureBox(用于加载图片) Image 控件(图像框) 用来显示图片。Stretch 属 性设置为 False 时,图像框可自 动改变大小以适应其中的图形, 设置为 True 时,加载到图像框 的图形可自动调整尺寸以适应 图像框的大小。 该控件没有 AutoSize 属性。不 能作为容器。 PictureBox(用于加载图片)、 Stretch Line 控件(线条) 用于在容器对象中画直线。 由 x1,y1 和 x2,y2 属性确定直线 位置。 BorderColor(用于设置线条 的颜色) BorderWidth(用于设置线条 的宽度)、 BorderStyle(用于设置线条 的类型) Shape 控件(形状) 用来在窗体或图片框中绘制 常见的几何图形。 Shape(用于设定几何图形的 类型) FillStyle(用于设置形状内的 填充格式) FillColor(设置形状内的填充 格式颜色) PictureBox 控件和 Image 控件的异同点: (1)两种控件都支持相同的图片格式。支持的图片格式有:位图(.bmp)、图标(.ico)、 增强型图元文件(.emf)、普通图元文件(.wmf)、位图(.gif,可支持 256 种颜色)、位图(.jpeg

可支持8位和24位颜色)。 (2)二者都具有Picture属性, (3)PictureBox控件可作为容墨,Image控件则不能 (4)PictureBox控件可以显示动志的图形信息,而Ima即e控件只能用来显示静态的图形 信息。 (5)Imge挖件使川的系统货源比Piur©Box控件少,重新绘图速度快。但支持的属性, 事件、方法较少。 (6)Image控件没有Auos2e属性。但可通过Seth属性来确定是否缩做图形来适应控 作大小,PictureBox控件中的图形不能伸馏。 3.多誉体控件(Control控件) INControl控件是一个专门用来管理多媒体控制接口MCI设备的ActiveX控件,它是 具有一组执行M口命令的下压式按钮。它被用米向诸如声卡,MD序列发生器,CD-OM 驱动器、视频CD插收器和视頓磁带记录器及播傲器等设备发出MC命令,该控作也支持 AV门视频文件的目放。 MMCont世@l控件在窗体上的外观如图3所示. 区阿面面回回E 图3 MMControl控件外程 常用属性有:AutoEnable属性、PlayEnable过属性、Pay Visible属性、Command属性、 DeviceType属性,Length属性,Natf属性、Mode属性, 常用事件主要有:Click事件、Done事件、StatusUpdate事件。StatusUpdate事件允许应 用程序更新显示,以通知用户当前M口设备的状老。应用程序可以从Position.Lmg和 kode等属性中疾得状态信息, 4.图形方法 VB常用图形方法如表2所示。 表2B常用图形方法 方法 说明 语法格式 Line 舞直线、矩形、三 [对象]Linel[Step(Xl,YI小-StpX2,Y2[[Color][.B] 角形 Cirele 圆、利圆、弧、 []Circle[StepKX.Y).radius(fcolorll.[start].endllaspet]] 扇形等 Pset 西点 I对象Pset Steplixy:[Color] Point 返回指定点的颜色 【对象]Poin(xy) s方法用来清除绘图区 [对象山 5.绘图黑性 常用绘图属性及功能如表3所示 表3绘图属性及功能说明 绘图属性 功能说明 CurrentX.CurrentY 当葡绘图位置
4 可支持 8 位和 24 位颜色)。 (2)二者都具有 Picture 属性。 (3)PictureBox 控件可作为容器,Image 控件则不能 (4)PictureBox 控件可以显示动态的图形信息,而 Image 控件只能用来显示静态的图形 信息。 (5)Image 控件使用的系统资源比 PictureBox 控件少,重新绘图速度快,但支持的属性、 事件、方法较少。 (6)Image 控件没有 Autosize 属性,但可通过 Stretch 属性来确定是否缩放图形来适应控 件大小,PictureBox 控件中的图形不能伸缩。 3. 多媒体控件(MMControl 控件) MMControl 控件是一个专门用来管理多媒体控制接口 MCI 设备的 ActiveX 控件。它是 具有一组执行 MCI 命令的下压式按钮。它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频 CD 播放器和视频磁带记录器及播放器等设备发出 MCI 命令。该控件也支持 AVI 视频文件的回放。 MMControl 控件在窗体上的外观如图 3 所示。 常用属性有:AutoEnable 属性、PlayEnabled 属性、PlayVisible 属性、Command 属性、 DeviceType 属性、Length 属性、Notify 属性、Mode 属性。 常用事件主要有:Click 事件、Done 事件、StatusUpdate 事件。StatusUpdate 事件允许应 用程序更新显示,以通知用户当前 MCI 设备的状态。应用程序可以从 Position、Length 和 Mode 等属性中获得状态信息。 4. 图形方法 VB 常用图形方法如表 2 所示。 表 2 VB 常用图形方法 方法 说明 语法格式 Line 画直线、矩形、三 角形 [对象].Line[[Step] (X1,Y1)]- [Step] X2,Y2)] [,[Color][,B[F]] Circle 画圆、椭圆、圆弧、 扇形等 [对象].Circle[Step](X,Y),radius[,[color][,[start][,end][,aspet]] Pset 画点 [对象].Pset[Step]{x,y}[Color] Point 返回指定点的颜色 [ 对象.]Point(x,y) Cls 方法 用来清除绘图区 [对象.]cls 5. 绘图属性 常用绘图属性及功能如表 3 所示。 表 3 绘图属性及功能说明 绘图属性 功能说明 CurrentX,CurrentY 当前绘图位置 图 3 MMControl 控件外观

BorderStyle,BrderWidth 线型、线宽 DrawMode.DrawStyle.DrawWidth 绘图惊式、风格、线宽 FillStyle,FillColor 填充格式、填充颜色 ForeColor.BackColor 前景颜色、背景源色 6.图形显示方法 在VB中,可根据需要采用不同方法把图形添加到窗体、图片框和图像框中。 (1)在设计时添加图形 有两种方法 ①使用对象的Picture属性添加图片 ②使用明贴板,将图形粘贴到对象中 (2)在运行时添如图形 有两种方法 ①使用oadPicture函数加载形文件,格式如下: 《对象名).Picture-LoadPicture(“图形文件名”) 如使用如下语句可以副除Picturel图片框中的图形文件 Picturel.Picture"LosdPicture() ②使用P1cte属性在对象间相互复制,如使用如下语句: Picture2 Picture Picturel.Picture 可将Picturel图片框中的图形拷贝到Picture2图片框中。 二、本章重点 1.坐标系统(献认坐标系统和自定义坐标系统), 2 PictureBox控件和Iae控件属性的设置,二者之间的区别。 3图形显示方法。 4Line方法、Circle方法,Pset等绘图方法的灵话使用. 三、本章谁点 坐标系统(欧认坐标系统和白定义坐标弱统) 四、典型例题 例1.在窗体上给制一个边长为1000缇的红色矩形,再用整色画出矩形的两条对角线. 代码如下: Private Sub Form_ClickO Lie(200,200)-(1000,1000),GB255,0.0),B Lie(200,200)-(10001000),HGB(0,0.255) Line(200,1000)-(1000,200),GB(0,0.255) End Sub 例2.在窗体上绘制一个圆心在(2000,2000)以、半径为1000提的红色圆,内部用绿色 水平线填充。 代码如下: Private Sub Form_ClickO FillStyle "2 5
5 BorderStyle,BrderWidth 线型、线宽 DrawMode、DrawStyle、DrawWidth 绘图模式、风格、线宽 FillStyle,FillColor 填充格式、填充颜色 ForeColor、BackColor 前景颜色、背景颜色 6.图形显示方法 在 VB 中,可根据需要采用不同方法把图形添加到窗体、图片框和图像框中。 (1)在设计时添加图形 有两种方法: ①使用对象的 Picture 属性添加图片 ②使用剪贴板,将图形粘贴到对象中 (2)在运行时添加图形 有两种方法 ①使用 LoadPicture 函数加载图形文件,格式如下: .Picture=LoadPicture(“图形文件名”) 如使用如下语句可以删除 Picture1 图片框中的图形文件 Picture1.Picture = LoadPicture() ②使用 Picture 属性在对象间相互复制,如使用如下语句: Picture2.Picture = Picture1.Picture 可将 Picture1 图片框中的图形拷贝到 Picture2 图片框中。 二、本章重点 1.坐标系统(默认坐标系统和自定义坐标系统)。 2.PictureBox 控件和 Image 控件属性的设置,二者之间的区别。 3.图形显示方法。 4.Line 方法、Circle 方法、Pset 等绘图方法的灵活使用。 三、本章难点 坐标系统(默认坐标系统和自定义坐标系统) 四、典型例题 例 1.在窗体上绘制一个边长为 1000 缇的红色矩形,再用蓝色画出矩形的两条对角线。 代码如下: Private Sub Form_Click() Line (200, 200)-(1000, 1000), RGB(255, 0, 0), B Line (200, 200)-(1000, 1000), RGB(0, 0, 255) Line (200, 1000)-(1000, 200), RGB(0, 0, 255) End Sub 例 2.在窗体上绘制一个圆心在(2000,2000)、半径为 1000 缇的红色圆,内部用绿色 水平线填充。 代码如下: Private Sub Form_Click() FillStyle = 2

FillColor RGB(0,255,0) Cire1e2000.2000).1000.58(25.0,0) End Sub 例3.建立窗体的自定文坐标系统,利用Lie方法在窗体上绘制8个矩形,分别用8种 F111 Style属性进行填充, 代码如下: Privale Sub Form Click) Seale(0,0-2500.400 Fori=0To 7 FillStyle=i Lne(100+i1·250.100-S1ep200.200).,B Nexti End Sub 例4.设计一程序。要求单击装载按钮装入图形,且图形不随图片柜大小而伸缩:单击 复制按组,将图片服中的图形复制到团形框中:单击清除按铝,清除两控件中的图形,并使 两控件的高和宽均为1935:单击utoSize按细,图片框自动调整尺寸以适应图片的大小, 单击Stretch按组,图像据中的图形白动调整大小以适应图像框的尺寸。 解答 (1)界雨设计 在窗体上建立一个图片据、一个图像框和5个命令按钮。其属性如下表 控件名 属性 设置 Picturel Inagel BorderStyle 1-FixedSingle Commandl Caption 装载 Comnand2 Caption 复制 Comnnd3 Caption 清除 Commndd Caption AutoSize Command5 Caption Stretch 程序设计界面如图4所示: 6
6 FillColor = RGB(0, 255, 0) Circle (2000, 2000), 1000, RGB(255, 0, 0) End Sub 例 3.建立窗体的自定义坐标系统,利用 Line 方法在窗体上绘制 8 个矩形,分别用 8 种 FillStyle 属性进行填充。 代码如下: Private Sub Form_Click() Scale (0, 0)-(2500, 400) For i = 0 To 7 FillStyle = i Line (100 + i * 250, 100)-Step(200, 200) , , B Next i End Sub 例 4.设计一程序。要求单击装载按钮装入图形,且图形不随图片框大小而伸缩;单击 复制按钮,将图片框中的图形复制到图形框中;单击清除按钮,清除两控件中的图形,并使 两控件的高和宽均为 1935;单击 AutoSize 按钮,图片框自动调整尺寸以适应图片的大小, 单击 Stretch 按钮,图像框中的图形自动调整大小以适应图像框的尺寸。 解答 (1)界面设计 在窗体上建立一个图片框、一个图像框和 5 个命令按钮,其属性如下表: 控件名 属性 设置 Picture1 Image1 BorderStyle 1-FixedSingle Command1 Caption 装载 Command2 Caption 复制 Command3 Caption 清除 Command4 Caption AutoSize Command5 Caption Stretch 程序设计界面如图 4 所示:

.Forml -口x☒ AntoSize Stretch 复制 图4 (2)编写Coarandl-Cormnd5的事件代码 程序参考代码如下: Private Sub Commandl_Click( Picturel.Width 1935 Pieturel.Height 1935 Picturel.AutoSize False Picturel..Picture=LoadPicture("d:l图\莫扎特.jpw门 End Sub Private Sub Commmand2_Click( Ingel.Stretch False Imacel.Picture Picturel.Pieture End Sub Private Sub Command3_ClickO Picturel.Width"1935 Pieturel.Height 1935 Imagel.Width 1935 Inagel.Height 1935 Picturel.Picture LoadPictureO Inagel.Picture LoadPicture() End Sub Private Sub Command4_ClickO Picturel.AutoSize True End Sub Private Sub Comand5_Click( 7
7 图 4 (2)编写 Command1-Command5 的事件代码 程序参考代码如下: Private Sub Command1_Click() Picture1.Width = 1935 Picture1.Height = 1935 Picture1.AutoSize = False Picture1.Picture = LoadPicture("d:\图\莫扎特.jpg") End Sub Private Sub Command2_Click() Image1.Stretch = False Image1.Picture = Picture1.Picture End Sub Private Sub Command3_Click() Picture1.Width = 1935 Picture1.Height = 1935 Image1.Width = 1935 Image1.Height = 1935 Picture1.Picture = LoadPicture() Image1.Picture = LoadPicture() End Sub Private Sub Command4_Click() Picture1.AutoSize = True End Sub Private Sub Command5_Click()

1gel.Width·1935 Inagel.Height 1935 Inagel.Stretch True End Sub (3)运行程序 程序运行界面如图5所示: .Forml 回x AutoSize Stratch 图5 例5.创建一个绘图程序。当程序运行时,单击“开始“按细,在Pre控件上画出 随机彩色同心圆,单击“清屏”按钮,则图像消失。要求坐标度量单位为毫米,边战的宽 度为2像素,绘制的圆不超出窗体。程序运行界面如图6所示, .Forsl 回刻 开蜂 清屏 图6 8
8 Image1.Width = 1935 Image1.Height = 1935 Image1.Stretch = True End Sub (3)运行程序 程序运行界面如图 5 所示: 图 5 例 5.创建一个绘图程序。当程序运行时,单击“开始“按纽,在 Picture 控件上画出 随机彩色同心圆,单击“清屏” 按钮,则图像消失。要求坐标度量单位为毫米,边线的宽 度为 2 像素,绘制的圆不超出窗体。程序运行界面如图 6 所示。 图 6

分析: (1)用Crle方法画圆,需要确定圆心的位置和半径,根据题意将圆心设在窗体中心, 则圆心的坐标为:X-FormLScaleWidth/2.Y-Foml.ScaleHeight/2,题目要求绘制的图不超 出窗体,所以圆的半径应为窗体净觉度和净高度中较小者的一半。 (2)题目要求坐标度量单位为毫米,则ScaleMod一6。边战的宽度为2像素,则 Draw Width =2. 程序代码如下: Private Sub Commandl Click() Dim X As Integer.YAs Imteger.r As Integer.rl As Integer,iAs Integer ScaleMode-6 Draw Width =2 X=FormlScaleWidch /2 Y=Form1.ScaleHeight/2 If ScaleWidth ScaleHeight Then r-Y Else r=X EndIf Forrl=0Tor Forml.Cirele(XY.fl.RGB255◆Rnd.255◆Rnd.255·Rnd) Next End Sub Private Sub Command2_Click() s End Sub 例6建立坐标系,在坐标系上用P方法绘制一2舞到2点之间的正弦由线,程序运行界面 如图7所示。 .Foral 回X 图7 分析 (1)可用S©ale方法定义坐标系。由于所要绘制的正弦曲线在(一2,2江)之间,考虑 到四周的要有一些空隙,故X触的范围可定义在(一器,8),Y轴的范围可定义在《一18
9 分析: (1)用 Circle 方法画圆,需要确定圆心的位置和半径,根据题意将圆心设在窗体中心, 则圆心的坐标为:X = Form1.ScaleWidth / 2, Y = Form1.ScaleHeight / 2,题目要求绘制的圆不超 出窗体,所以圆的半径应为窗体净宽度和净高度中较小者的一半。 (2)题目要求坐标度量单位为毫米,则 ScaleMode = 6。边线的宽度为 2 像素,则 DrawWidth = 2。 程序代码如下: Private Sub Command1_Click() Dim X As Integer, Y As Integer, r As Integer, r1 As Integer, i As Integer ScaleMode = 6 DrawWidth = 2 X = Form1.ScaleWidth / 2 Y = Form1.ScaleHeight / 2 If ScaleWidth > ScaleHeight Then r = Y Else r = X End If For r1 = 0 To r Form1.Circle (X, Y), r1, RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Next End Sub Private Sub Command2_Click() Cls End Sub 例 6,建立坐标系,在坐标系上用 Pset 方法绘制-2到 2之间的正弦曲线。程序运行界面 如图 7 所示。 图 7 分析: (1)可用 Scale 方法定义坐标系。由于所要绘制的正弦曲线在(-2,2)之间,考虑 到四周的要有一些空隙,故 X 轴的范围可定义在(-8,8),Y 轴的范围可定义在(-1.8

1.8)。采用Sele(一8,1.8)-(8-1)定义坐标系。 (2)坐标轴用1山ne方法属出, (3)用CurrentX、CurrentY属性设定当酸位置,然后用Prt方法标注原点,X轴和Y 轴。 (4)用P方法绘制正莹曲线,为使由线光滑,X轴上相邻两点的亞离取00川. 程序代码如下: Private Sub Form_Click() Dim i As Double.x As Double.y As Double Cls Forml.Scale(-8,2)-(8,-2) um-7.5.07.5.0 1ue(01.80,-1.8 CurrentX 7.5:CurrentY =0.2:Print"X* CurrenX =0.3:CurrentY 1.8:Print"Y CurrentX -0.2:CurrentY --0.1:Print"0" F0mi=-62831D6283Scp0.01 x=iy=Sin(i) PSet(x.y) Nexti End Sub 10
10 1.8)。采用 Scale(-8,1.8)- (8,-1.8)定义坐标系。 (2)坐标轴用 Line 方法画出。 (3)用 CurrentX、CurrentY 属性设定当前位置,然后用 Print 方法标注原点,X 轴和 Y 轴。 (4)用 Pset 方法绘制正弦曲线,为使曲线光滑,X 轴上相邻两点的距离取 0.01。 程序代码如下: Private Sub Form_Click() Dim i As Double, x As Double, y As Double Cls Form1.Scale (-8, 2)-(8, -2) Line (-7.5, 0)-(7.5, 0) Line (0, 1.8)-(0, -1.8) CurrentX = 7.5: CurrentY = 0.2: Print "X" CurrentX = 0.3: CurrentY = 1.8: Print "Y" CurrentX = 0.2: CurrentY = -0.1: Print "0" For i = -6.283 To 6.283 Step 0.01 x = i: y = Sin(i) PSet (x, y) Next i End Sub