第8章 图形图像处理精选文档.ppt

上传人:石*** 文档编号:69738982 上传时间:2023-01-08 格式:PPT 页数:62 大小:2.84MB
返回 下载 相关 举报
第8章 图形图像处理精选文档.ppt_第1页
第1页 / 共62页
第8章 图形图像处理精选文档.ppt_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《第8章 图形图像处理精选文档.ppt》由会员分享,可在线阅读,更多相关《第8章 图形图像处理精选文档.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第8 8章章 图形图像处理图形图像处理本讲稿第一页,共六十二页本章综合举例本章综合举例1.1.绘制柱状图、饼状图等图形。绘制柱状图、饼状图等图形。举例举例1 1:本讲稿第二页,共六十二页本章综合举例本章综合举例举例举例2 2:本讲稿第三页,共六十二页本章综合举例本章综合举例2.2.使用鼠标绘制图形使用鼠标绘制图形举例:举例:本讲稿第四页,共六十二页本章综合举例本章综合举例3.3.生成校验码生成校验码本讲稿第五页,共六十二页本章知识的其他应用本章知识的其他应用4.4.本章知识的典型应用本章知识的典型应用 (1)(1)绘制天气预报图绘制天气预报图 (2)(2)绘制财务软件中各种类型的图。绘制财务

2、软件中各种类型的图。(3)(3)某些管理系统中的销售、库存等各种统计制图。某些管理系统中的销售、库存等各种统计制图。例如:某公司近两年来月收支结余走势图(单位:万元例如:某公司近两年来月收支结余走势图(单位:万元)本讲稿第六页,共六十二页8.18.1图形图像绘制基础知识图形图像绘制基础知识GDI+GDI+简介简介GDI+GDI+:Graphics Device Interface(Graphics Device Interface(图形设备接口图形设备接口),它提,它提供了高级图形图像处理功能。供了高级图形图像处理功能。在在C#C#中,通过一套部署为托管代码的类来展现提供的图形图中,通过一套部

3、署为托管代码的类来展现提供的图形图像处理功能,这套类被称为像处理功能,这套类被称为GDI+GDI+的托管类。利用的托管类。利用GDI+GDI+的托管的托管类可以轻松实现颜色渐变、透明处理、纹理处理、拉伸和缩类可以轻松实现颜色渐变、透明处理、纹理处理、拉伸和缩放等多种高级功能。放等多种高级功能。GDI+GDI+主要提供了三类服务:主要提供了三类服务:1.1.二维矢量图形处理二维矢量图形处理 2.2.二维图像处理二维图像处理 3.3.文字显示文字显示本讲稿第七页,共六十二页8.1.1 GDI+8.1.1 GDI+概述(续)概述(续).NET.NET框架提供的类框架提供的类1.System.Draw

4、ing1.System.Drawing名称空间名称空间提供了对提供了对GDI+GDI+基本图形功能的访问,主要有基本图形功能的访问,主要有GraphicsGraphics类类BitmapBitmap类、从类、从BrushBrush类继承的类、类继承的类、FontFont类、类、IconIcon类、类、ImageImage类、类、PenPen类、类、ColorColor类等。类等。2.System.Drawing.Drawing2D2.System.Drawing.Drawing2D名称空间名称空间提供了高级的二维和矢量图形处理功能。主要有:梯度型画提供了高级的二维和矢量图形处理功能。主要有:梯

5、度型画刷、刷、MatrixMatrix类(用于定义几何变换)和类(用于定义几何变换)和GraphicsPathGraphicsPath类等。类等。3.System.Drawing.Imaging3.System.Drawing.Imaging名称空间名称空间 提供了高级图像处理功能。提供了高级图像处理功能。4.System.Drawing.Text4.System.Drawing.Text名称空间名称空间 提供了高级字体和文本排版功能提供了高级字体和文本排版功能 本讲稿第八页,共六十二页8.1.1 GDI+8.1.1 GDI+概述(续)概述(续)基本结构基本结构PointPoint表示某个特定

6、位置相对于原点的水平和垂直距离。例如:表示某个特定位置相对于原点的水平和垂直距离。例如:Point p=new Point(1,1);Point p=new Point(1,1);SizeSize也有两个整型属性来表示水平和垂直距离也有两个整型属性来表示水平和垂直距离WidthWidth和和HeightHeight。例如:例如:Size s=new Size(5,5);Size s=new Size(5,5);RectangleRectangle用来指定矩形的坐标,它由一个用来指定矩形的坐标,它由一个PointPoint和一个和一个SizeSize组成,其组成,其中中PointPoint表示矩

7、形左上角,表示矩形左上角,SizeSize表示矩形大小。表示矩形大小。本讲稿第九页,共六十二页8.1.1 GDI+8.1.1 GDI+概述(续)概述(续)基本结构基本结构例如:例如:1)1)在构造函数中分别指定在构造函数中分别指定x x坐标、坐标、y y坐标、宽度和高度。坐标、宽度和高度。RectangleRectangle r1=new r1=new RectangleRectangle(1,2,5,6);(1,2,5,6);2)2)在构造函数中指定在构造函数中指定PointPoint位置和位置和SizeSize结构。结构。PointPoint p=new p=new PointPoint(

8、1,2);(1,2);SizeSize s=new s=new SizeSize(5,6);(5,6);RectangleRectangle r2=new r2=new RectangleRectangle(p,s);(p,s);本讲稿第十页,共六十二页8.1.1 GDI+8.1.1 GDI+概述(续)概述(续)坐标系坐标系默认情况下,坐标系的原点在绘图设备的左上角,默认情况下,坐标系的原点在绘图设备的左上角,x x轴正轴正方向水平向右,方向水平向右,y y轴正方向水平垂直向下。轴正方向水平垂直向下。默认绘图单位为像素。也可以指定其他绘图单位。默认绘图单位为像素。也可以指定其他绘图单位。本讲稿

