第九章 图形处理及多媒体

29
第第第 第第第第第第第第第第 第第第第第第第9.1 9.1 图图图图 9.2 9.2 图图 图图

Upload: vevay

Post on 07-Jan-2016

97 views

Category:

Documents


7 download

DESCRIPTION

第九章 图形处理及多媒体. 9.1 图形处理 9.2 多媒体应用. 掌握. 窗体的 ScaleMode 属性 色彩常量,色彩函数 绘图控件: shape 和 line 绘图方法: Pset,Line,Circle,Cls 图片框,图像控件 鼠标事件: MouseDown,MouseUp,MouseMove 鼠标事件过程参数: Button,Shift,X,Y. 重点. 绘图方法: Pset,Line,Circle,Cls. 9.1 图形处理. VB 的坐标系统 绘图属性 使用绘图控件 绘图方法(点,线和圆) 清除图形 使用图片框 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第九章 图形处理及多媒体

第九章 图形处理及多媒体 第九章 图形处理及多媒体 第九章 图形处理及多媒体 第九章 图形处理及多媒体

9.1 9.1 图形处理

9.2 9.2 多媒体应用

Page 2: 第九章 图形处理及多媒体

掌握掌握

窗体的 ScaleMode属性 色彩常量,色彩函数 绘图控件: shape和 line 绘图方法: Pset,Line,Circle,Cls 图片框,图像控件 鼠标事件:MouseDown,MouseUp,MouseMove 鼠标事件过程参数: Button,Shift,X,Y

重点重点• 绘图方法: Pset,Line,Circle,Cls

Page 3: 第九章 图形处理及多媒体

9.1 图形处理

VB 的坐标系统 绘图属性 使用绘图控件 绘图方法(点,线和圆) 清除图形 使用图片框 Visual Basic的鼠标事件

Page 4: 第九章 图形处理及多媒体

Visual Basic下的图象处理技术,包括绘图,色彩,动画,三维空间,虚拟现实,甚至计算机仿真的基础。听起来很诱人的东西往往需要大量不诱人的知识,本章是这些奇妙东西的入门。

VB可以利用绘图方法在窗体或某容器类对象上画图。也可以用绘图控件画图。

其多媒体控件可以让你感受动画、声音等。

9.1 图形处理9.1 图形处理

Page 5: 第九章 图形处理及多媒体

VB 的坐标系统VB 的坐标系统

(1) VB(1) VB坐标系坐标系

• 系统坐标系(屏幕坐标)

• “ ”容器坐标系统( 窗体坐标 )

窗体中调整、移动控件时,使用容器的坐标系统。

• 位置用 Left, Top属性描述。

• Left表示控件左上角到窗体左边的距离

• Top表示控件左上角到窗体上边的距离。

窗体中调整、移动控件时,使用容器的坐标系统。

• 位置用 Left, Top属性描述。

• Left表示控件左上角到窗体左边的距离

• Top表示控件左上角到窗体上边的距离。

Page 6: 第九章 图形处理及多媒体

VB 的坐标系统VB 的坐标系统

