首页计算机计算机软件VB程序设计 11 第11章 图形设计.pptx

11 第11章 图形设计.pptx

页数:43页文件大小:437.8 KB来源: VB程序设计ppt课件

本课件讲解VB图形设计,先说明缺省坐标系统、刻度单位与自定义坐标系的两种方法,介绍颜色的表示与颜色常量,随后讲解Shape与Line图形控件,最后系统给出PSet画点、Line画直线矩形、Circle画圆三种绘图方法及其相关属性、事件与方法。

第11章 图形设计章节封面,标示本章主题与所讲授的主要内容
11.1 图形设计基础讲解页,围绕11.1 图形设计基础展开说明
1. 刻度单位讲解页,说明Twip、ScaleMode、ScaleHeight在本节中的概念与用法
查看本课件的文字版(共 43 页,供检索与复制)

第1页:第11章 图形设计

第11章 图形设计

  • 图形设计基础
  • 图形控件
  • 绘图方法
  • 与绘图有关的常用属性、事件和方法

第2页:11.1 图形设计基础

11.1 图形设计基础

11.1图形设计基础11.1.1坐标系统x轴y轴(0,0)缺省坐标系统:

第3页:1. 刻度单位

1. 刻度单位

1.刻度单位缺省刻度单位:缇(Twip)改变刻度单位:对象名.ScaleMode =属性值厘米毫米英寸字符,水平单位:120缇;垂直单位:240缇像素,表示分辩率的最小单位点,72点等于一英寸缇(缺省值),1440缇等于一英寸用户自定义。

可以设置ScaleHeight,ScaleWidth,ScaleTop,ScaleLeft属性说明7–Centimeter6-Millimeter5–Inch4-Character3-Pixel2-Point1–Twip0–User属性值

第4页:2. 自定义坐标系

2. 自定义坐标系

2自定义坐标系VB允许自定义坐标系,包括原点,轴线方向和轴线“刻度”方法一:通过ScaleLeft,ScaleTop,ScaleWidth和ScaleHeight属性实现。

如:[对象.]ScaleLeft=x, [对象.] ScaleTop=y[对象.] ScaleWidth=<宽度>, [对象.] ScaleHeight=<高度值>例:

Form1. ScaleLeft=500, Form1. ScaleTop=50 Form1. ScaleWidth=100, Form1. ScaleHeight=50这样就将窗体1左上角的坐标定义为(200,100),宽度划分为100刻度单位,高度划分为50刻度单位。这两个单位之间是互相独立的,并没有物理长度的联系。(600,50)(500,50)(500,100)(600,100)

第5页:窗体的坐标属性示意

窗体的坐标属性示意

(Left,Top)Width(ScaleLeft,ScaleTop)HeightScaleHeightScaleWidth

第6页:用Scale方法自定义坐标系

用Scale方法自定义坐标系

  • 5)(-5,
  • 5)方法二:[对象.]Scale(X1,Y
  • 1)-(X2,Y
  • 2)(X1,Y
  • 1)设置对象的左上角坐标,(X2,Y
  • 2)设置对象的右下角坐标。此方法的使用,将对象在X方向的坐标分成X2-X1等分,Y方向的坐标分成Y2-Y1等分;并使ScaleMode属性为0!(X2,Y
  • 2)(X1,Y
  • 1)YX2自定义坐标系

第7页:Scale方法的等价写法

Scale方法的等价写法

  • 1)-(X2,Y
  • 2),相当于:对象.ScaleLeft=X1对象.ScaleTop=Y1对象.ScaleWidth=X2-X1对象.ScaleHeight=Y2-Y12自定义坐标系

第8页:自定义坐标系示例

自定义坐标系示例

2.自定义坐标系【例11-1】使用缺省的坐标系统:

Private Sub Command1_Click() Label1.Left = 0 Label1.Top = 0 End Sub(0,0)

第9页:自定义坐标系应用示例

自定义坐标系应用示例

使用自定义的坐标系统:

Private Sub Command1_Click() Form1.ScaleLeft = 200 Form1.ScaleTop = 300 Label1.Left = 0 Label1.Top = 0 End Sub(200,300)

第10页:自定义坐标系应用示例(代码)

自定义坐标系应用示例(代码)

ScaleWidth和ScaleHeight属性表示容器对象的内部宽度与高度。用于自定义一个刻度单位。例:使用ScaleWidth和ScaleHeight改变窗体刻度单位设窗体高度是2000Twips,宽度是3000Twips。

此时水平和垂直刻度单位均为1Twips。如果设置:ScaleHeight=500则将窗体的高度划分为500个单位,每个单位为2000/500,即4Twips如果设置:ScaleWidth=1000则将窗体的宽度划分为1000个单位,每个单位为3000/1000,即3Twips