9、第十一页,共六十二页8.1.2 Graphics8.1.2 Graphics类类 绘制图形图像前,首先必须创建绘制图形图像前,首先必须创建GraphicsGraphics对象,然后利用这个对象,然后利用这个对象绘制直线、曲线、椭圆等图形图像。对象绘制直线、曲线、椭圆等图形图像。有三种常见的创建有三种常见的创建GraphicsGraphics对象的方法。对象的方法。1.1.在在窗体或控件的窗体或控件的PaintPaint事件事件中获取中获取GraphicsGraphics对象。例如:对象。例如:private void Form1_Paint(private void Form1_Paint()

10、Graphics g=e.Graphics;Graphics g=e.Graphics;本讲稿第十二页,共六十二页8.1.2 Graphics8.1.2 Graphics类(续)类(续)2.2.通通过过当当前前窗窗体体的的CreateGraphicsCreateGraphics方方法法,把把当当前前窗窗体体的的画画笔笔、字字体、颜色作为默认值,获取对体、颜色作为默认值,获取对GraphicsGraphics对象的引用。例如:对象的引用。例如:Graphics g=this.CreateGraphics();Graphics g=this.CreateGraphics();3.3.从继承自图像的

11、任何对象创建从继承自图像的任何对象创建GraphicsGraphics对象,例如:对象,例如:Bitmap myBitmap=new Bitmap myBitmap=new Bitmap(C:mytest1PicsmyPic.bmp);Bitmap(C:mytest1PicsmyPic.bmp);Graphics g=Graphics.FromImage(myBitmap);Graphics g=Graphics.FromImage(myBitmap);本讲稿第十三页,共六十二页8.1.3 8.1.3 颜色颜色 颜色封装在颜色封装在System.Drawing.ColorSystem.Draw

12、ing.Color结构中。人眼可以分辨的任何结构中。人眼可以分辨的任何颜色都是由一定的红、绿、蓝三色光组成。任何一种颜色都可以颜色都是由一定的红、绿、蓝三色光组成。任何一种颜色都可以有四个分量:有四个分量:R R:红色,取值范围:红色,取值范围02550255,0 0表示没有红色成分,表示没有红色成分,255255为饱和红色;为饱和红色;G G:绿色,取值范围:绿色,取值范围02550255,0 0表示没有绿色成分,表示没有绿色成分,255255为饱和绿色;为饱和绿色;B B:蓝色,取值范围:蓝色,取值范围02550255,0 0表示没有蓝色成分,表示没有蓝色成分,255255为饱和蓝色;为饱

13、和蓝色;A A:AlphaAlpha值,即透明度,取值范围值,即透明度,取值范围02550255,0 0表示完全透明,表示完全透明,255255表表示完全不透明。示完全不透明。本讲稿第十四页,共六十二页8.1.3 8.1.3 颜色(续)颜色(续)在代码中声明颜色的方式常用有两种:在代码中声明颜色的方式常用有两种:1.1.调用静态方法调用静态方法Color.FromArgb()Color.FromArgb()指定任意颜色指定任意颜色,这种方法有两种常这种方法有两种常用形式。用形式。第一种形式为直接指定三种颜色,方法原型为:第一种形式为直接指定三种颜色,方法原型为:Public static Co

14、lor FromArgb(int red,int green,int Public static Color FromArgb(int red,int green,int blue)blue);三个参数分别表示三个参数分别表示R R、G G、B B三色,三色,AlphaAlpha值使用默认值值使用默认值255255,即完全不,即完全不透明。例如:透明。例如:Color red=Color.FromArgb(255,0,0);Color red=Color.FromArgb(255,0,0);第二种形式为四个参数,方法原型为:第二种形式为四个参数,方法原型为:Public static Colo

15、r FromArgb(int alpha,int red,int Public static Color FromArgb(int alpha,int red,int green,int blue)green,int blue);四个参数分别表示透明度、四个参数分别表示透明度、R R、G G、B B三色值。三色值。本讲稿第十五页,共六十二页8.1.3 8.1.3 颜色(续)颜色(续)2.2.系统预定义颜色系统预定义颜色 System.Drawing.ColorSystem.Drawing.Color结结构构中中提提供供了了许许多多静静态态性性,每每个个属属性性返返回回一一个个命命名名颜颜色色,

16、在在ColorColor结结构构中中已已经经预预定定义义了了141141种种颜颜色色,可可以直接使用。例如:以直接使用。例如:this.BackColor=Color.White;this.BackColor=Color.White;本讲稿第十六页,共六十二页8.1.4 Paint8.1.4 Paint事件事件任何一个控件(包括窗体),系统都提供了对应的任何一个控件(包括窗体),系统都提供了对应的PaintPaint事件。事件。如果在控件的如果在控件的PaintPaint事件中利用传递的参数获取事件中利用传递的参数获取GraphicsGraphics对象,则绘对象,则绘制的图形图像仅在该控件内

17、显示。制的图形图像仅在该控件内显示。在各种绘制命令中,坐标原点都是相对的。在各种绘制命令中,坐标原点都是相对的。例如例如(1 1)在控件的)在控件的PaintPaint事件中绘制,控件的左上角为事件中绘制,控件的左上角为(0,0)(0,0)点。点。(2 2)在窗体的)在窗体的PaintPaint事件中绘制,事件中绘制,(0,0)(0,0)点在窗体的左上角。点在窗体的左上角。本讲稿第十七页,共六十二页8.2 8.2 绘制基本图形绘制基本图形8.2.1 8.2.1 创建画笔创建画笔 画笔:画笔是画笔:画笔是PenPen类的实例,用于绘制各种基本图形。类的实例,用于绘制各种基本图形。下面的示例说明如

