第九章 图形程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(x, y)为圆心坐标,关键字Step表示采用当前作图位置的相对值。 r是半径。 Color指定所画图轮廓线的颜色,默认时采用前景色,即ForeColor属性值。
圆弧和扇形通过参数弧起始角、弧终止角控制。当起始角、终止角取值在 0–2π 时为圆弧,当在起始角、终止角取值前加一负号时,画出扇形,负号表 示画圆心到圆弧的径向线。
Step可选,该关键字表示采用当前作图位置的相对值。
(x, y)是必需的,单精度浮点数,是所画点的水平坐标(x轴)和垂直 坐标(y轴)。
Color可选,长整形数,为该点指定RGB颜色。可用RGB函数或QBColor 函数指定颜色。如果省略Color,则使用当前的ForeColor属性值。如果使用背 景颜色,则可清除某个位置上的点。
Line (3200, 100)-Step(800, 900), vbRed, B
' 绘制矩形, 用红色作为边框颜色, 用FillColor填充, 填充样式为交叉对角线 End Sub
运行程序
程序运行结果如图9.3所示。
图9.3 用Line方法画出不同的直线和矩形
9.3.3 Circle方法
Circle方法用于在指定对象上画圆、椭圆、圆弧和扇形。其语法格式 为: [对象名.] Circle [Step] (x, y), r[,Color][,弧起始角][,弧终止 角][,半径比] 说明: 对象名为一个对象表达式,是控件的Name属性。省略时指带焦点的窗 体。
表9.1 ScaleMode属性设置
值 内部常数 单位
0
1 2 3 4 5
VbUser
VbTwips VbPoints VbPixels VbCharacters VbInches
用户自定义
缇(Twip,默认值) 磅(point,每英寸72磅,20个twip为1磅) 像素(pixel) 字符(默认为高12磅,宽20磅) 英寸(inch,每英寸1440个twip)
【例9.3】在VB中采用Pset方法绘制正弦曲线。程序运行结果如图9.2所示。
程序代码:
Private Sub Form_Paint() Dim i As Single, x As Single
' 自定义坐标系
Scale (-1000, -1000)-(1000, 1000) ' 绘制x,y轴
For i = -900 To 900 Step 0.1
9.1
VB的坐标系统
返回首页
VB中窗体、控件的大小和位置可以由它在容器中的坐标来确定。每个容器 都有一个坐标系,所有容器的坐标系就构成坐标系统。VB提供两类坐标系:默 认坐标系和自定义坐标系。 默认坐标系中原点(0, 0)定位于对象容器用户区的左上角,X轴向右为正 方向,Y轴向下为正方向。对象坐标的度量单位由容器对象的ScaleMode属性决 定,共有8种形式的单位,默认为Twip。ScaleMode属性设置如表9.1所示。
9.2.2 Shape控件
Shape控件可用来在窗体、框架或图片框中创建矩形、正方形、椭圆形、 圆形、圆角矩形或圆角正方形图形。通过设置Shape控件的Shape属性来实现所 需要的形状,控制Shape控件的外观。 语法: 对象名.Shape[=value] 其中,对象名是Shape控件的Name属性;value用来指定控件外观的整数。 其设置值如表9.2所示。
6
7
VbMillimeters
VbCentimeters
亳米(millimeter)
厘米(centimeter)
用ScaleMode属性只能改变刻度单位,不能改变坐标原点及坐标轴的 方向。当容器对象的ScaleMode属性设置为0时,允许自定义坐标系。通过设置 对象的ScaleLeft、ScaleTop、ScaleWidth和ScaleHeight属性来定义合适的坐 标系。
' 用前景色画直线
' 用前景色画矩形 ' 以矩形边框颜色红色填充矩形
DrawWidth = 2
' 设置图形方法输出时的线条宽度为2
Line -(3000, 2000), vbRed
' 以(CurrentX,CurrentY)为起点,(3000,2000)为终点画红色直线 FillStyle = 7 ' 设置图形填充样式为交叉对角线
(x2, y2)是必需的,单精度浮点数,指定绘制直线或矩形的终点坐标。 带有Step关键字时表示相对坐标,不带Step时表示绝对坐标。 Color是可选参数,指定画线的RGB颜色,缺省时取对象的前景颜色, 即ForeColor属性值。注意在省略Color 参数时,逗号并不省略。
B是可选的。如果使用了B选项,则表示利用对角坐标画矩形。 F是可选的。如果使用了B选项,则F选项表示矩形以矩形边框的颜色 来填充。不能只有F而没有B。如果有B而没有F,则矩形使用当前的FillColor 和FillStyle填充。FillStyle默认值为“透明”。
【例9.4】利用Line方法画出不同的直线和矩形。
程序代码:
Private Sub Form_Paint()
Line (100, 100)-(1000, 1000)
Line (1200, 100)-(2000, 1000), , B Line (2200, 100)-(3000, 1000), vbRed, BF
属性ScaleTop,ScaleLeft的值用于控制对象左上角坐标,对象左上 角坐标为(ScaleLeft, ScaleTop)。
属性ScaleWidth,ScaleHeight的值可确定对象坐标系X轴与Y轴的正向 及最大坐标值。缺省时其值均大于0,此时,X轴的正向向右,Y轴的正向向下。 对象右下角坐标值为(ScaleLeft+ScaleWidth, ScaleTop+ScaleHeight)。如果 ScaleWidth的值小于0,则X轴的正向向左,如果ScaleHeight的值小于0,则Y 轴的正向向上。
9.2.3 Line控件
Line控件与Shape控件相似,但是仅用于画线。Line控件可用来在窗 体、框架或图片框中创建各种直线。既可以在设计时通过设置直线的端点坐标 来画直线,又可以在程序运行时动态地改变直线的各种属性。 程序运行时,不能使用Move方法移动Line控件,但是可以通过改变X1、 Y1、X2、Y2属性来移动或调整直线。 还可以通过改变BorderColor、BorderStyle、BorderWidth、 DrawMode属性来设置直线的边框颜色、边框样式、边框宽度等。有关属性说明 详见9.4.1。
9.3 图形方法
返回首页
9.3.1 Pset方法
Pset方法用于在对象的指定位置(x, y),按确定的像素颜色画点。 其语法格式为:
[对象名.]Pset [Step] (x, y) [, Color]
说明:
对象名为一个对象表达式,是控件的Name属性。如果省略对象名,则 具有焦点的窗体作为对象。
表9.2 Shape属性设置
常数 vbShapeRectangle vbShapeSquare vbShapeOval vbShapeCircle vbShapeRoundedRectangle vbShapeRoundedSquare 值 0 1 2 3 4 5 描述 矩形,默认值 正方形 椭圆形 圆形 圆角矩形 圆角正方形
其中,对象名可以是窗体、图片框或打印机。如果缺省对象名,则缺 省为带有焦点的窗体对象。(X1, Y1)是对象用户区左上角的新坐标,(X2, Y2) 是对象用户区右下角的新坐标。当Scale方法不带参数时,取消用户定义的坐 标系,采用默认坐标系。
调用Scale方法后,VB根据给定的坐标(X1, Y1)、(X2, Y2)自动计算出对 象的ScaleLeft、ScaleTop、ScaleWidth和ScaleHeight属性的值,代码如下: ScaleLeft = X1 ScaleTop = Y1 ScaleWidth = X2-X1 ScaleHeight = Y2-Y1
Image控件只能显示图片,不能作为其他控件的容器。控件使用系统资源 少,而且重新绘图的速度较快。可以将Stretch属性的值设置为true,来延伸 图片的大小以适应控件的大小。但是它支持的属性、事件和方法较PictureBox 少一些。 而PictureBox控件不仅可用来显示图片,还可以作为其他控件的容器,同 时支持图形方法或Print方法。PictureBox控件不能延伸图片以适应控件的大 小,但是可以自动调整控件的大小以显示完整的图片。 有关具体内容详见第七章。
窗体左上角坐标为(-300, 200),
右下角坐标为(300, -1所示。 图9.1 用属性定义坐标系
除了用上述属性定义坐标系外,Scale方法也可重新定义窗体、图片 框、打印机等对象的坐标系。语法格式为:
[对象名.]Scale [(X1, Y1)-(X2, Y2)]
【例9.2】用Scale方法定义窗体Form1的坐标系,使其坐标系与例9.1相同。程 序代码为: Form1.Scale (-300, 200)-(300, -200) 若要将窗体Form1的坐标系恢复为默认坐标系,程序代码为: Form1.Scale 需注意区分的是:容器对象的高度和宽度分别由Height和Width属性 决定。而对象内部垂直方向和水平方向的单元数分别由ScaleHeight和 ScaleWidth属性决定。
9.2 图形控件
返回首页
9.2.1 PictureBox控件和Image控件
PictureBox控件可用来显示来自于位图、图标、图元文件、JPEG或GIF文 件中的图片,还可作为其他控件的容器、显示图形方法输出的图形或Print方 法输出的文本。
Image控件也可以用来显示图像,支持的文件格式有:位图、图标、图元、 增强型图元文件、JPEG文件和GIF文件。它与PictureBox控件基本相同,主要 不同之处在于:
第九章 图形程序设计
9.1 VB的坐标系统 9.2 图形控件 9.3 图形方法 9.4 与绘图有关的属性和函数 9.5 简单的动画制作 9.6 应用实例
返回目录
程序设计过程中经常会需要在界面上添加一些图形或图像,VB专门为这方 面的需要提供了相关的图形控件和一些绘制图形的方法。本章将介绍与图形处 理有关的属性、方法、控件及一些相关的基本知识。
PSet (i, 0), vbBlack
PSet (0, i), vbBlack Next i
' 绘制正弦曲线
For x = -360 To 360 Step 0.02 PSet (x, 600 * Sin(x * 3.1415926 / 180)), vbRed
Next x
End Sub
运行程序
图9.2 用Pset方法绘制正弦曲线
【例9.1】设置窗体Form1的4项属性为: Form1.ScaleLeft = -300 Form1.ScaleTop = 200 Form1.ScaleWidth = 600 Form1.ScaleHeight = -400
则: ScaleLeft+ScaleWidth = 300, ScaleTop+ScaleHeight = -200。
半径比是纵轴和横轴的半径比值。默认值为1,表示画圆。
【例9.5】用Circle方法画圆、椭圆、圆弧和扇形。 程序代码: Private Sub Form_Paint() Circle (1000, 1000), 400 Circle (2000, 1000), 400, , , , 2 Circle (3000, 1000), 400, , 3.1415926 / 2, 2 * 3.1415926
9.3.2 Line方法
Line方法用于在对象上画直线和矩形。其语法格式为:
[对象名.] Line [[Step] (x1, y1)] – [Step] (x2, y2)[,[Color][,B[F]]]
说明:
对象名为一个对象表达式,是控件的Name属性。省略时指带焦点的窗
体。 (x1, y1)指定所绘制直线或矩形的起点坐标。带有Step关键字时表示 相对坐标,不带Step时表示绝对坐标;省略(x1, y1)时则以对象的CurrentX和 CurrentY属性确定起点坐标。
相关文档
最新文档