第11页:窗体内部宽度与高度属性

窗体内部宽度与高度属性

  • 设置ScaleWidth和ScaleHeight属性为负数,将反转坐标轴的方向。
  • 将ScaleHeight、ScaleWidth、ScaleLeft与ScaleTop属性设置为任何值都自动将ScaleMode设置为0。

第12页:【例11-2】移动图形到窗体中央

【例11-2】移动图形到窗体中央

【例11-2】将一个图形(Shape1)的左上角移动到窗体的中央位置。

Private Sub Command1_Click() Form1.ScaleHeight = 2 Form1.ScaleWidth = 2 Shape1.Left = 1 Shape1.Top = 1 End Sub(1,1)(0,0)

第13页:【例11-3】左下角为坐标原点

【例11-3】左下角为坐标原点

【例11-3】定义窗体的左下角为原点(0,0),y坐标轴正方向向上。

Private Sub Form_Load()ScaleHeight =-4ScaleWidth = 4ScaleTop = 4 End Sub Private Sub Command1_Click() Shape1.Left = 1 Shape1.Top = 1 End Sub(0,0)(1,1)

第14页:【例11-4】窗体中央为坐标原点

【例11-4】窗体中央为坐标原点

【例11-4】定义窗体的中央位置为原点(0,0),y坐标轴正方向向上。

Private Sub Form_Load()ScaleHeight =-4ScaleWidth = 4ScaleTop = 2ScaleLeft =-2 End Sub Private Sub Command1_Click() Shape1.Left = 1 Shape1.Top = 1 End Sub(0,0)(1,1)

第15页:当前坐标CurrentX、Y

当前坐标CurrentX、Y

  • 00)处显示“当前坐标为(200,2
  • 00)”
Form1.CurrentX = 200 Form1.CurrentY = 200 Form1. Print "当前坐标为(200,200)"

第16页:颜色的表示与设置

颜色的表示与设置

  • 55)1.在设计阶段设置颜色:在属性窗口设置2.在运行阶段设置颜色:
  • (1)RGB函数:RGB(red,green,blue)例:Form1.BackColor = RGB(255,0,
  • 0)设置窗体的背景色为红色
  • (2)QBColor函数:QBColor(value)value: 0~7、8~15(为0~7颜色加亮)0—黑色1—蓝色2—绿色3—青色4—红色5—紫红色6—黄色7—浅灰色例:Form1.BackColor = QBColor
  • (4)11.1.2颜色

第17页:常用颜色常量

常用颜色常量

  • (4)使用颜色的十六进制值&H00BBGGRR&
  • (5)使用系统颜色例:vbScrollBars &H80000000滚动条颜色vbDesktop &H80000001桌面颜色……

第18页:11.2 图形控件

11.2 图形控件

图形控件用于在对象(窗体、图片框)上绘制特定形状的图形,如圆、直线等。图形控件的属性,既可以在设计阶段设置,也可以在运行阶段由程序动态的改变。

11.2图形控件Shape控件Line控件

第19页:Shape控件的属性

Shape控件的属性

1.属性Shape(见P246表11-4)BorderStyle、BorderColor、BorderWidthBackStyle、BackColorFillStyle、FillColorBackColorShapeFillStyleFillColor11.2.1Shape控件例如:

第20页:Move方法

Move方法

2.方法Moveobject.Move left[, top[, width[, height]]]【例11-6】在窗体上移动一正方形,每次移动时使正方形的长和宽增加100缇。

Private Sub Command1_Click() Shape1.Move Shape1.Left + 100, Shape1.Top + _100, Shape1.Width + 100, Shape1.Height + 100 End Sub

第21页:Line控件的作用

Line控件的作用

1.作用设计时在窗体上绘制直线。2.属性BorderStyle(见P247表11-5)BorderWidthX1、X2、Y1、Y2注意:运行时可以通过改变X1、X2、Y1和Y2属性来移动它或者调整它的大小。

而不能使用Move方法11.2.2Line控件

第22页:【例11-7】设计简单秒表

【例11-7】设计简单秒表

【例11-7】设计一个简单的秒表。单击“开始”按钮开始移动秒针,单击“停止”按钮停止移动。Picture1Shape1Line1Command2Command1Timer1

第23页:【例11-7】的代码实现

【例11-7】的代码实现

代码如下:Dim arph'秒针旋转角度

Private Sub Form_Load() Timer1.Enabled = False'关闭定时器 Timer1.Interval = 1000'设定时时间为1秒 Picture1. Scale (-1, 1)-(1,-1)'定义图片框坐标系Line1.X1 = 0Line1.Y1 = 0'将秒针的起点移动到原点Line1.X2 = 0Line1.Y2 = 0.7'将秒针的另一端移动到正上方,指向0arph = 0'旋转角度为0 End Sub