18、何创建一支基本的蓝色画笔:下面的示例说明如何创建一支基本的蓝色画笔:Pen myPen=new Pen(Color.Blue)Pen myPen=new Pen(Color.Blue);Pen myPen=new Pen(Color.Blue,10.5f)Pen myPen=new Pen(Color.Blue,10.5f);也可以从画刷对象创建画笔对象,例如:也可以从画刷对象创建画笔对象,例如:SolidBrush myBrush=new SolidBrush(Color.Red)SolidBrush myBrush=new SolidBrush(Color.Red);Pen myPen=n

19、ew Pen(myBrush)Pen myPen=new Pen(myBrush);Pen myPen=new Pen(myBrush,5)Pen myPen=new Pen(myBrush,5);创创建建画画笔笔后后,即即可可使使用用它它来来绘绘制制直直线线、曲曲线线或或空空心心的的轮轮廓廓形形状状。还还可可以以修修改改画画笔笔的的各各种种属属性性,例例如如使使用用【WidthWidth】属属性性修修改改画画笔笔的的宽宽度;度;本讲稿第十八页,共六十二页8.2.2 8.2.2 绘制直线绘制直线所有绘制图形的方法都位于所有绘制图形的方法都位于GraphicsGraphics中。中。1 1绘制直

20、线的方法绘制直线的方法DrawLineDrawLine方法:绘制一条直线,常用形式:方法:绘制一条直线,常用形式:1)1)绘制一条连接指定绘制一条连接指定两个两个PointPoint结构的线。结构的线。public void public void DrawLineDrawLine(Pen pen,Point pt1,Point pt2)(Pen pen,Point pt1,Point pt2)其中,其中,PenPen对象确定线条的颜色、宽度和样式;对象确定线条的颜色、宽度和样式;PointPoint结构确定起点和终点。结构确定起点和终点。2)2)绘制一条由坐标对绘制一条由坐标对指定的两个点指

