1、第 11 章 图形和图像文库帮手网 免费帮下载 百度文库积分 资料本文由 starwxy94 贡献ppt 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。第 11 章 图形和图像 章Visual Basic 之所以广受欢迎 ,除了方便的控件、美观的图形 用户界面之外,还在于其强大的绘图功能支持,VB 的绘图功能使 得应用程序的画面更加多姿多彩。在 VB 中处理图形相当方便。既 可以使用形状控件、直线控件制作规则图形 ,又可以使用内建的 绘图方法绘制图形 ,还可以使用窗体、图片框、图像框有关控件 来处理各种格式的图形文件。111 绘制图形 112 显示图片
2、113 滚动条控件 111 绘制图形 一、图形控件 二、图形的坐标系统 三、与图形有关的属性 四、使用颜色 五、绘图方法: 绘图方法: 六、绘图语句与 Paint 事件 绘图语句与 Paint 事件 Paint1Shape 控件 Shape 控件一、图形控件此控件可以制作矩形、正方形、椭圆形、圆形、圆角矩形、 此控件可以制作矩形、正方形、椭圆形、圆形、圆角矩形、圆角正方形 种形状。具体形状可由其 Shape 属性来决定: Shape 属性来决定 6 种形状。具体形状可由其 Shape 属性来决定: Shape 属性 属性: Shape 属性:形状 BoderColor 属性 属性: Boder
3、Color 属性:边界色 BorderWidth 属性 属性: BorderWidth 属性:边界宽度 BorderStyle 属性 属性: BorderStyle 属性:边界类型 FillColor 属性 属性: FillColor 属性:填充色 FillStyle 属性 属性: FillStyle 属性:填充类型2Line 控件 Line 控件用来制作直线。主要属性有: 用来制作直线。主要属性有: BoderColor 属性 属性: BoderColor 属性:边界色 BorderWidth 属性 属性: BorderWidth 属性:边界宽度 BorderStyle 属性 属性: Bor
4、derStyle 属性:边界类型 属性: X1、X2、Y1、Y2 属性:端点坐标3图形控件与动画11 例 11-1,曲柄滑块机构的演示 案例程序 1:行星的运动 案例程序 1二、图形的坐标系统1坐标单位ScaleMode 属性: ScaleMode 属性: 共 8 种。 属性 种2坐标方法缺省坐标: 缺省坐标: 对象( 窗体、 图片框) 左上角的坐标为( 水平向右为 X 对象 ( 窗体 、 图片框 ) 左上角的坐标为 ( 0 , 0 ) , 水平向右为 X 轴 , 垂直向 下为 Y 坐标单位由 ScaleMode 属性决定。 ScaleMode 属性决定 下为 Y 轴,坐标单位由 ScaleM
5、ode 属性决定。 自定义坐标: 自定义坐标: 对象.Scale(X1 Y1)-(X2, .Scale(X1, 对象.Scale(X1,Y1)-(X2,Y2) (X1 设置对象的左上角坐标,(X2 设置对象的右下角坐标。(X1,Y1)设置对象的左上角坐标,(X2,Y2)设置对象的右下角坐标。此方法 的使用,将对象在 X 方向的坐标分成 X 等分, 方向的坐标分成 Y 等分; 的使用,将对象在 X 方向的坐标分成 X2X1 等分,Y 方向的坐标分成 Y2Y1 等分; 并使 ScaleMode 属性为 0 ScaleMode 属性为 并使 ScaleMode 属性为 0!3坐标属性坐标属性有 4
6、ScaleLeft、 ScaleTop、 ScaleWidth 和 ScaleHeight。 坐标属性有 4 个 : ScaleLeft 、 ScaleTop 、 ScaleWidth 和 ScaleHeight 。 用于 改变坐标原点及该度单位的大小。 ScaleLeft 和 ScaleTop 用于设定对象左上角 改变坐标原点及该度单位的大小 。 ScaleLeft 和 ScaleTop 用于设定对象左上角 的坐标值,ScaleWidth 和 ScaleHeight 用于设定对象的标尺宽度和高度 用于设定对象的标尺宽度和高度。 的坐标值,ScaleWidth 和 ScaleHeight 用于
7、设定对象的标尺宽度和高度。 对象.Scale(X1 (X2 相当于: 对象.Scale(X1,Y1)-(X2,Y2),相当于: 对象.ScaleLeft=X1 对象.ScaleLeft=X1 对象.ScaleTop=Y1 对象.ScaleTop=Y1 对象.ScaleWidth=X2 对象.ScaleWidth=X2-X1 对象.ScaleHeight=Y2 对象.ScaleHeight=Y2-Y1三、与图形有关的属性1DrawMode 属性: 属性: 属性决定所绘图形的真实颜色。 决定所绘图形的真实颜色。2DrawWidth 属性 属性DrawWidth 是以像素为单位的线的宽度 ; 类似于
8、 Shape 控件的 BorderWidth 属性 属性。 BorderWidth 属性。3DrawStyle 属性 属性DrawStyle 决定线的虚实;类似于 Shape 控件的 BorderStyle属性。 Shape 控件的 BorderStyle 属性 DrawStyle 决定线的虚实;类似于 Shape 控件的 BorderStyle 属性。 决定线的虚实4FillColor 属性 属性设置填充颜色。 设置填充颜色。5FillStyle 属性 属性设置填充类型。 设置填充类型。四、使用颜色1颜色属性: 颜色属性:ForeColor、BackColor、FillColor、Borde
9、rColor。 ForeColor、BackColor、FillColor、BorderColor。2颜色设置: 颜色设置:RGB 函数 RGB 函数 颜色属性=RGB(Red,Green, 颜色属性=RGB(Red,Green,Blue) =RGB(Red 分量值范围为: 255,共有256 256 16777216(1600 万 种颜色。 分量值范围为:0255,共有 2563=16777216(1600 万)种颜色。 QBColor 函数 QBColor函数 颜色属性=QBColor(Color) 颜色属性=QBColor(Color) Color的取值范围为 的取值范围为: 15,对应
10、颜色见 Page232 表1113。 Page232 Color 的取值范围为:015,对应颜色见Page232 表 1113。 使用颜色常数 vbBlack 、vbRed 、vbGreen 、vbYellow 、vbBlue 、vbMagenta 、 vbCyan 、vbWhite 。 使用颜色数值 Form1 ForeColor=&HFF00 00FF 如:Form1.ForeColor=&HFF00FF Text1 BackColor=255 Text1.BackColor=2553案例程序 2: 案例程序 2一个获取渐变色颜色信息的实用工具程序电脑爱好者、2000 年第 7 一个获取渐
11、变色颜色信息的实用工具程序电脑爱好者、2000 年第 7 期 电脑爱好者 年第五、绘图方法说明:只能用于 Form 和 PictureBox! 说明:只能用于 Form和 PictureBox! Form1Pset 方法: Pset 方法: 方法用于画点。 用于画点。 对象.Pset (x,y), 对象.Pset Step (x,y),Color 案例程序 3 案例程序 3:圆的渐开线 x = Cos(t) + t * Sin(t) y = -Sin(t) + t * Cos(t)2Line 方法: Line 方法: 方法用于画直线或矩形。 用于画直线或矩形。 对象.Line Step(X1,
12、Y1), 对象.Line Step(X1,Y1)-Step(X2,Y2),Color ,BF 说明:Color 为线或边框的颜色;若只有 B 则用FillColor 来填充, 说明:Color 为线或边框的颜色;若只有 B,则用 FillColor 来填充,填 为线或边框的颜色 FillColor 来填充 充方式取决于 FillStyle FillStyle; BF 都有 则用 Color 实型填充, 都有, Color 实型填充 充方式取决于 FillStyle;若 BF 都有,则用 Color 实型填充,填充方式与 FillStyle 无关 无关。 FillStyle 无关。 案例程序 4
13、 案例程序 4:弹簧振子 案例程序 5: 案例程序 :彩色光盘五、绘图方法3Circle 方法:用于画圆、椭圆和圆弧 Circle 方法:用于画圆、 方法对象.Circle Step(x,y),Radius,Color,Start,End, 对象.Circle Step(x,y),Radius,Color,Start,End,Aspect 画圆 对象.Circle Step(x,y),Radius, 对象.Circle Step(x,y),Radius,Color 画椭圆 对象.Circle Step(x,y),Radius,Color, , , , , ,Aspect 对象.Circle S
14、tep(x,y),Radius,Color, , ,Aspect Aspect:纵横半径比,Aspect1 时 长轴位于垂直方向; Aspect:纵横半径比,Aspect1 时,长轴位于垂直方向; Aspect1 时 长轴位于水平方向。 Aspect1 时,长轴位于水平方向。 画圆弧 对象.Circle Step(x,y),Radius,Color,Start, 对象.Circle Step(x,y),Radius,Color,Start,End Start 和End 的单位为弧度 范围为-22;取负数时有中心连线; 的单位为弧度, Start 和 End 的单位为弧度,范围为-22;取负数时
15、有中心连线;0 为 3 点方 逆时针方向旋转。两者可以省去一个,默认的 Start Start 为 End 为 2。 向,逆时针方向旋转。两者可以省去一个,默认的 Start 为 0,End 为 2。 画椭圆弧 对象.Circle Step(x,y),Radius,Color,Start,End, 对象.Circle Step(x,y),Radius,Color,Start,End,Aspect4Cls 方法:清除所画图形 Cls 方法: 方法对象.Cls 对象.Cls5案例程序 6:下雪 案例程序 6六、绘图语句与 Paint 事件 绘图语句与 Paint 事件 Paint在一个对象被移动或
16、放大之后,或在一个覆盖该对象的窗体被移开之后, 在一个对象被移动或放大之后 , 或在一个覆盖该对象的窗体被移开之后, 该对象部分或全部暴露时,此事件发生。 过程, 该对象部分或全部暴露时,此事件发生。使用 Paint 过程,可以确保输出 的内容在必要时能被重绘。 的内容在必要时能被重绘。 绘制静态图形时,最好是在 Paint 事件中绘制,这样可以保证在窗口进行 Paint 事件中绘制 绘制静态图形时,最好是在 Paint事件中绘制, 切换时不至于丢失所画内容。当然也可通过设置AutoRedraw=True AutoRedraw=True 的方法实 切换时不至于丢失所画内容。当然也可通过设置 A
17、utoRedraw=True 的方法实 现自动重画。现自动重画。例 11-7,画菱形 ,111 绘制图形 一、图形控件 二、图形的坐标系统 三、与图形有关的属性 四、使用颜色 五、绘图方法: 绘图方法: 六、绘图语句与 Paint 事件 绘图语句与 Paint 事件 Paint回顾112 11显示图片在 VB 中可以借助窗体 Form、图像框控件 ImageBox、图片 VB中可以借助窗体 Form、图像框控件 ImageBox、 中可以借助窗体Form ImageBox 框控件 PictureBox 显示各种类型的图片文件,其格式可以是: 框控件 PictureBox 显示各种类型的图片文件
18、,其格式可以是: PictureBox 显示各种类型的图片文件 .bmp、.jpg、.jpeg、.gif、.cur、.ico、.wmf、.dib 等。 .bmp、.jpg、.jpeg、.gif、.cur、.ico、.wmf、.dib 等一、直接加载图片到窗体 二、使用图像控件 三、使用图片框控件 四、PaintPicture 方法(补充) PaintPicture 方法(补充) 方法一、直接加载图片到窗体窗体即可以用各种绘图方法(Pset、Line、Circle)绘制图形;也可 窗体即可以用各种绘图方法( Pset 、 Line 、 Circle ) 绘制图形; 以用于显示图片。显示图片时,
19、以用于显示图片 。 显示图片时 , 即可以在窗体设计阶段在属性窗口设置 Picture 属性 也可以在代码编写阶段用 LoadPicture 函数加载图片, 属性, LoadPicture 函数加载图片 其 Picture 属性 , 也可以在代码编写阶段用 LoadPicture 函数加载图片 , 其格式为: 其格式为: LoadPicture(文件名) LoadPicture(文件名) 文件名 若省去文件名,则清除图片。 若省去文件名,则清除图片。 如: Form1 LoadPicture(“c: 素材图片素材flower. Form1.Picture = LoadPicture(“c:素材
20、图片素材flower.jpg“) 在显示图片时窗体不如图片框和图像框方便。 在显示图片时窗体不如图片框和图像框方便。二、使用图像控件图像控件 ImageBox 不能用绘图方法绘制图形 图像控件ImageBox 不能用绘图方法绘制图形,只能用来显示 ImageBox 不能用绘图方法绘制图形, 图片。但在显示图片时所占用的系统资源比图片框要小,因此在 图片。但在显示图片时所占用的系统资源比图片框要小, 只显示图片而不绘制图形的情况下,用图像框要显得方便快捷。 只显示图片而不绘制图形的情况下,用图像框要显得方便快捷。 此外图像框的 Stretch 属性设成 True 后 此外图像框的 Stretch
21、 属性设成 True 后 , 图片的大小会自动伸缩 Stretch 属性设成 True 到图像框的大小。 到图像框的大小。 11 例 11-8,红绿灯程序三、使用图片框控件图片框具有类似于窗体显示图片、绘制图形的功能, 图片框具有类似于窗体显示图片 、 绘制图形的功能 , 但其图形 处理方面的属性和方法比窗体要丰富的多。 AutoSize 属性设 处理方面的属性和方法比窗体要丰富的多 。 如 , AutoSize 属性设 置成真后,当图片框控件比实际图片小时, 置成真后 , 当图片框控件比实际图片小时 , 图片框会自动适应图 片的尺寸; 可以用PaintPicture 方法对图片进行翻转、 P
22、aintPicture 方法对图片进行翻转 片的尺寸 ; 可以用 PaintPicture 方法对图片进行翻转 、 拉伸等处 理。1图片的显示11 例 11-9,制作简易图片浏览器2输出图形和文本 制作移动的函数曲线四、PaintPicture 方法(补充) PaintPicture 方法(补充) 方法这是一种对图形进行块操作的非常灵活方便的图形处理方法, 这是一种对图形进行块操作的非常灵活方便的图形处理方法,借助这种方法 可以对图形进行拉伸、压缩、翻转等处理。 可以对图形进行拉伸、压缩、翻转等处理。1格式: 格式:对象.PaintPicture 对象.PaintPicture ,x1,y1,
23、w1,h1,x2,y2,w2,h22说明: 说明:绘图的对象可以是窗体,也可以是图片框。 绘图的对象可以是窗体,也可以是图片框。 Picture 是图象源 可以是来自窗体、图片框或图像框中的图象。 是图象源, Picture 是图象源,可以是来自窗体、图片框或图像框中的图象。 是目标坐标, Object上从哪儿开始呈现由这一对坐标决定 上从哪儿开始呈现由这一对坐标决定。 x1,y1 是目标坐标,在 Object 上从哪儿开始呈现由这一对坐标决定。 为可以选,也可只选一个;它决定着目标图象的宽度和高度, w1 和 h1 为可以选,也可只选一个;它决定着目标图象的宽度和高度,若 省略则跟源图象中的
24、对应项相同。 省略则跟源图象中的对应项相同。 是从图象源中截取图象的起始位置坐标;若省略,则为 0 x2,y2 是从图象源中截取图象的起始位置坐标;若省略,则为 0。 是从图象源中截取图象的宽度值和高度值;若省略, w2,h2 是从图象源中截取图象的宽度值和高度值;若省略,则使用整个 源宽度或高度。 源宽度或高度。3应用: 应用:从图象源中截取图象后,进行各种处理。 从图象源中截取图象后,进行各种处理。案例程序 7 案例程序 7:静态图片的特技呈现电脑爱好者 200020 电脑爱好者 2000效果 1:推 效果 2:拉 效果 3:推出 近 拉效果 4:百叶窗 效果 5:马赛克 效果 6:拉 效
25、果 7:滚 幕 动案例程序 8 案例程序 8:圆周运动的投影案例程序 9 案例程序 9:用程序绘制美丽的花三叶玫瑰线: 三叶玫瑰线:=Asin3 =Acos3 x=cos=Asin3cos y=sin=Asin3sinO y Y xX案例程序 9 案例程序 9:用程序绘制美丽的花四叶玫瑰线 =Asin2 四叶玫瑰线 =Acos2 ?叶玫瑰线 =A sin 2112 11显示图片回顾一、直接加载图片到窗体 二、使用图像控件 三、使用图片框控件 四、PaintPicture 方法(补充) PaintPicture 方法(补充) 方法113 11滚动条控件一、滚动条的属性 二、滚动条的事件 三、滚动
26、条的应用一、滚动条的属性Min 和 Max 属性 1 Min 和 Max 属性 Value 属性 2 Value 属性 LargeChange 属性 3 LargeChange 属性 4SmallChange 属性 SmallChange 属性二、滚动条的事件Change 事件 1 Change 事件当 Value 发生变化时,就会发生 Change 事件。 Value 发生变化时,就会发生 Change 事件。 发生变化时 Change 事件Scroll 事件 2 Scroll 事件当拖动滚动框时先发生 Scroll 事件,然后发生 Change 事件。 当拖动滚动框时先发生 Scroll
27、事件,然后发生 Change 事件。 Scroll 事件 Change 事件 例:对比两个事件发生的时机 HScroll1 Private Sub HScroll1_Change() Label1 HScroll1 Label1.Caption = HScroll1.Value Label1.BackColor = RGB(HScroll1.Value, 0, 0) RGB(HScroll1 Label1 End Sub HScroll1 Private Sub HScroll1_Scroll() Label2 HScroll1 Label2.Caption = HScroll1.Value
28、Label2 RGB(HScroll1 Label2.BackColor = RGB(HScroll1.Value, 0, 0) End Sub3 说明一般情况下,两者结合使用最好! 一般情况下,两者结合使用最好!三、滚动条的应用 例 11-11,用滚动条查看超大图片 11-11, 例 11-12,用滚动条控制色彩 11-12,113 11滚动条控件一、滚动条的属性 二、滚动条的事件 三、滚动条的应用回顾第 11 章 图形和图像 章111 绘制图形 112 显示图片 113 滚动条控件 回顾作业: 作业:课后自学其它相关的案例程序 电子的运动 卡拉 OK 效果的彩虹字 卡拉 效果的彩虹字 图像淡入淡出 任意个振动的合成 课题中的 15 个课件 CAI 课题中的 个课件 课题中的1