第24页:【例11-7】启动与停止代码

【例11-7】启动与停止代码

Private Sub Command1_Click() Timer1.Enabled = True'启动定时器 End Sub Private Sub Command2_Click() Timer1.Enabled = False'关闭定时器 End Sub Private Sub Timer1_Timer()arph=arph+3.1415926/30Line1.y2=0.7*cos(arph)Line1.x2=0.7*sin(arph)End sub例,曲柄滑块机构的演示

第25页:11.3 绘图方法

11.3 绘图方法

11.3绘图方法11.3.1画点方法(Pset)格式:[<对象名>.]PSet [Step] (x, y) [,<颜色>]功能:在对象的指定位置,用一定的颜色画点说明:<对象名>—窗体、图片框、缺省为当前窗体。

Step—可选的,指定相对于由CurrentX和CurrentY属性提供的当前图形位置的坐标。(x, y)—点的水平和垂直坐标。

<颜色>—绘制该点的RGB颜色。省略时使用<对象名>的ForeColor属性值。

第26页:【例11-8】绘制正弦曲线

【例11-8】绘制正弦曲线

【例11-8】用PSet方法在窗体上绘制一条[00,3600]的正弦曲线。

Private Sub Form_Click()DrawWidth = 2 Scale (0, 1)-(360,-1) For x = 0 To 360y = Sin(x * 3.1415926 / 180) P Set (x, y), vbRed Next x End Sub

第27页:【例11-9】绘制星形曲线

【例11-9】绘制星形曲线

【例11-9】用PSet方法在窗体上绘制一条如下图所示的星形曲线,曲线由以下参数方程决定:x=sin2t*costy=sin2t*sint其中t的取值范围为0≤t≤2π

第28页:【例11-9】绘制星形曲线(代码2)

【例11-9】绘制星形曲线(代码2)

Private Sub Form_Click() Scale (-1, 1)-(1,-1)DrawWidth = 2ForeColor = vbRed For t = 0 To 2 * 3.1415926 Step 0.001x = Sin(2 * t) * Cos(t)y = Sin(2 * t) * Sin(t) P Set (x, y) Next t End Sub

第29页:Line方法的格式

Line方法的格式

  • 1)]–[Step](x2, y
  • 2)[,<颜色>[,B[F]]]功能:在指定两点之间用指定的颜色画线或矩形说明:<对象名>—窗体、图片框,缺省为当前窗体。Step—可选的,指定相对于由CurrentX和CurrentY属性提供的当前位置的坐标。(x1, y
  • 1)—直线或矩形的起点坐标。如果省略,线起始于由CurrentX和CurrentY指示的位置。Step—可选的,指定相对于起点的终点坐标。(x2, y
  • 2)—直线或矩形的终点坐标。<颜色>—画线时用的RGB颜色。B—利用对角坐标画出矩形。F—规定矩形以矩形边框的颜色填充。11.3.2画线、矩形方法(Line)

第30页:【例11-10】绘制直线与矩形

【例11-10】绘制直线与矩形

【例11-10】单击窗体在窗体上绘制直线、矩形。

Private Sub Form_Click()ScaleWidth = 100ScaleHeight = 100DrawWidth = 5'画三角形 Line (10, 30)-(10, 80), vbRedLine-(30, 80), vbGreenLine-(10, 30), vbBlue'画矩形CurrentX = 40: CurrentY = 30Line-(60, 80), vbRed, B'画实心矩形CurrentX = 70: CurrentY = 30Line-Step(20, 50), vbMagenta, BF End Sub

第31页:【例11-11】给星形曲线绘制坐标线

【例11-11】给星形曲线绘制坐标线

。

Private Sub Form_Click() Scale (-1, 1)-(1,-1)DrawWidth = 3 Line (-1, 0)-(1, 0), vbBlue Line (0, 1)-(0,-1), vbBlueDrawWidth = 1 For i =-1 To 1 Step 0.1 Line (i, 0.05)-(i, 0)'画垂直刻度 Next iDrawWidth = 2ForeColor = vbRed For t = 0 To 2 * 3.1415926 Step 0.001x = Sin(2 * t) * Cos(t)y = Sin(2 * t) * Sin(t) P Set (x, y) Next t: End Sub

第32页:11.3.3 画圆方法

11.3.3 画圆方法

  • , 2
  • ]。指定弧或扇形的起点和终点位置。起点的缺省值是0;终点的缺省值是2
  • 。若为负,在画弧的同时画圆心到弧端点的连线。<纵横比>—圆的纵横尺寸比。缺省值为1.0(标准圆)

