第九章 图形处理及多媒体
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 PresentationTRANSCRIPT
第九章 图形处理及多媒体 第九章 图形处理及多媒体 第九章 图形处理及多媒体 第九章 图形处理及多媒体
9.1 9.1 图形处理
9.2 9.2 多媒体应用
掌握掌握
窗体的 ScaleMode属性 色彩常量,色彩函数 绘图控件: shape和 line 绘图方法: Pset,Line,Circle,Cls 图片框,图像控件 鼠标事件:MouseDown,MouseUp,MouseMove 鼠标事件过程参数: Button,Shift,X,Y
重点重点• 绘图方法: Pset,Line,Circle,Cls
9.1 图形处理
VB 的坐标系统 绘图属性 使用绘图控件 绘图方法(点,线和圆) 清除图形 使用图片框 Visual Basic的鼠标事件
Visual Basic下的图象处理技术,包括绘图,色彩,动画,三维空间,虚拟现实,甚至计算机仿真的基础。听起来很诱人的东西往往需要大量不诱人的知识,本章是这些奇妙东西的入门。
VB可以利用绘图方法在窗体或某容器类对象上画图。也可以用绘图控件画图。
其多媒体控件可以让你感受动画、声音等。
9.1 图形处理9.1 图形处理
VB 的坐标系统VB 的坐标系统
(1) VB(1) VB坐标系坐标系
• 系统坐标系(屏幕坐标)
• “ ”容器坐标系统( 窗体坐标 )
窗体中调整、移动控件时,使用容器的坐标系统。
• 位置用 Left, Top属性描述。
• Left表示控件左上角到窗体左边的距离
• Top表示控件左上角到窗体上边的距离。
窗体中调整、移动控件时,使用容器的坐标系统。
• 位置用 Left, Top属性描述。
• Left表示控件左上角到窗体左边的距离
• Top表示控件左上角到窗体上边的距离。
VB 的坐标系统VB 的坐标系统
(2)(2)改变默认坐标系改变默认坐标系 ((利用窗体的 Scale系列属性 )
ScaleLeft属性:确定对象左边的水平坐标;
ScaleTop属性:确定对象顶端的垂直坐标;
ScaleWidth属性:确定对象内部水平的单元数目;
ScaleHeight属性:确定对象内部垂直的单元数目。
如: ScaleLeft = -50 : ScaleTop = 50
ScaleWidth = 100 : ScaleHeight = -100• 利用窗体的 Scale方法
如: Form1.Scale (-50, 50) - (50, -50)
其中 :前括号指左上角坐标,后括号指右下角坐标
刻度系统由控件的 ScaleMode属性设置的。 ScaleMode的值有:ScaleMode 值 意义 0 用户自定义 1 点素( Twip “ ” 即 特维 ,缺省刻度) 2 点( Point ) 3 象素( Pixel,这与屏幕分辨率有关) 4 字符( Character ) 5 英寸( Inch) 6 毫米(Millimeter) 7 厘米( Centimeter )
(3) (3) 刻度系统刻度系统
VB 的坐标系统VB 的坐标系统
(1) (1) 当前坐标当前坐标• 对象:窗体、图形框等。
• 属性: CurrentX、 CurrentY,该属性设计阶段不可用
• 绝对坐标 : (x,y)
• 相对坐标: step ( x, y)
(2) (2) 线宽线宽• 窗体、图形框或打印机的 DrawWidth属性给出这些对象上所画线的宽度或点的大小。
• DrawWidth属性以像素为单位来度量,最小值为 1。
绘图属性绘图属性
(3) (3) 线型(线型( DrawStyleDrawStyle))
绘图属性绘图属性
(4) (4) 填充填充 封闭图形的填充方式由以下两个属性决定:
• FillColor指定填充图案的颜色,缺省值与 ForeColor相同•FillStyle属性指定填充的图案,共有 8种内部图案。
DrawStyle设置值 线型 0 实线 1 长划线 2 点线 3 点划线 4 点点划线 5 透明线 6 内实线
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) 色彩色彩
绘图属性绘图属性
(1)Shape控件: Shape控件可以用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形,通过 Shape属性可确定所需要的几何形状。(默认为矩形)
设置值 描述 0-Rectangl e 矩形
1-Square 正方形 2-Oval 椭圆
3-Ci rcl e 圆 4-Round Rectangl e 圆角矩形
5-Round Square 圆角正方形
绘图控件绘图控件
Shape控件的属性属性名 功能
Name 对象引用名
Shape 设置图形形状
BackCol or 设置图形背景色 Fi l l Col or 设置图形填充色 Fi l l Styl e 设置图形底纹的 8种样式
BorderCol or 设置图形边框色
Borderwi dth 设置边框宽度
BorderStyl e 设置边框的 7种样式
绘图控件绘图控件
例 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控件举例
(2) Line控件:绘制直线属性见下表:
属性名 功能 Name 对象引用名
BorderCol or 设置线的颜色 BorderStyl e 设置线的 7种样式(P206) Borderwi dth 设置线的宽度
X1 线段端点 1的 X坐标 Y1 线段端点 1的 Y坐标 X2 线段端点 2的 X坐标 Y2 线段端点 2的 Y坐标
绘图控件绘图控件
例 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控件举例
绘图方法绘图方法
(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
(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参数的前提下使用 )。
绘图方法绘图方法
Private Sub Command1_Click() Line (1500, 500)-(2500,750) Line -(1750, 1500) Line -(1500, 500) End Sub
Line方法绘制三角形Line方法绘制三角形
(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 均取负值 均取负值
绘图方法绘图方法
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
清除图形:清除图形: [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]
小结:设定坐标,利用绘图控件(方法)画画。小结:设定坐标,利用绘图控件(方法)画画。
绘图方法绘图方法
图片框图片框
1、使用 picture属性显示图片
2、使用 loadpicture加载图片 (运行时 )
loadpicture([fname],[size],[coloredpth],[x,y])
3、使用 paintpicture方法
[object.]paintpicture picture,dx,dy[,dw[,dh[,sx[,
鼠标事件鼠标事件
VB系统除了能捕获 Click和 Dbl Click以外,还可以
捕获鼠标按钮的按下、释放和移动。即引发鼠标的
MouseDown,MouseUp,MouseMove等事件。
⑵⑵鼠标事件使用的参数鼠标事件使用的参数
MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
指示哪个鼠标键触发了鼠标事件
判断在按键的同时 ,是否按下了 Shift、 Alt或 Ctrl键
鼠标指针的位置
⑴ ⑴ 鼠标事件及触发条件鼠标事件及触发条件
• MouseDownMouseDown事件事件:按下任意鼠标按键时触发
• MouseUpMouseUp事件事件:释放任意鼠标按键时触发
• MouseMoveMouseMove事件事件 :鼠标移动过程中时触发
鼠标事件鼠标事件
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
示例:检测用户按下了鼠标的哪个键?
鼠标事件鼠标事件
1. 1. 使用动画控件(使用动画控件( Animation)Animation) (1) (1) 功能功能
“用于播放无声的 .avi”的数字电影文件。 (2) (2) 添加部件添加部件 ——部件 Microsoft Windows Common Controls-2 6.0
(3) (3) 常用属性常用属性• Center:设为 True,可确保播放的画面位于动画控件的中间位置。
• Autoplay:用于设定已打开的动画文件的自动播放。
多媒体应用多媒体应用
VB中与多媒体有关的控件有两个,都是 ActiveX控件。一个是动画控件,另一个是媒体控制控件。
(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-----关闭文件
2. 2. 多媒体控件多媒体控件(1)(1)多媒体控件多媒体控件 (Multimedia MCI)(Multimedia MCI)
用于管理,控制各种MCI (Media Contol Interface )设备的控件。它提供了一组控制按钮,可以通过这些按钮控制和管理声卡 、 CD-ROM、 VCD播放器等设备。
(2)(2)添加部件添加部件 第一步 :工程 /部件 第二步 :部件 第三步 : “ ”在 控件 列表框中选定 Microsoft Multimedia Control 6.0
多媒体应用多媒体应用
(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”
多媒体应用多媒体应用