【教学课件】第7章C#图形程序设计基础.ppt

上传人:wuy****n92 文档编号:69865965 上传时间:2023-01-10 格式:PPT 页数:49 大小:337.50KB
返回 下载 相关 举报
【教学课件】第7章C#图形程序设计基础.ppt_第1页
第1页 / 共49页
【教学课件】第7章C#图形程序设计基础.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《【教学课件】第7章C#图形程序设计基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章C#图形程序设计基础.ppt(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1第第7章章 C#图形程序设计基础图形程序设计基础7.1 GDI+绘图基础绘图基础7.2 基本图形的绘制基本图形的绘制7.3 实用图形程序设计实用图形程序设计27.1 GDI+绘图基础绘图基础7.1.1 图形设备接口图形设备接口GDI+:Graphics Device Interface Plus,它提供了各种丰富,它提供了各种丰富的图形图像处理功能的图形图像处理功能在在C#.NET中,使用中,使用GDI+处理二维(处理二维(2D)的图形和图像,)的图形和图像,使用使用DirectX处理三维(处理三维(3D)的图形图像)的图形图像 GDI+主要有二维矢量图形、图像处理和版式三部分组成主要有二维

2、矢量图形、图像处理和版式三部分组成 GDI+提供了存储基元自身相关信息的类和结构、存储基元提供了存储基元自身相关信息的类和结构、存储基元绘制方式相关信息的类,以及实际进行绘制的类绘制方式相关信息的类,以及实际进行绘制的类 GDI+为使用各种字体、字号和样式来显示文本这种复杂任为使用各种字体、字号和样式来显示文本这种复杂任务提供了大量的支持务提供了大量的支持其他高级功能其他高级功能3图形图像处理中常常调用的名称空间:图形图像处理中常常调用的名称空间:System:包括常用基础数据类型和:包括常用基础数据类型和24个子名称空间个子名称空间System.Drawing:提供了提供了对对GDI+基本基

3、本图图形功能的形功能的访问访问,主要有,主要有Graphics类类、Bitmap类类、从、从Brush类继类继承的承的类类、Font类类、Icon类类、Image类类、Pen类类、Color类类等等:提供了高级的二维和矢量图形功能。主要有梯度型画刷、:提供了高级的二维和矢量图形功能。主要有梯度型画刷、Matrix类(用于定义几何变换)和类(用于定义几何变换)和GraphicsPath类等类等:提供了高级:提供了高级 GDI+图像处理功能图像处理功能System.WinForms:提供许多与数据处理相关的结构的类:提供许多与数据处理相关的结构的类 System.Timers:提供精确的计时操作:

4、提供精确的计时操作:提供了高级:提供了高级 GDI+字体和文本排版功能字体和文本排版功能47.1.2 创建创建Graphics对象对象GraphicsGraphics类包含在类包含在System.DrawingSystem.Drawing名称空间下。要进行图形处名称空间下。要进行图形处理,必须首先创建理,必须首先创建GraphicsGraphics对象,然后才能利用它进行各种对象,然后才能利用它进行各种画图操作,即先创建画图操作,即先创建GraphicsGraphics对象再使用该对象的方法绘图、对象再使用该对象的方法绘图、显示文本或处理图像。显示文本或处理图像。创建创建GraphicsGra

5、phics对象的形式有:对象的形式有:1.1.在窗体或控件的在窗体或控件的PaintPaint事件中直接引用事件中直接引用GraphicsGraphics对象对象 每一个窗体或控件都有一个每一个窗体或控件都有一个PaintPaint事件,该事件的参数中包事件,该事件的参数中包含了当前窗体或控件的含了当前窗体或控件的GraphicsGraphics对象,对象,在为在为窗体或窗体或控件创建绘控件创建绘制代码时,一般使用此方法来获取对图形对象的引用:制代码时,一般使用此方法来获取对图形对象的引用:Private void Form_Paint(object sender,e)Graphics g=e