21、定的两个点的线。的线。public void public void DrawLineDrawLine(Pen pen,int x1,int y1,int x2,int y2)(Pen pen,int x1,int y1,int x2,int y2)其中,其中,PenPen对象确定线条的颜色、宽度和样式;对象确定线条的颜色、宽度和样式;x1,y1x1,y1为起点坐标,为起点坐标,x2,y2x2,y2为终点坐标。为终点坐标。本讲稿第十九页,共六十二页8.2.2 8.2.2 绘制直线绘制直线1 1绘制直线的方法(续)绘制直线的方法(续)DrawLinesDrawLines方法的常用语法为方法的常用

22、语法为public void DrawLines(public void DrawLines(PenPen pen,pen,Point Point points)points)其中,其中,PenPen对象对象确定线条的颜色、宽度和样式;确定线条的颜色、宽度和样式;数组数组中的第一个点指定起始点,后面的每个点都以中的第一个点指定起始点,后面的每个点都以 相临的前一个点为起始点组成线段。相临的前一个点为起始点组成线段。本讲稿第二十页,共六十二页8.2.2 8.2.2 绘制直线绘制直线2 2定义画笔线帽定义画笔线帽在在.NET.NET框架中,有一个框架中,有一个LineCapLineCap枚举,该枚

23、举用于指定系统预定义的线帽,枚举,该枚举用于指定系统预定义的线帽,例如圆形、方形、三角形、菱形、箭头等。例如圆形、方形、三角形、菱形、箭头等。在在System.Drawing.Drawing2DSystem.Drawing.Drawing2D命名空间下,有一个命名空间下,有一个AdjustableArrowCapAdjustableArrowCap类,类,利用该类可以自定义箭头线帽的形状。利用该类可以自定义箭头线帽的形状。AdjustableArrowCapAdjustableArrowCap arrow=arrow=new new AdjustableArrowCapAdjustableAr

24、rowCap(8,10,false);(8,10,false);Pen myPen=new Pen(Color.Blue,2);Pen myPen=new Pen(Color.Blue,2);myPen.CustomEndCap=arrow;myPen.CustomEndCap=arrow;通过设置画笔的通过设置画笔的【CustomStartCapCustomStartCap】属性或者属性或者【CustomEndCapCustomEndCap】属性属性来自定义画笔线帽的形状和大小。来自定义画笔线帽的形状和大小。本讲稿第二十一页,共六十二页8.2.2 8.2.2 绘制直线绘制直线3 3自定义坐标

