Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)

上传人:E**** 文档编号:89397928 上传时间:2019-05-24 格式:PPT 页数:33 大小:679KB
返回 下载 相关 举报
Visual C#.NET程序设计教程 第2版  工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)_第1页
第1页 / 共33页
Visual C#.NET程序设计教程 第2版  工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)_第2页
第2页 / 共33页
Visual C#.NET程序设计教程 第2版  工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)_第3页
第3页 / 共33页
Visual C#.NET程序设计教程 第2版  工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)_第4页
第4页 / 共33页
Visual C#.NET程序设计教程 第2版  工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)》由会员分享,可在线阅读,更多相关《Visual C#.NET程序设计教程 第2版 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 罗福强 白忠建 杨剑 C# Ch14(人邮)(33页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,第十四章 网络应用编程技术,1. 总体要求 了解GDI+的组成和工作机制,了解System.Drawing命名空间; 理解画面Graphics、钢笔Pen、画笔Brush和颜料Color的关系,掌握创建Graphics、Pen、Brush对象方法; 学会绘制各种图形的方法(包括点、线条、典线、弧线、拆线、矩形、椭圆、多边形等),掌握图像和文本的呈现方法; 了解Media Player组件对象模型,掌握其使用方法。 2. 学习重点 GDI+的应用。 Media Player组件的使用。,第14章 网络应用编程技术,主要内容,14.2,GDI+绘图,Media Player组件

2、的使用,14.1 GDI+绘图,14.1.1 GDI+概述 14.1.2 创建Graphics对象 14.1.3 颜料、钢笔和画笔 14.1.4 线条与图形的绘制 14.1.5 图像和文本的绘制 14.1.6 坐标系统及变换,返回,14.1.1 GDI+概述,1. GDI+的概念 GDI即图像设备接口,是早期Windows操作系统的一个可执行程序GDI.exe。GDI+是其升级版本。 GDI+也是一种应用程序编程接口(API),统一在.Net Framework中封装和定义,使用GDI+编写的绘图程序只能运行于具有.Net Framework的计算机之中。,2. GDI+ 的组成,(1)二维矢

3、量图形 (2)图像处理 (3)图文混排,3. System.Drawing命名空间,该命令空间包含了大约40个类和6个结构体。其中,Graphics类是整个GDI+的核心,它是实际进行线条、曲线、图形、图像和文本绘制的画面。 其他数类需要和Graphics类配合使用。 在System.Drawing之中,常用的类见表14-1,常用的结构见表14-2,14.1.2 创建Graphics对象,1. 使用CreateGraphics方法创建 例如,假设有一个用于显示图片的Panel控件,其Name属性为picShow,以下代码: Graphics g = picShow.GreateGraphics

4、(); 2. 在Paint事件中创建Graphics对象。 例如,假设某个窗体对象为myForm,以下代码: private void myForm_Paint(object sender,PaintEventArgs e) Graphics g = e.Graphics; /其他代码 ,14.1.3 颜料、钢笔和画笔,在GDI+中,颜料为Color型变量,代表选中的特定颜色;钢笔为Pen的实例,用来绘制线条和空心形状;画笔是Brush的实例,用来填充形状或绘制文本。 1. 选择颜色 Color是结构体,是一种 ARGB 颜色(即alpha、红色、绿色、蓝色,其中alpha代表透明度) 例如:

5、Color c = ColorFromArgb(120, 255, 0, 0);,2. 创建钢笔 钢笔用来绘制线条和空心形状。调用Pen类的构造函数即可创建钢笔对象。其构造函数为: Pen(Color color,float width)。 3. 创建画笔 画笔用来填充形状或绘制文本。注意,Brush是一个抽象类,只能通过派生类来创建画笔对象。,创建各种画笔的示例见教材,14.1.4 线条与图形的绘制,1. 点 点是一个Point结构体,它由坐标值x和y共同组成。 例如,以下代码: Point p = new Point(100,100); 2. 线条 线条是钢笔Pen在起始点和结束点之间产生

6、的连线。调用Graphics对象的DrawLine方法可以绘制线条。格式如下: DrawLine(Pen pen,Point p1,Point p2); DrawLine(Pen pen,int x1,int y1,int x2,int y2) ;,案例演示,【实例14-1】设计一个Windows应用程序,在窗体之中绘制线条,要求:线条绘制从按下鼠标时开始直到释放鼠标时结束,可选择线条宽度,可修改线条的颜色。效果如图14-2所示。,源代码见教材,3. 折线、弧线、抛物线,(1)折线实际上是一系列连接在一起的线条。调用Graphics对象的DrawLines方法即可绘制折线。该方法的格式如下:

7、DrawLines(Pen pen,PointF points) (2)绘制弧线可调用Graphics对象的DrawArc方法。该方法的格式如下: DrawArc(Pen pen,float x,float y,float width,float height, float startAngle,float sweepAngle) (3)绘制抛物线可借助二次函数,通过迭代,不断地生成终点坐标而重新绘制。,4. 图形,图形通常代表一种闭合的形状,包括矩形、椭圆、扇形和任意多边形。Graphics对象提供了一系列绘制图形的方法,包括:DrawEllipse 、DrawLines 、DrawPie