(2)(2)改变默认坐标系改变默认坐标系 ((利用窗体的 Scale系列属性 )

ScaleLeft属性:确定对象左边的水平坐标;

ScaleTop属性:确定对象顶端的垂直坐标;

ScaleWidth属性:确定对象内部水平的单元数目;

ScaleHeight属性:确定对象内部垂直的单元数目。

如: ScaleLeft = -50 : ScaleTop = 50

ScaleWidth = 100 : ScaleHeight = -100• 利用窗体的 Scale方法

如: Form1.Scale (-50, 50) - (50, -50)

其中 :前括号指左上角坐标,后括号指右下角坐标

Page 7: 第九章 图形处理及多媒体

刻度系统由控件的 ScaleMode属性设置的。 ScaleMode的值有:ScaleMode 值 意义 0 用户自定义 1 点素( Twip “ ” 即 特维 ,缺省刻度) 2 点( Point ) 3 象素( Pixel,这与屏幕分辨率有关) 4 字符( Character ) 5 英寸( Inch) 6 毫米(Millimeter) 7 厘米( Centimeter )

(3) (3) 刻度系统刻度系统

VB 的坐标系统VB 的坐标系统

Page 8: 第九章 图形处理及多媒体

(1) (1) 当前坐标当前坐标• 对象:窗体、图形框等。

• 属性: CurrentX、 CurrentY,该属性设计阶段不可用

• 绝对坐标 : (x,y)

• 相对坐标: step ( x, y)

(2) (2) 线宽线宽• 窗体、图形框或打印机的 DrawWidth属性给出这些对象上所画线的宽度或点的大小。

• DrawWidth属性以像素为单位来度量,最小值为 1。

绘图属性绘图属性

Page 9: 第九章 图形处理及多媒体

(3) (3) 线型(线型( DrawStyleDrawStyle))

绘图属性绘图属性

(4) (4) 填充填充 封闭图形的填充方式由以下两个属性决定:

• FillColor指定填充图案的颜色,缺省值与 ForeColor相同•FillStyle属性指定填充的图案,共有 8种内部图案。

DrawStyle设置值 线型 0 实线 1 长划线 2 点线 3 点划线 4 点点划线 5 透明线 6  内实线

Page 10: 第九章 图形处理及多媒体

VB采用对象前景色( ForeColor)来绘图

• RGB函数格式: RGBRGB(红,绿,蓝)(红,绿,蓝)其中: 红、绿、蓝三基色的成分使用 0~255之间的整数,共有 256×256×256种颜色

• QBColor函数格式: QBColorQBColor(颜色码)(颜色码)其中: 颜色码使用 0~15之间的整数,共有 16色 例: Label1.forecolor=RGB(255,0,0) Label1.forecolor=vbred

(5) (5) 色彩色彩

绘图属性绘图属性

Page 11: 第九章 图形处理及多媒体

(1)Shape控件: Shape控件可以用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形,通过 Shape属性可确定所需要的几何形状。(默认为矩形)

设置值 描述 0-Rectangl e 矩形

1-Square 正方形 2-Oval 椭圆

3-Ci rcl e 圆 4-Round Rectangl e 圆角矩形

5-Round Square 圆角正方形

绘图控件绘图控件

Page 12: 第九章 图形处理及多媒体

Shape控件的属性属性名 功能

Name 对象引用名

Shape 设置图形形状

BackCol or 设置图形背景色 Fi l l Col or 设置图形填充色 Fi l l Styl e 设置图形底纹的 8种样式

BorderCol or 设置图形边框色

Borderwi dth 设置边框宽度

BorderStyl e 设置边框的 7种样式

绘图控件绘图控件

Page 13: 第九章 图形处理及多媒体

例 9-1:图形变换程序Private Sub Form_Load( )‘ 初始化,确定图形的颜色及初始形状 Dim r As Integer, g As Integer, b As Integer Randomize r = Int(Rnd * 256) ‘红色 g = Int(Rnd * 256) ’绿色 b = Int(Rnd * 256) ‘兰色 Shape1.FillStyle = 0 ’填充样式设置为实心 Shape1.FillColor = RGB(r, g, b) ’填充色 r = Int(Rnd * 256) g = Int(Rnd * 256) b = Int(Rnd * 256) Shape1.BorderColor = RGB(r, g, b) ‘边框颜色 Shape1.Shape = 0 ‘设置图形的样式End Sub

Private Sub form_click() Static i As Integer i = i + 1 If i <= 5 Then Shape1.Shape = i Else i = 0 Shape1.Shape = i End IfEnd Sub

Shape控件举例Shape控件举例

Page 14: 第九章 图形处理及多媒体

(2) Line控件:绘制直线属性见下表:

属性名 功能 Name 对象引用名

BorderCol or 设置线的颜色 BorderStyl e 设置线的 7种样式(P206) Borderwi dth 设置线的宽度

X1 线段端点 1的 X坐标 Y1 线段端点 1的 Y坐标 X2 线段端点 2的 X坐标 Y2 线段端点 2的 Y坐标

绘图控件绘图控件

Page 15: 第九章 图形处理及多媒体

例 9-2:转动的指针程序Private Sub Form_Load() Line1.BorderColor = RGB(255, 0, 0) Line1.BorderWidth = 2 Timer1.Interval = 1000End Sub

Private Sub Timer1_Timer() Static a As Integer Dim x As Single, y As Single Const pi = 3.14159265 a = a Mod 360 x = 1000 * Sin(a * pi / 180) y = (-1) * 1000 * Cos(a * pi / 180) Line1.X2 = x + 2160 Line1.Y2 = y + 1440 Line1.Refresh a = a + 6End Sub

Line控件举例Line控件举例

Page 16: 第九章 图形处理及多媒体

绘图方法绘图方法

(1) Pset(1) Pset方法:方法:用于画点

格式: [object.]Pset[Step](x,y)[,[object.]Pset[Step](x,y)[, 颜色颜色 ]]

其中: objec “ ”是用于绘图板的 容器 对象名,如在本窗体画点,可

以省去, (x,y)为点的坐标; Step表示采用采用相对坐标;

注:采用背景颜色可清除某个位置上的点。

举例: PSet (1000, 1000), vbRed Picture1.PSet (1000, 2000), vbBlue PSet (1000, 1000)

PSet (1000, 1000), PSet (1000, 1000), BackColorBackColor

Page 17: 第九章 图形处理及多媒体

(2) Line(2) Line方法方法::用于画直线或矩形

语法 : [object.][object.]Line Line [[Step](x1,y1)] - [Step](x2,y2) [,Color][[Step](x1,y1)] - [Step](x2,y2) [,Color]说明: Color:指定画线颜色 Step:用来指出要画出的点与前一点的相对位置

• 示例:绘制一个任意三角形• 示例:绘制一个任意三角形说明:说明: Form1. CurrentX = 2000Form1. CurrentX = 2000

Form1. CurrentY = 2000Form1. CurrentY = 2000

语法 : [object.]Line [[Step](x1,y1)] - [Step](x2,y2) [object.]Line [[Step](x1,y1)] - [Step](x2,y2)

[,Color] [,Color] ,B[F],B[F] 说明: B:利用给定坐标画矩形 .(使用时其前两个逗号不可省 )。

F:规定矩形的填充颜色 ( 在使用 B参数的前提下使用 )。

绘图方法绘图方法

Page 18: 第九章 图形处理及多媒体

Private Sub Command1_Click() Line (1500, 500)-(2500,750) Line -(1750, 1500) Line -(1500, 500) End Sub

Line方法绘制三角形Line方法绘制三角形

Page 19: 第九章 图形处理及多媒体

(3) Circle(3) Circle方法:方法:用于画圆、椭圆、圆弧和扇形

• [[对象对象 .] Circle [Step](x,y),.] Circle [Step](x,y),半径半径 [,Color] [,Color] [start],[end],[,aspect][start],[end],[,aspect]

参数: start:指定弧的起点位置 默认值为 0. end: 指定弧的终点位置 ,默认值为 2π. Aspect: 大于 1时,椭圆沿垂直方向拉长;当小于 1时,椭圆沿水平方向拉长。默认值为 1,将产生一个标准圆 .

• 扇形:扇形: startstart和和 endend 均取负值 均取负值

绘图方法绘图方法

Page 20: 第九章 图形处理及多媒体

Circle方法举例Circle方法举例

Private Sub Command1_Click() form1.Circle (1200, 1000), 750, vbRed Circle Step(0,0),Step(0,0), 850, RGB(200, 0,255)End Sub

Page 21: 第九章 图形处理及多媒体

清除图形:清除图形: [object.]cls[object.]cls

在图形中加入文本:在图形中加入文本: 例:例: currentX=1908currentX=1908

currentY=1908currentY=1908

Print Print ”” “输出位置“输出位置比较记忆:点、线和圆的语法比较记忆:点、线和圆的语法 点: 点: [[对象对象 .]Pset[Step](x,y)[,.]Pset[Step](x,y)[,颜色颜色 ]] 线: 线: [[对象对象 .]Line [[Step](x1,y1)] - [Step](x2,y2) [,Color].]Line [[Step](x1,y1)] - [Step](x2,y2) [,Color] 圆: 圆: [[对象对象 .] Circle [Step](x,y),.] Circle [Step](x,y),半径半径 [,Color][,Color]

小结:设定坐标,利用绘图控件(方法)画画。小结:设定坐标,利用绘图控件(方法)画画。

绘图方法绘图方法

Page 22: 第九章 图形处理及多媒体

图片框图片框

1、使用 picture属性显示图片

2、使用 loadpicture加载图片 (运行时 )

loadpicture([fname],[size],[coloredpth],[x,y])

3、使用 paintpicture方法

[object.]paintpicture picture,dx,dy[,dw[,dh[,sx[,

Page 23: 第九章 图形处理及多媒体

鼠标事件鼠标事件

VB系统除了能捕获 Click和 Dbl Click以外,还可以

捕获鼠标按钮的按下、释放和移动。即引发鼠标的

MouseDown,MouseUp,MouseMove等事件。

Page 24: 第九章 图形处理及多媒体

⑵⑵鼠标事件使用的参数鼠标事件使用的参数

MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

指示哪个鼠标键触发了鼠标事件

判断在按键的同时 ,是否按下了 Shift、 Alt或 Ctrl键

鼠标指针的位置

⑴ ⑴ 鼠标事件及触发条件鼠标事件及触发条件

• MouseDownMouseDown事件事件:按下任意鼠标按键时触发

• MouseUpMouseUp事件事件:释放任意鼠标按键时触发

• MouseMoveMouseMove事件事件 :鼠标移动过程中时触发

鼠标事件鼠标事件

Page 25: 第九章 图形处理及多媒体

Private Sub Form_MouseDown(Button As Integer, Shift As

Integer, X As Single, Y As Single)

If Button = vbRightButton Then Print “你按下鼠标右键 "

If Button = vbLeftButton Then Print “ ”你按下鼠标左键End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As

Integer, X As Single, Y As Single)

If Button = vbRightButton Then Print “你按下鼠标右键 "

If Button = vbLeftButton Then Print “ ”你按下鼠标左键End Sub

示例:检测用户按下了鼠标的哪个键?

鼠标事件鼠标事件

Page 26: 第九章 图形处理及多媒体

1. 1. 使用动画控件(使用动画控件( Animation)Animation) (1) (1) 功能功能

“用于播放无声的 .avi”的数字电影文件。 (2) (2) 添加部件添加部件 ——部件 Microsoft Windows Common Controls-2 6.0

(3) (3) 常用属性常用属性• Center:设为 True,可确保播放的画面位于动画控件的中间位置。

• Autoplay:用于设定已打开的动画文件的自动播放。

多媒体应用多媒体应用

VB中与多媒体有关的控件有两个,都是 ActiveX控件。一个是动画控件,另一个是媒体控制控件。

Page 27: 第九章 图形处理及多媒体

(4) (4) 常用方法常用方法• Open---打开播放文件格式: Object.Open fname

• Play----用于进行播放格式: Object.Play [repeat][,start][,end]其中: repeat:重复播放的次数 start:起始播放的桢; end:停止播放的桢例如: animat1.play 5,9,24

多媒体应用多媒体应用

表示:使用名为 animat1的动画控件要把已打开“的 .avi”文

件的第 10幅画到第 25幅画面重复播放 5遍。

• Stop-----停止播放 一般形式:Object.stop

• Close-----关闭文件

Page 28: 第九章 图形处理及多媒体

2. 2. 多媒体控件多媒体控件(1)(1)多媒体控件多媒体控件 (Multimedia MCI)(Multimedia MCI)

用于管理,控制各种MCI (Media Contol Interface )设备的控件。它提供了一组控制按钮,可以通过这些按钮控制和管理声卡 、 CD-ROM、 VCD播放器等设备。

(2)(2)添加部件添加部件 第一步 :工程 /部件 第二步 :部件 第三步 : “ ”在 控件 列表框中选定 Microsoft Multimedia Control 6.0

多媒体应用多媒体应用

Page 29: 第九章 图形处理及多媒体

(3) (3) 主要属性主要属性 ::• Enabled:使该控件有效• Visible:使该控件可见• DeviceType:设置多媒体控件所要管理的设备类型• AutoEnable:为 True时,自动激活 DeviceType所指定的设备。• FileName:指定MCI所要使用的文件名称• Command:在运行时使用,指定需要执行的MCI命令

(4) MCI(4) MCI命令命令 它是通过一套高层的与设备无关的命令来控制多媒体设备的。主要命令如表 9-7所示 (p223)。 格式:Mmcontrol1.Command=Mmcontrol1.Command=““commandnamecommandname””

例如: Mmcontrol1.Command=“Open”

多媒体应用多媒体应用