25、系自定义坐标系默认情况下默认情况下(1)(1)屏幕坐标是以屏幕左上角为屏幕坐标是以屏幕左上角为(0,0)(0,0)点点(2)(2)向右为向右为x x轴正方向轴正方向,向下为向下为y y轴正方向。轴正方向。坐标平移坐标平移GraphicsGraphics类提供的类提供的TranslateTransformTranslateTransform方法可实现坐标平方法可实现坐标平移。移。TranslateTransformTranslateTransform方法的常用形式为方法的常用形式为public void public void TranslateTransformTranslateTransfo

26、rm(float dx,float dy)(float dx,float dy)其中,其中,dxdx表示平移的表示平移的x x分量,分量,dydy表示平移的表示平移的y y分量。分量。本讲稿第二十二页,共六十二页8.2.2 8.2.2 绘制直线绘制直线【例例8-18-1】用毫米作为度量单位,绘制一条数学上使用的坐标轴,即用毫米作为度量单位,绘制一条数学上使用的坐标轴,即让坐标系的原点位于窗体中心,横向从左到右为让坐标系的原点位于窗体中心,横向从左到右为x x正方向,纵向从正方向,纵向从下到上为下到上为y y轴正方向,然后在此坐标系统下绘制一条从轴正方向,然后在此坐标系统下绘制一条从(0,0)(

27、0,0)点点到到(20,20)(20,20)的直线。的直线。运行效果如下:运行效果如下:本讲稿第二十三页,共六十二页8.2.2 8.2.2 绘制直线绘制直线【例例8-28-2】利用利用DrawLinesDrawLines方法和将根据正弦函数计算出来的多个点方法和将根据正弦函数计算出来的多个点之间用直线依次相连,构成正弦曲线显示出来。之间用直线依次相连,构成正弦曲线显示出来。设计界面和运行界面如下:设计界面和运行界面如下:本讲稿第二十四页,共六十二页8.2.3 8.2.3 矩形矩形 绘制矩形的方法:绘制矩形的方法:(1 1)根据指定的矩形结构)根据指定的矩形结构public void publi

28、c void DrawRectangleDrawRectangle(Pen pen,Rectangle rect)(Pen pen,Rectangle rect)(2 2)通过矩形的左上角坐标)通过矩形的左上角坐标(x,y)(x,y)和宽、高和宽、高 public void public void DrawRectangleDrawRectangle (Pen pen,int x,int y,int width,int height)(Pen pen,int x,int y,int width,int height)(3 3)矩形数组)矩形数组rectsrects来绘制多个矩形来绘制多个矩形p

29、ublic void public void DrawRectanglesDrawRectangles(Pen pen,Rectangle rects)(Pen pen,Rectangle rects)本讲稿第二十五页,共六十二页8.2.3 8.2.3 矩形矩形 【例例8-38-3】演示矩形的绘制方法。演示矩形的绘制方法。运行效果如下:运行效果如下:本讲稿第二十六页,共六十二页8.2.4 8.2.4 多边形多边形多边形多边形:是由:是由3 3条或条或3 3条以上的边组成的闭合图形。条以上的边组成的闭合图形。例如:三角形、矩形、五边形和六边形等都属于多边形。例如:三角形、矩形、五边形和六边形等都

30、属于多边形。DrawPolygonDrawPolygon方法:绘制多边形的轮廓方法:绘制多边形的轮廓DrawPolygonDrawPolygon方法一般用于绘制多边形的轮廓,该方法常用形式方法一般用于绘制多边形的轮廓,该方法常用形式如下:如下:public void DrawPolygon(Pen pen,Point points)public void DrawPolygon(Pen pen,Point points)本讲稿第二十七页,共六十二页8.2.4 8.2.4 多边形多边形【例例8-48-4】演示多边形的绘制方法。演示多边形的绘制方法。设计界面和运行效果如下:设计界面和运行效果如下:

31、本讲稿第二十八页,共六十二页8.2.5 8.2.5 曲线曲线1.1.DrawCurveDrawCurve方法方法:用光滑的曲线把给定的点连接起来,常用形式有:用光滑的曲线把给定的点连接起来,常用形式有:1)public void DrawCurve(Pen pen,Point points)1)public void DrawCurve(Pen pen,Point points)其中,其中,PointPoint结构类型的数组中指明各节点,默认弯曲强度结构类型的数组中指明各节点,默认弯曲强度 为为0.50.5。注意,数组中至少要有。注意,数组中至少要有3 3个元素。个元素。2)public vo

32、id DrawCurve(Pen pen,Point points,2)public void DrawCurve(Pen pen,Point points,float tension)float tension)其中,其中,tensiontension指定弯曲强度,该值范围为指定弯曲强度,该值范围为0.0f-1.0f0.0f-1.0f,超出,超出 此范围会产生异常。当弯曲强度为零时,就是直线。此范围会产生异常。当弯曲强度为零时,就是直线。本讲稿第二十九页,共六十二页8.2.5 8.2.5 曲线(续)曲线(续)2.DrawClosedCurve2.DrawClosedCurve方法方法 通过连

33、接数组中节点画一个平滑的曲线,此方法会自动把首通过连接数组中节点画一个平滑的曲线,此方法会自动把首尾节点连接起来构成尾节点连接起来构成封闭曲线封闭曲线。注意数组中的节点至少要有。注意数组中的节点至少要有3 3个点个点组成,默认弯曲强度为组成,默认弯曲强度为0.50.5。1)public void DrawClosedCurve(Pen pen,1)public void DrawClosedCurve(Pen pen,Point points)Point points)其中,其中,PointPoint结构类型的数组中指明各节点。结构类型的数组中指明各节点。2)public void DrawC

34、losedCurve(Pen pen,Point 2)public void DrawClosedCurve(Pen pen,Point points,float tension FillMode fillmode)points,float tension FillMode fillmode)其中,其中,fillmodefillmode指明曲线封闭区域内以何种方式填充。指明曲线封闭区域内以何种方式填充。本讲稿第三十页,共六十二页8.2.5 8.2.5 曲线(续)曲线(续)3.3.贝塞尔曲线贝塞尔曲线 每段贝塞尔曲线由每段贝塞尔曲线由4 4个点组成,两个端点(个点组成,两个端点(p1p1为起点,

35、为起点,p2p2为终点)为终点)和两个控制点(和两个控制点(c1c1和和c2c2)。曲线不经过控制点,但是控制点如同)。曲线不经过控制点,但是控制点如同一个磁体吸引曲线,影响并引导曲线向某个方向拉伸。一个磁体吸引曲线,影响并引导曲线向某个方向拉伸。本讲稿第三十一页,共六十二页8.2.5 8.2.5 曲线(续)曲线(续)1)DrawBezier1)DrawBezier方法:绘制一段贝塞尔曲线的,常用形式:方法:绘制一段贝塞尔曲线的,常用形式:public void DrawBezier(Pen pen,Point pt1public void DrawBezier(Pen pen,Point p

36、t1,Point Point pt2pt2,Point pt3Point pt3,Point pt4)Point pt4)其中其中pt1pt1、pt2pt2、pt3pt3和和pt4pt4分别指定四个点。分别指定四个点。2)DrawBeziers2)DrawBeziers方法:绘制多段贝塞尔曲线,常用形式:方法:绘制多段贝塞尔曲线,常用形式:public void DrawBezier(Pen pen,Point points)public void DrawBezier(Pen pen,Point points)其中其中pointspoints是是PointPoint结构的数组,第一段贝塞尔曲

37、线由点数组结构的数组,第一段贝塞尔曲线由点数组中的第中的第1-41-4个点绘制而成。以后每段曲线只需要个点绘制而成。以后每段曲线只需要3 3个点:个点:2 2个控个控制点和一个结束点。前一段曲线的结束点会自动被用作后一段制点和一个结束点。前一段曲线的结束点会自动被用作后一段曲线的起始点。曲线的起始点。本讲稿第三十二页,共六十二页8.2.5 8.2.5 曲线(续)曲线(续)【例例8-5 8-5】绘制曲线示例。绘制曲线示例。本讲稿第三十三页,共六十二页8.2.6 8.2.6 绘制椭圆和扇形绘制椭圆和扇形1.1.绘制椭圆(绘制椭圆(DrawEllipseDrawEllipse方法)方法)1)1)给定