8、、DrawPolygon 、DrawRectangle 、DrawRectangles 、FillEllipse 、FillPie 、FillPolygon 、FillRectangle、FillRectangles 、FillRegion (1)矩形 DrawRectangle(Pen pen,float x,float y,float width,float height) DrawRectangle(Pen pen,Rectangle rect) FillRectangle(Brush brush,float x,float y,float width,float height) Fil

9、lRectangle(Brush brush,RectangleF rect),(2)椭圆 例如,以下代码 SolidBrush sBrush = new SolidBrush(Color.Red) ; Rectangle rect = new Rectangle(10,10,100,50); g. FillEllipse(sBrush,rect); (3)扇形 例如,以下代码: HatchBrush hBrush = new HatchBrush(HatchStyle.Cross,Color.Blue,Color.Olive); Rectangle rect = new Rectangle(

10、100, 10, 100, 50); g.FillPie(hBrush, rect, 45, 270);,(4)多边形,例如,以下代码: HatchBrush hBrush = new HatchBrush(HatchStyle.Cross,Color.Blue,Color.Olive); Point points = new Point(10,10), new Point(10,100), new Point(100,50) ; g.FillPolygon(hBrush, points);,案例演示,【实例14-2】设计一个Windows程序,在窗体中绘制任意曲线。要求:按下鼠标键并拖动鼠标

11、绘制曲线,释放鼠标时终止绘制。,源代码见教材,14.1.5 图像和文本的绘制,1. 呈现图像 使用时,可先创建一个Image类的对象,以封装将要呈现的图像文件信息,然后创建Graphics对象并调用其DrawImage方法,把Image对象输出。 注意,Image类是一个抽象类,只能通过其成员方法FromFile或者其派生类Bitmap或Metafile类的构造函数创建Image对象。,例如,设g为已存在的Graphics对象,则以下代码: Image imgShow = Image.FromFile(“d:Picture1.jpg“); float width = 200; /设置呈现宽度

12、float rate = width / imgShow.Width; /计算缩放比例 float height = imgShow.Height * rate; /根据缩放比计算呈现高度 RectangleF rec = new RectangleF(0,0,width,height); /创建呈现区域 g.DrawImage(imgShow, rec); /呈现图像,2. 绘制格式化文本,只需调用Graphics对象的DrawString方法即可实现。该方法的格式如下: DrawString(string s,Font font,Brush brush,PointF point) Draw

13、String(string s,Font font,Brush brush,RectangleF layoutRectangle) public void DrawString(string s,Font font, Brush brush, PointF point, StringFormat format),案例演示,【实例14-3】设计一个Windows程序,先输入任意文本再以渐变色输出。要求:允许更改字体、颜色和布局方式,运行效果如图所示。,14.1.6 坐标系统及变换,1. 坐标系统 GDI+ 使用3个坐标空间:全局坐标、页面坐标和设备坐标。其中,全局坐标是一种逻辑坐标,可以描述图形

14、元素在抽象画面中的逻辑位置、宽度或高度。页面坐标是指在具体画面上(如窗体或控件)使用的坐标系。设备坐标是物理设备(如显示屏)所使用的坐标系。在调用Graphics对象的绘图方法时,所传递的坐标值通常为全局坐标。GDI+在绘图前会进行一系列变换,包括将全局坐标转换为页面坐标,再将页面坐标转换为设备坐标,最终在物理设备上呈现图形。,2. 不同坐标系统间的换算,GDI+具有自动实现不同坐标系统间的坐标转换的功能。在程序中,只需调用TranslateTransform函数即可实现从全局坐标到页面坐标的转换。 Graphics 类提供了两个属性: PageUnit 和 PageScale,用于操作页面坐

15、标与物理坐标间的换算;另外还提供了两个只读属性:DpiX 和 DpiY,用于检查显示设备每英寸的水平像点数和垂直像点数。可使用 Graphics 类的 PageUnit 属性指定除像素以外的其他度量单位。,3. 全局变形和局部变形,(1)全局变形 全局变形应用于给定的Graphics对象绘制的每个图形的变形。它保存在 Graphics 类的 Transform 属性中。该属性是Matrix矩阵对象,能保存全局变形的任何序列。 因此,要创建全局变形,要先创建Graphics对象,再操作其Transform 属性。 Graphics类还提供建立全局变形的几个方法,包括MuliplyTransfor

16、m、RotateTransform、ScaleTransform和TranslateTransform。 其中,RotateTransform用于旋转变形,ScaleTransform用于缩放变形,TranslateTransform用于平移图形元素。,(2)局部变形 局部变形应用于特定的图形的变形。局部变形借助GraphicsPath类和Matrix类实现。GraphicsPath用来保存要变形的目标,Matrix指定变形方式。 局部变形的步骤如下: 首先,构造GraphicsPath对象,再调用其成员方法(如AddRectangle)添加要变形的目标; 然后,构造Matrix对象,调用其成员方法(如Ratate)指定变形方式; 之后,再调用GraphicsPath对象的Transform方法将变形矩阵应用到变形目标; 最后,调用Graphics的DrawPath方法根据已构造的GraphicsPath绘制图形。,案例演示,【实例14-4】设计一个Windows程序,在窗体中绘制一个椭圆和一个矩形,实现如下功能:能够同时平移、旋转、缩放这两个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号