6、.Graphics;52.2.利用窗体或某个控件的利用窗体或某个控件的CreateGraphicsCreateGraphics方法方法此此方方法法所所建建对对象象是是该该控控件件或或窗窗体体的的绘绘图图区区域域,可可把把当当前前窗窗体体的的画刷、字体、颜色作为缺省值获取对画刷、字体、颜色作为缺省值获取对GraphicsGraphics对象的引用,对象的引用,注注意意这这种种对对象象只只有有在在处处理理当当前前WindowsWindows窗窗口口消消息息的的过过程程中中有有效效;如果想在已存在的窗体或控件上绘图,可以使用此方法。如果想在已存在的窗体或控件上绘图,可以使用此方法。例如:例如:Gra

7、phics g=this.CreatGraphics();Graphics g=this.CreatGraphics();3.3.从继承自图像的任何对象创建从继承自图像的任何对象创建GraphicsGraphics对象对象此方法在需要更改已存在的图像时十分有用,此方法在需要更改已存在的图像时十分有用,例如:例如:Bitmap bitmap=new Bitmap(”C:testa1.bmp”);Bitmap bitmap=new Bitmap(”C:testa1.bmp”);Graphics g=Graphics.FromImage(bitmap);Graphics g=Graphics.Fro

8、mImage(bitmap);6在在图图形形图图像像处处理理程程序序设设计计中中,与与GraphicsGraphics对对象象一一起起使使用用的的用用户户对象常有:对象常有:PenPen:用于绘制线条、勾勒形状轮廓等;:用于绘制线条、勾勒形状轮廓等;BrushBrush:用于填充图形区域;:用于填充图形区域;FontFont:提供有关在呈现文本时要使用什么形状的说明;:提供有关在呈现文本时要使用什么形状的说明;ColorColor:该结构表示要显示的不同颜色:该结构表示要显示的不同颜色注注意意:由由于于图图像像对对象象非非常常占占资资源源,所所以以在在不不用用这这些些对对象象时时要要用用Dis

9、poseDispose方法及时释放资源方法及时释放资源7附:附:颜色颜色颜颜色色是是进进行行图图形形操操作作的的基基本本要要素素。任任何何一一种种颜颜色色都都可可以以由由四四个个分量决定,每个分量占据一个字节:分量决定,每个分量占据一个字节:R R:红色,取值范围:红色,取值范围0 0255255,255255为饱和红色为饱和红色 G G:绿色,取值范围:绿色,取值范围0 0255255,255255为饱和绿色为饱和绿色 B B:蓝色,取值范围:蓝色,取值范围0 0255255,255255为饱和蓝色为饱和蓝色 A A:AlphaAlpha值值,即即透透明明度度。取取值值范范围围0 02552

10、55,0 0为为完完全全透透明明,255255为完全不透明为完全不透明在在System.System.DrawingDrawing名名称称空空间间下下,有有一一个个ColorColor结结构构类类型型,包包含含系系统已定义的颜色种类。统已定义的颜色种类。可以使用下列方法创建颜色对象:可以使用下列方法创建颜色对象:使用使用FromArgbFromArgb指定任意颜色指定任意颜色 这个方法有两种常用的形式:这个方法有两种常用的形式:8第一种形式是直接指定三种颜色,方法原型为:第一种形式是直接指定三种颜色,方法原型为:public static Color FromArgb(int red,int

11、green,int blue)三个参数分别表示三个参数分别表示R R、G G、B B三色,三色,AlphaAlpha值使用缺省值值使用缺省值255255,即,即完全不透明;例如:完全不透明;例如:Color red=Color.FromArgb(255,0,0);Color green=Color.FromArgb(0,255,0);Color blue=Color.FromArgb(0,0,0 xff);其中,其中,0 xff0 xff为十六进制表示形式。为十六进制表示形式。第二种形式使用四个参数,格式为:第二种形式使用四个参数,格式为:public static Color FromArg

12、b(int alpha,int red,int green,int blue)四个参数分别表示透明度和四个参数分别表示透明度和 R R、G G、B B三色值。三色值。9使用系统预定义颜色使用系统预定义颜色 在在Color结构中已经预定义了结构中已经预定义了141种颜色,可以直接使种颜色,可以直接使用,例如:用,例如:Color myColor;myColor=Color.Red;myColor=Color.Aquamarine;myColor=Color.LightGoldenrodYellow;107.1.3 创建画笔对象创建画笔对象用用PenPen类创建画笔对象,画笔通常具有宽度、样式和颜