38、椭圆左上角坐标和椭圆的外接矩形的宽度和高度给定椭圆左上角坐标和椭圆的外接矩形的宽度和高度 public void DrawEllipse(Pen pen,int x,int y,int width,public void DrawEllipse(Pen pen,int x,int y,int width,int height)int height);其中,其中,penpen为为PenPen对象,对象,x,yx,y为椭圆外接矩形左上角的坐标,为椭圆外接矩形左上角的坐标,widthwidth定义椭圆外接矩形的宽度,定义椭圆外接矩形的宽度,heightheight定义椭圆外接矩形的高度。定义椭圆外接

39、矩形的高度。2)2)给定椭圆外接矩形的结构给定椭圆外接矩形的结构 public void DrawEllipse(Pen pen,Rectangle rect)public void DrawEllipse(Pen pen,Rectangle rect);其中,其中,rectrect为为RectangleRectangle结构,用于确定椭圆的边界。结构,用于确定椭圆的边界。本讲稿第三十四页,共六十二页8.2.6 8.2.6 绘制椭圆和扇形绘制椭圆和扇形2 2.绘制扇形(绘制扇形(DrawPieDrawPie方法)方法)1)public void Drawpie(Pen pen,int x,in

40、t y,1)public void Drawpie(Pen pen,int x,int y,int width,int height,int startAngle,int sweepAngle)int width,int height,int startAngle,int sweepAngle);其中,其中,penpen 为为PenPen对象,对象,x,yx,y为椭圆外接左上角的坐标,为椭圆外接左上角的坐标,width width 定义扇形外接矩形的宽度,定义扇形外接矩形的宽度,height height 定义扇形外接矩形的高度,定义扇形外接矩形的高度,startAngle startAngl

41、e 为起始角度(以度为单位),为起始角度(以度为单位),sweepAnglesweepAngle 为延伸角度。为延伸角度。2)public void DrawPie(Pen pen,Rectangle rect,2)public void DrawPie(Pen pen,Rectangle rect,float startAngle,float sweepAngle)float startAngle,float sweepAngle);其中,其中,rectrect为为RectangleRectangle结构,用于确定扇形的外接矩形。结构,用于确定扇形的外接矩形。本讲稿第三十五页,共六十二页8.

42、2.6 8.2.6 绘制椭圆和扇形绘制椭圆和扇形【例例8-68-6】演示椭圆和扇形的绘制方法。演示椭圆和扇形的绘制方法。运行效果如下:运行效果如下:本讲稿第三十六页,共六十二页8.3 8.3 填充图形填充图形对于封闭的图形:对于封闭的图形:封闭图形包括矩形、椭圆、多边形、封闭的曲线、扇形等基本图形。封闭图形包括矩形、椭圆、多边形、封闭的曲线、扇形等基本图形。DrawDraw方法绘制方法绘制以以“FillFill”为前缀的方法完成填充,例如:为前缀的方法完成填充,例如:与椭圆对应的填充方法为与椭圆对应的填充方法为FillEllipseFillEllipse方法。方法。与多边形对应的填充方法为与多