第33页:Circle方法的注意

Circle方法的注意

注意:

Circle方法总是沿逆时针方向绘图。【例11-13】在窗体上绘制以下图形: Const pi = 3.14159265ScaleWidth = 100ScaleHeight = 100 Circle (30, 30), 10 Circle (70, 30), 10, vbGreen, , , 0.5 Circle (70, 30), 10, vbRed, , , 2 Circle (30, 75), 10, ,-0.75 * pi,-0.25 * pi Circle (70, 75), 10, ,-0.25 * pi,-0.75 * pi Circle (70, 75), 10, , 1.25 * pi, 1.75 * pi

第34页:【例11-14】绘制扇形图形

【例11-14】绘制扇形图形

【例11-14】在窗体上绘制以下图形:x轴y轴450450

第35页:【例11-14】绘制扇形图形(代码)

【例11-14】绘制扇形图形(代码)

Private Sub Form_Click()FillStyle = 0'定义填充风格—Solid Scale (0, 100)-(100, 0)cx = 50'圆心X坐标cy = 0'圆心Y坐标r = 60'半径 For i = 45 To 130 Step 5 If i Mod 10 <> 0 ThenFillColor = vbRed ElseFillColor = vbYellow End If Circle (cx, cy), r, ,-i * 3.1416 / 180,-(i + 5) *3.1416 / 180 Next i End Sub

第36页:11.4 绘图相关属性事件方法

11.4 绘图相关属性事件方法

  • (1)Cls的功能受AutoRedraw的影响。
  • (2)调用Cls之后,对象的CurrentX和CurrentY属性复位为0。举例:程序11-5:下雪

第37页:线宽属性DrawWidth

线宽属性DrawWidth

  • 设置图形方法输出的线宽。
  • 线宽的取值范围从1到32767。
  • 该值以像素为单位表示线宽。缺省值为1,即一个像素宽。
  • 如果DrawWidth属性值大于1,画出的图形是实线;如果DrawWidth属性值等于1,可以通过DrawStyle属性画出各种线型。2.线型属性DrawStyle设置图形方法输出的线型。11.4.2线宽属性和线型属性

第38页:线型属性DrawStyle

线型属性DrawStyle

DrawStyle = 0DrawStyle = 1DrawStyle = 2DrawStyle = 3DrawStyle = 4DrawStyle = 5DrawStyle = 6透明

第39页:填充颜色与填充样式

填充颜色与填充样式

1.填充颜色属性FillColor改变填充图形的颜色。2.填充样式属性FillStyle设置封闭图形的填充样式。见P253表11-7。

下图是各种填充样式:11.4.3填充颜色属性和填充样式属性

第40页:AutoRedraw属性的作用

AutoRedraw属性的作用

使用如Print、PSet、Line和Circle方法,在改变对象大小或隐藏在另一个对象后又重新显示的情况下,设置AutoRedraw为True,将在Form或PictureBox控件中自动重绘输出。

运行时在程序中设置AutoRedraw,可以在画持久图形(如背景色或网格)和临时图形之间切换。如果设置AutoRedraw为True,以前的输出成为背景屏幕的一部分。

将AutoRedraw设置为False后,用Cls方法清除绘图区时不会删除背景图形。把AutoRedraw改回True后,再用Cls将清除背景图形。

11.4.4自动重画(AutoRedraw)属性

第41页:Paint事件的使用

Paint事件的使用

在应用程序运行时,当一个对象被移动或改变大小之后;或当一个覆盖该对象的窗体被移开之后,如果要保持该对象上所画图形的完整性(重现原来的图形),可以选择触发Paint事件来完成图形的重画工作。

如果AutoRedraw属性被设置为True,重新绘图将会自动进行,此时Paint事件无效。使用Refresh方法时,Paint事件即被自动调用。

在Resize事件过程中调用Refresh方法,强制使用Paint事件重画图形。11.4.5Paint事件

第42页:本章小结

本章小结

  • ScaleLeft和ScaleTop属性
  • ScaleWidth和ScaleHeight属性
  • Scale方法2.Left、Top、Width、Height属性和ScaleLeft、ScaleTop、ScaleHeight、ScaleWidth属性的区别3.颜色RGB函数QBColor函数

第43页:第11章 小结(续)

第11章 小结(续)

4.图形控件Shape控件Line控件5.绘图方法画点方法PSet画直线、矩形方法Line画圆方法Circle6.与绘图有关的常用属性、事件和方法清除图形方法(Cls)DrawWidth和DrawStyle属性FillColor属性和FillStyle属性自动重画(AutoRedraw)属性Paint事件

顶部目录