13、色三种属类创建画笔对象,画笔通常具有宽度、样式和颜色三种属性。性。1.Pen1.Pen对象的创建:对象的创建:public Pen(Color color);public Pen(Color color);public Pen(Color color,float width);public Pen(Color color,float width);public Pen(Brush brush);public Pen(Brush brush);public Pen(Brush brush,float width);public Pen(Brush brush,float width);如:如:P

14、en myPen=new Pen(Color.Black);Pen myPen=new Pen(Color.Black);Pen myPen=new Pen(Color.Black,5);Pen myPen=new Pen(Color.Black,5);SolidBrush myBrush=new SolidBrush(Color.Red);SolidBrush myBrush=new SolidBrush(Color.Red);Pen myPen=new Pen(myBrush);Pen myPen=new Pen(myBrush);Pen myPen=new Pen(myBrush,5);

15、Pen myPen=new Pen(myBrush,5);112.Pen2.Pen对象的属性:对象的属性:画笔对象的属性用于返回或设置画笔对象的颜色、画线样式、画笔对象的属性用于返回或设置画笔对象的颜色、画线样式、画线始点及终点的样式等。常用属性如下:画线始点及终点的样式等。常用属性如下:Color:Color:DashCap:DashCap:DashStyle:DashStyle:EndCap:EndCap:PenType:PenType:StartCap:StartCap:Width:Width:例:例:121)1)新新建建一一个个WindowsWindows应应用用程程序序,适适当当加加

16、宽宽窗窗体体宽宽度度。然然后后切换到代码方式,添加名称空间引用:切换到代码方式,添加名称空间引用:using System.Drawing.Drawing2D;2)2)添加添加Form1_PaintForm1_Paint事件代码。事件代码。private void Form1_Paint(object sender,e)Graphics g=e.Graphics;Pen pen=new Pen(Color.Blue,10.5f);g.DrawString(蓝色,宽度为蓝色,宽度为10.5,this.Font,new SolidBrush(Color.Black),5,5);g.DrawLine