43、边形对应的填充方法为FillPolygonFillPolygon方法等。方法等。本讲稿第三十七页,共六十二页8.3.1 8.3.1 画刷(续)画刷(续)画刷(画刷(BrushBrush)画刷是可以与画刷是可以与GraphicsGraphics对象一起使用来创建实心形状和呈现文本的对象。可以用对象一起使用来创建实心形状和呈现文本的对象。可以用来填充各种图形形状,如矩形、椭圆、饼型图和多边形等。下表列出了几种不同来填充各种图形形状,如矩形、椭圆、饼型图和多边形等。下表列出了几种不同类型的画刷。类型的画刷。类说明SolidBrush用纯色填充图形LinearGradientBrush用颜色线性渐变填

44、充图形HatchBrush用各种图案填充图形TextureBrush用基于光栅的图像(位图、JPG等)填充图形PathGradientBrush用渐变效果填充图形路径本讲稿第三十八页,共六十二页8.3.2 8.3.2 单色画刷单色画刷1)1)使用使用SolidBrushSolidBrush类定义单色画刷类定义单色画刷 SolidBrushSolidBrush类类用用于于定定义义单单色色画画刷刷。该该类类可可以以填填充充图图形形,比比如如矩矩形形、椭椭圆、多边形和路径。例如:圆、多边形和路径。例如:SolidBrushSolidBrush solidBrush=new solidBrush=ne

45、w SolidBrushSolidBrush(Color.Red);(Color.Red);RectangleRectangle r=new r=new RectangleRectangle(5,10,100,100);(5,10,100,100);g.g.FillEllipseFillEllipse(solidBrush,r);(solidBrush,r);本讲稿第三十九页,共六十二页8.3.2 8.3.2 单色画刷单色画刷【例例8-78-7】单色画刷演示示例。单色画刷演示示例。运行结果如右图所示:运行结果如右图所示:本讲稿第四十页,共六十二页8.3.3 8.3.3 创建渐变画刷(续)创建渐

46、变画刷(续)2 2)使用)使用LinearGradientBrushLinearGradientBrush类定义线性渐变类定义线性渐变 LinearGradientBrush LinearGradientBrush对象用颜色线性渐变填充图形。提供了三种构造对象用颜色线性渐变填充图形。提供了三种构造函数:函数:(1)(1)提供两个点和两种颜色。提供两个点和两种颜色。Public LinearGradientBrush(Point point1,Point point2,Public LinearGradientBrush(Point point1,Point point2,Color color

47、1,Color color2)Color color1,Color color2)(2)(2)提供一个矩形和一个角度。提供一个矩形和一个角度。Public LinearGradientBrush(Rectangle rect,Color Public LinearGradientBrush(Rectangle rect,Color color1,Color color2,float angle)color1,Color color2,float angle)(3)(3)指定渐变的模式。指定渐变的模式。Public LinearGradientBrush Public LinearGradien

48、tBrush (Rectangle rect,Color color1,Color color2,(Rectangle rect,Color color1,Color color2,LinearGradientMode linearGradientMode)LinearGradientMode linearGradientMode)本讲稿第四十一页,共六十二页8.3.3 8.3.3 渐变画刷(续)渐变画刷(续)【例例8-8 8-8】颜色渐变效果。颜色渐变效果。运行效果:运行效果:本讲稿第四十二页,共六十二页8.3.4 8.3.4 填充阴影填充阴影3 3)使用)使用HatchBrushHatch

49、Brush类填充简单图案类填充简单图案 HatchBrushHatchBrush类提供的画刷可以用各种图案填充图形。通过类提供的画刷可以用各种图案填充图形。通过HatchHatch类型可以设置影线样式。在创建影线的画刷时,能设定前类型可以设置影线样式。在创建影线的画刷时,能设定前景色、背景色和影线样式。有景色、背景色和影线样式。有5656种不同的影线样式枚举,该枚举种不同的影线样式枚举,该枚举可以参看可以参看System.Drawing.Drawing2D.HatchStyleSystem.Drawing.Drawing2D.HatchStyle枚举。枚举。例如:例如:HatchStyle.H

50、orizontalHatchStyle.Horizontal水平线的图案水平线的图案HatchStyle.ForwardDiagonalHatchStyle.ForwardDiagonal从左上到右下的对角线的线条图案从左上到右下的对角线的线条图案HatchStyle.DiagonalBrickHatchStyle.DiagonalBrick 具有分层砖块外观的阴影具有分层砖块外观的阴影HatchStyle.Shingle HatchStyle.Shingle 带有对角分层鹅卵石外观的阴影带有对角分层鹅卵石外观的阴影HatchStyle.SphereHatchStyle.Sphere具有球体彼

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