17、(pen,new Point(110,10),new Point(380,10);pen.Width=2;pen.Color=Color.Red;g.DrawString(红色,宽度为红色,宽度为2,this.Font,new SolidBrush(Color.Black),5,25 );13 g.DrawLine(pen,new Point(110,30),new Point(380,30);pen.StartCap=LineCap.Flat;pen.EndCap=LineCap.ArrowAnchor;pen.Width=9;g.DrawString(红色箭头线红色箭头线,this.Fon

18、t,new SolidBrush(Color.Black),5,45);g.DrawLine(pen,new Point(110,50),new Point(380,50);pen.DashStyle=DashStyle.Custom;pen.DashPattern=new float 4,4;pen.Width=2;pen.EndCap=LineCap.NoAnchor;g.DrawString(自定义虚线自定义虚线,this.Font,new SolidBrush(Color.Black),5,65);g.DrawLine(pen,new Point(110,40),new Point(3

19、80,70);pen.DashStyle=DashStyle.Dot;g.DrawString(点划线点划线,this.Font,new SolidBrush(Color.Black),5,85);g.DrawLine(pen,new Point(110,90),new Point(380,90);14运行结果运行结果 157.1.4 创建画刷创建画刷画刷是可与画刷是可与GraphicsGraphics对象一起使用来创建实心形状和呈现文本对象一起使用来创建实心形状和呈现文本的对象。可以用画刷填充各种图形形状,如矩形、椭圆、扇的对象。可以用画刷填充各种图形形状,如矩形、椭圆、扇形、多边形和封闭路

20、径等。形、多边形和封闭路径等。几种不同类型的画刷几种不同类型的画刷:SolidBrush:画刷最简单的形式,用纯色进行绘制画刷最简单的形式,用纯色进行绘制 HatchBrush:类似于类似于 SolidBrush,但是可以利用该类从大,但是可以利用该类从大量预设的图案中选择绘制时要使用的图案,而不是纯色量预设的图案中选择绘制时要使用的图案,而不是纯色TextureBrush:使用纹理(如图像)进行绘制使用纹理(如图像)进行绘制LinearGradientBrush:使用沿渐变混合的两种颜色进行绘使用沿渐变混合的两种颜色进行绘制制PathGradientBrush:基于编程者定义的唯一路径,使用

21、复基于编程者定义的唯一路径,使用复杂的混合色渐变进行绘制杂的混合色渐变进行绘制16(1)(1)使用使用SolidBrushSolidBrush类定义单色画笔类定义单色画笔 SolidBrush SolidBrush类用于定义单色画笔。该类只有一个构造函类用于定义单色画笔。该类只有一个构造函数,带有一个数,带有一个ColorColor类型的参数。类型的参数。下面的示例说明如何在窗体上绘制一个纯红色的椭圆。下面的示例说明如何在窗体上绘制一个纯红色的椭圆。该椭圆将符合为其提供的矩形的大小(此例中为表示整个该椭圆将符合为其提供的矩形的大小(此例中为表示整个窗体的窗体的ClientRectangleCl

22、ientRectangle)。)。例例:private void Form1_Paint(object sender,e)Graphics g=e.Graphics;SolidBrush myBrush=new SolidBrush(Color.Red);g.FillEllipse(myBrush,this.ClientRectangle);17运行效果运行效果18(2)(2)使用使用HatchBrushHatchBrush类绘制简单图案类绘制简单图案 HatchBrush HatchBrush类用于从大量预设的图案中选择绘制时要使用类用于从大量预设的图案中选择绘制时要使用的图案,而不是纯色。

23、的图案,而不是纯色。下面的示例说明如何创建一个下面的示例说明如何创建一个HatchBrushHatchBrush,它使用,它使用90%90%的的阴影,前景色与背景色的比例为阴影,前景色与背景色的比例为90:10090:100,并使用白色作为前,并使用白色作为前景色,黑色作为背景色。景色,黑色作为背景色。例例:private void Form1_Paint(object sender,e)Graphics g=e.Graphics;HatchBrush aHatchBrush=new HatchBrush(HatchStyle.Percent90,Color.White,Color.Black

24、);g.FillEllipse(aHatchBrush,this.ClientRectangle);19运行效果:运行效果:20(3)(3)使用使用TextureBrushTextureBrush类绘制复杂图案类绘制复杂图案 TextureBrush TextureBrush类允许使用一幅图像作为填充的样式。该类类允许使用一幅图像作为填充的样式。该类提供了提供了5 5个重载的构造函数,分别是:个重载的构造函数,分别是:Public TextureBrush(Image)Public TextureBrush(Image,Rectangle)Public TextureBrush(Image,W

25、rapMode)Public TextureBrush(Image,Rectangle,ImageAttributes)Public TextureBrush(Image,WrapMode,Rectangle)其中:其中:ImageImage:用于指定画笔的填充图案。:用于指定画笔的填充图案。Rectangle Rectangle:用于指定图像上用于画笔的矩形区域,其位置不能超:用于指定图像上用于画笔的矩形区域,其位置不能超 越图像的范围。越图像的范围。WrapMode WrapMode:WrapModeWrapMode枚举成员用于指定如何排布图像,可以是枚举成员用于指定如何排布图像,可以是

26、Clamp Clamp 完全由绘制对象的边框决定完全由绘制对象的边框决定 Tile Tile 平铺平铺 TileFlipX TileFlipX 水平方向翻转并平铺图像水平方向翻转并平铺图像 TileFlipY TileFlipY 垂直方向翻转并平铺图像垂直方向翻转并平铺图像 TileFlipXY TileFlipXY 水平和垂直方向翻转并平铺图像水平和垂直方向翻转并平铺图像21 ImageAttributes ImageAttributes:用于指定图像的附加特性参数。:用于指定图像的附加特性参数。TextureBrush TextureBrush类有三个属性:类有三个属性:Image Ima

27、ge:ImageImage类型,与画笔关联的图像对象。类型,与画笔关联的图像对象。Transform Transform:MatrixMatrix类型,画笔的变换矩阵。类型,画笔的变换矩阵。WrapMode WrapMode:WrapModeWrapMode枚举成员,指定图像的排布方式。枚举成员,指定图像的排布方式。下面的示例说明了如何创建一个下面的示例说明了如何创建一个TextureBrush,例子使,例子使用名为用名为m23.jpg的图像进行绘制。的图像进行绘制。例例:private void Form1_Paint(object sender,e)Graphics g=e.Graphic

28、s;TextureBrush myBrush=new TextureBrush(new Bitmap(e:testm23.jpg);g.FillEllipse(myBrush,this.ClientRectangle);22运行效果:运行效果:23(4)(4)使用使用LinearGradientBrushLinearGradientBrush类定义线性渐变类定义线性渐变 这个类用于定义线性渐变画笔,可以是双色渐变,也可这个类用于定义线性渐变画笔,可以是双色渐变,也可以是多色渐变。缺省情况下,渐变由起始颜色沿着水平方以是多色渐变。缺省情况下,渐变由起始颜色沿着水平方向平均过渡到终止颜色。要定义多

29、色渐变,需要使用向平均过渡到终止颜色。要定义多色渐变,需要使用InterpolationColorsInterpolationColors属性。下面的示例说明如何由白色渐属性。下面的示例说明如何由白色渐变到蓝色。变到蓝色。例例:private void Form1_Paint(object sender,e)Graphics g=e.Graphics;LinearGradientBrush myBrush=new LinearGradientBrush(this.ClientRectangle,Color.White,Color.Blue,LinearGradientMode.Vertical

30、);g.FillRectangle(myBrush,this.ClientRectangle);24 如果创建应用程序后向设计窗体上拖放一些控件,如果创建应用程序后向设计窗体上拖放一些控件,可以看到运行后该图就是一个漂亮的背景了。可以看到运行后该图就是一个漂亮的背景了。25(5)(5)使用使用PathGradientBrushPathGradientBrush类实现彩色渐变类实现彩色渐变 在在GDI+GDI+中,把一个或多个图形组成的形体称作路径。可以中,把一个或多个图形组成的形体称作路径。可以使用使用GraphicsPathGraphicsPath类定义路径,使用类定义路径,使用PathGr

31、adientBrushPathGradientBrush类定类定义路径内部的渐变色画笔。渐变色从路径内部的中心点逐渐过义路径内部的渐变色画笔。渐变色从路径内部的中心点逐渐过渡到路径的外边界边缘。渡到路径的外边界边缘。PathGradientBrushPathGradientBrush类有三种形式的构造函数,形式之一是:类有三种形式的构造函数,形式之一是:public PathGradientBrush(GraphicsPath path)其中,其中,GraphicsPathGraphicsPath定义画笔填充的区域。定义画笔填充的区域。例例,路径和路径画笔的使用路径和路径画笔的使用:using

32、 System.Drawing.Drawing2D;using System.Drawing.Drawing2D;26private void Form1_Paint(object sender,e)Graphics g=e.Graphics;Point centerPoint =new Point(150,100);int R=60;GraphicsPath path=new GraphicsPath();path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2*R,2*R);PathGradientBrush brush=new PathGradi

33、entBrush(path);/指定路径中心点指定路径中心点brush.CenterPoint=centerPoint;/指定路径中心点的颜色指定路径中心点的颜色brush.CenterColor=Color.Red;/Color类型的数组指定与路径上每个顶点对应的颜色类型的数组指定与路径上每个顶点对应的颜色brush.SurroundColors=new Color Color.Plum;27 g.FillEllipse(brush,centerPoint.X-R,centerPoint.Y-R,2*R,2*R);centerPoint=new Point(350,100);R=20;pat

34、h=new GraphicsPath();path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2*R,2*R);path.AddEllipse(centerPoint.X-2*R,centerPoint.Y-2*R,4*R,4*R);path.AddEllipse(centerPoint.X-3*R,centerPoint.Y-3*R,6*R,6*R);brush=new PathGradientBrush(path);brush.CenterPoint=centerPoint;brush.CenterColor=Color.Red;brush.Su

35、rroundColors=new Color Color.Black,Color.Blue,Color.Green;g.FillPath(brush,path);28 在这个例子中,可以看到当使用在这个例子中,可以看到当使用FillPath()FillPath()方法填充路径的时方法填充路径的时候,如果多个图形互相重叠,则重叠部分的数目为偶数时不会被填候,如果多个图形互相重叠,则重叠部分的数目为偶数时不会被填充,因此右图中间部分仍为背景色而不是蓝色。充,因此右图中间部分仍为背景色而不是蓝色。29附附:平移、旋转与缩放平移、旋转与缩放 Graphics Graphics类提供了三种对图像进行几何

36、变换的方法,它们类提供了三种对图像进行几何变换的方法,它们是是TranslateTransform()TranslateTransform()方法、方法、RotateTransform()RotateTransform()方法和方法和ScaleTransform()ScaleTransform()方法,分别用于图形图像的平移、旋转和方法,分别用于图形图像的平移、旋转和缩放(以坐标系原点为中心)。缩放(以坐标系原点为中心)。TranslateTransform()TranslateTransform()方法的形式为:方法的形式为:public void TranslateTransform(fl

37、oat dx,float dy)其中,其中,dxdx表示平移的表示平移的x x分量,分量,dydy表示平移的表示平移的y y分量分量;RotateTransform()RotateTransform()方法的形式为:方法的形式为:public void RotateTransform(float angle)其中,其中,angleangle表示旋转角度表示旋转角度;ScaleTransform()ScaleTransform()方法的形式为:方法的形式为:public void ScaleTransform(float sx,float sy)其中,其中,sx表示表示x方向的缩放比例,方向的缩

38、放比例,sy表示表示y方向的缩放比例方向的缩放比例;30例:三种变换方法示例。例:三种变换方法示例。privateprivate voidvoid Form1_Paint(Form1_Paint(objectobject sender,sender,e)e)Graphics g=e.Graphics;Graphics g=e.Graphics;g.FillEllipse(g.FillEllipse(newnew SolidBrush(Color.FromArgb(80,Color.Red),SolidBrush(Color.FromArgb(80,Color.Red),120,30,200,1

39、00);120,30,200,100);/椭圆透明度椭圆透明度80%80%g.RotateTransform(30.0f);g.RotateTransform(30.0f);/顺时针旋转顺时针旋转3030度度g.FillEllipse(g.FillEllipse(new new SolidBrush(Color.FromArgb(80,Color.Blue),SolidBrush(Color.FromArgb(80,Color.Blue),120,30,200,100);120,30,200,100);/水平方向向右平移水平方向向右平移200200个像素,垂直方向向上平移个像素,垂直方向向上平

40、移100100个像素个像素g.TranslateTransform(200.0f,-100.0f);g.TranslateTransform(200.0f,-100.0f);g.FillEllipse(g.FillEllipse(new new SolidBrush(Color.FromArgb(50,Color.Green),SolidBrush(Color.FromArgb(50,Color.Green),120,30,200,100);120,30,200,100);g.ScaleTransform(0.5f,0.5f);g.ScaleTransform(0.5f,0.5f);/缩小到一

41、半缩小到一半 g.FillEllipse(g.FillEllipse(newnewSolidBrush(Color.FromArgb(100,Color.Red),SolidBrush(Color.FromArgb(100,Color.Red),120,30,200,100);120,30,200,100);31327.2 基本图形的绘制基本图形的绘制1.画点画点VC#采用采用Point结构和结构和SetPixel()方法完成画点的功能;其中方法完成画点的功能;其中Point用于图形设计,用于图形设计,SetPixel()用于图像处理用于图像处理Point原型:原型:public struct

42、 Point;使用:使用:public Point p1=new Point();每个点结构有每个点结构有x和和y两个属性,表示横纵坐标,如:两个属性,表示横纵坐标,如:p1.x=30;p1.y=100;332.画直线画直线1)DrawLine方法方法public void DrawLine(Pen pen,int x1,int y1,int x2,int y2);或或 public void DrawLine(Pen pen,Point pt1,Point pt2);如:如:Graphics g=this.CreateGraphics();Pen p1=new Pen(Color.Red,2

43、);Point pt1=new Point(40,50);Point pt2=new Point(220,150);g.DrawLine(p1,10,20,40,50);g.DrawLine(p1,pt1,pt2);2)DrawLines方法方法public void DrawLines(Pen pen,Point pts);34private void Form1_Paint(object sender,e)Pen pen=new Pen(Color.Black,3);Point points=new Point(10,10),new Point(10,100),new Point(200,

44、50),new Point(250,120);e.Graphics.DrawLines(pen,points);效果效果 353.画椭圆画椭圆1)public void DrawEllipse(Pen pen,int x,int y,int width,int height)其中其中x,yx,y为椭圆外接矩形左上角的坐标,为椭圆外接矩形左上角的坐标,widthwidth定义椭圆定义椭圆的外接矩形的宽度的外接矩形的宽度,height,height定义椭圆外接矩形的高度。定义椭圆外接矩形的高度。2)public void DrawEllipse(Pen pen,Rectangle rect)其中其

45、中rectrect为为RectangleRectangle结构,用于确定椭圆的外接矩形。结构,用于确定椭圆的外接矩形。364.绘制圆弧绘制圆弧public void DrawArc(Pen pen,int x,int y,int width,int height,int startAngle,int sweepAngle)各参数意义:各参数意义:例:例:Graphics g=this.CreateGraphics();Graphics g=this.CreateGraphics();Pen pen=new Pen(Color.Red,2);Pen pen=new Pen(Color.Red,2

46、);g.Clear(this.BackColor);g.Clear(this.BackColor);g.DrawArc(pen,0,0,200,300,-60,180);g.DrawArc(pen,0,0,200,300,-60,180);375.DrawPiepublic void DrawPie(Pen pen,int x,int y,int width,int height,int startAngle,int sweepAngle)各参数意义:各参数意义:例:例:Graphics g=this.CreateGraphics();Graphics g=this.CreateGraphic

47、s();Pen pen=new Pen(Color.Red,2);Pen pen=new Pen(Color.Red,2);g.Clear(this.BackColor);g.Clear(this.BackColor);g.DrawPie(pen,60,60,160,160,160,200);g.DrawPie(pen,60,60,160,160,160,200);386.画矩形画矩形1)public void DrawRectangle(Pen pen,int x,int y,int width,int height)参数含意:参数含意:2)public void DrawRectangle

48、(Pen pen,Rectangle rect)参数含意:参数含意:例:例:private void Form1_Paint(object sender,e)Graphics g=e.Graphics;Pen pen=new Pen(Color.Black,3);Rectangle rect=new Rectangle(30,30,200,100);(pen,rect);393)3)public void DrawRectangles(Pen pen,Rectangle rects)该方法用于绘制多个矩形。该方法用于绘制多个矩形。例例:private void Form1_Paint(obje

49、ct sender,e)Graphics g=e.Graphics;Pen pen=new Pen(Color.Black,3);Rectangle rects=new Rectangle(0,0,100,200),new Rectangle(100,200,250,50),new Rectangle(300,0,50,100);(pen,rects);407.Bezier每段贝塞尔曲线都需要四个点,第一个点是起始点,第四个点每段贝塞尔曲线都需要四个点,第一个点是起始点,第四个点是终止点,第二个点和第三个点控制曲线的形状。使用是终止点,第二个点和第三个点控制曲线的形状。使用DrawBezier

50、()DrawBezier()方法绘制一段贝塞尔曲线,使用方法绘制一段贝塞尔曲线,使用DrawBeziers()DrawBeziers()方方法绘制多段贝塞尔曲线。常用形式有:法绘制多段贝塞尔曲线。常用形式有:1)public void DrawBezier(Pen pen,float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4)2)public void DrawBezier(Pen pen,Point pt1,Point pt2,Point pt3,Point pt4)3)public void Draw

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com