《最新图形图像与多媒体编程精品课件.ppt》由会员分享,可在线阅读,更多相关《最新图形图像与多媒体编程精品课件.ppt(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、214.1 GDI+概述概述 GDI+:Graphics Device Interface Plus,它提供了各种,它提供了各种丰富的图形图像处理功能丰富的图形图像处理功能在在C#.NETC#.NET中,使用中,使用GDI+GDI+处理二维(处理二维(2D2D)的图形和图像,)的图形和图像,使用使用DirectXDirectX处理三维(处理三维(3D3D)的图形图像。)的图形图像。 GDI+主要有主要有“二维矢量图形二维矢量图形”、“图像处理图像处理”和和“版式版式”三部分组成。三部分组成。 GDI+提供了存储基元自身相关信息的类和结构、存储基提供了存储基元自身相关信息的类和结构、存储基元绘制
2、方式相关信息的类,以及实际进行绘制的类。元绘制方式相关信息的类,以及实际进行绘制的类。 GDI+ 为使用各种字体、字号和样式来显示文本这种复为使用各种字体、字号和样式来显示文本这种复杂任务提供了大量的支持。杂任务提供了大量的支持。 其他高级功能其他高级功能345678914.1.3 笔和画笔笔和画笔 在在GDI+GDI+中,可使用笔对象和画笔对象呈现图形、文本和中,可使用笔对象和画笔对象呈现图形、文本和图像。笔是图像。笔是PenPen类的实例,用于绘制线条和空心形状。画笔类的实例,用于绘制线条和空心形状。画笔是从是从BrushBrush类派生的任何类的实例,用于填充形状或绘制文类派生的任何类的
3、实例,用于填充形状或绘制文本。本。 1. 笔(笔(Pen) 笔可用于绘制绘制具有指定宽度和样式的线条、曲线以笔可用于绘制绘制具有指定宽度和样式的线条、曲线以及勾勒形状轮廓。及勾勒形状轮廓。 下面的示例说明如何创建一支基本的黑色笔:下面的示例说明如何创建一支基本的黑色笔: Pen 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); 也可以从画笔对象创建笔,例如:也可以从画笔对
4、象创建笔,例如: 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); Pen myPen = new Pen(myBrush, 5); 10笔(笔(PenPen)的用法演示示例。)的用法演示示例。 1) 1) 新建一个新建一个WindowsWindows应用程序,适当加宽窗
5、体宽度。应用程序,适当加宽窗体宽度。然后切换到代码方式,添加名称空间引用:然后切换到代码方式,添加名称空间引用: using System.Drawing.Drawing2D;using System.Drawing.Drawing2D; 2) 2) 添加添加Form1_PaintForm1_Paint事件代码。事件代码。 private void Form1_Paint(object sender, private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) System.Windows.For
6、ms.PaintEventArgs e) Graphics g = e.Graphics;Graphics g = e.Graphics;Pen pen = new Pen(Color.Blue,10.5f); Pen pen = new Pen(Color.Blue,10.5f); g.DrawString(g.DrawString(蓝色,宽度为蓝色,宽度为10.5,this.Font,10.5,this.Font, new SolidBrush(Color.Black),5,5); new SolidBrush(Color.Black),5,5);g.DrawLine(pen,new Po
7、int(110,10),new Point(380,10);g.DrawLine(pen,new Point(110,10),new Point(380,10);pen.Width=2;pen.Width=2; pen.Color=Color.Red; pen.Color=Color.Red;g.DrawString(g.DrawString(红色,宽度为红色,宽度为2,this.Font,2,this.Font, new SolidBrush(Color.Black),5,25); new SolidBrush(Color.Black),5,25);11g.DrawLine(pen,new
8、Point(110,30),new Point(380,30);g.DrawLine(pen,new Point(110,30),new Point(380,30);pen.StartCap=LineCap.Flat;pen.StartCap=LineCap.Flat;pen.EndCap=LineCap.ArrowAnchor;pen.EndCap=LineCap.ArrowAnchor;pen.Width=9;pen.Width=9;g.DrawString(g.DrawString(红色箭头线红色箭头线,this.Font,this.Font, new SolidBrush(Color.
9、Black),5,45); new SolidBrush(Color.Black),5,45);g.DrawLine(pen,new Point(110,50),new Point(380,50);g.DrawLine(pen,new Point(110,50),new Point(380,50);pen.DashStyle = DashStyle.Custom;pen.DashStyle = DashStyle.Custom;pen.DashPattern=new float4,4;pen.DashPattern=new float4,4;pen.Width=2;pen.Width=2; p
10、en.EndCap=LineCap.NoAnchor; pen.EndCap=LineCap.NoAnchor;g.DrawString(g.DrawString(自定义虚线自定义虚线,this.Font,this.Font, new SolidBrush(Color.Black),5,65); new SolidBrush(Color.Black),5,65);g.DrawLine(pen,new Point(110,40),new Point(380,70);g.DrawLine(pen,new Point(110,40),new Point(380,70);pen.DashStyle=D
11、ashStyle.Dot;pen.DashStyle=DashStyle.Dot;g.DrawString(g.DrawString(点划线点划线,this.Font,this.Font, new SolidBrush(Color.Black),5,85); new SolidBrush(Color.Black),5,85);g.DrawLine(pen,new Point(110,90),new Point(380,90);g.DrawLine(pen,new Point(110,90),new Point(380,90); 12运行结果运行结果 132 2、画刷(、画刷(BrushBrus
12、h) 画刷是可与画刷是可与GraphicsGraphics对象一起使用来创建实心形状对象一起使用来创建实心形状和呈现文本的对象。可以用画笔填充各种图形形状,如和呈现文本的对象。可以用画笔填充各种图形形状,如矩形、椭圆、扇形、多边形和封闭路径等。矩形、椭圆、扇形、多边形和封闭路径等。 几种不同类型的画刷几种不同类型的画刷: : SolidBrush SolidBrush 画刷最简单的形式,用纯色进行绘制。画刷最简单的形式,用纯色进行绘制。 HatchBrush HatchBrush 类似于类似于 SolidBrushSolidBrush,但是可以利用该类从大量预设,但是可以利用该类从大量预设的图
13、案中选择绘制时要使用的图案,而不是纯色。的图案中选择绘制时要使用的图案,而不是纯色。 TextureBrush TextureBrush 使用纹理(如图像)进行绘制。使用纹理(如图像)进行绘制。 LinearGradientBrush LinearGradientBrush 使用沿渐变混合的两种颜色进行绘制。使用沿渐变混合的两种颜色进行绘制。 PathGradientBrush PathGradientBrush 基于编程者定义的唯一路径,使用复杂的混合色渐变基于编程者定义的唯一路径,使用复杂的混合色渐变进行绘制。进行绘制。14(1)(1)使用使用SolidBrushSolidBrush类定义
14、单色画笔类定义单色画笔 SolidBrushSolidBrush类用于定义单色画笔。该类只有一个构类用于定义单色画笔。该类只有一个构造函数,带有一个造函数,带有一个ColorColor类型的参数。类型的参数。 下面的示例说明如何在窗体上绘制一个纯红色的椭下面的示例说明如何在窗体上绘制一个纯红色的椭圆。该椭圆将符合为其提供的矩形的大小(此例中为表圆。该椭圆将符合为其提供的矩形的大小(此例中为表示整个窗体的示整个窗体的ClientRectangleClientRectangle)。)。【例】单色画刷演示示例。【例】单色画刷演示示例。 private void Form1_Paint(object
15、sender, private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) System.Windows.Forms.PaintEventArgs e) Graphics g =e.Graphics;Graphics g =e.Graphics;SolidBrush myBrush = new SolidBrush(Color.Red);SolidBrush myBrush = new SolidBrush(Color.Red);g.FillEllipse(myBrush, this.Client
16、Rectangle);g.FillEllipse(myBrush, this.ClientRectangle); 15运行效果运行效果16(2)(2)使用使用HatchBrushHatchBrush类绘制简单图案类绘制简单图案 HatchBrushHatchBrush类用于从大量预设的图案中选择绘制时类用于从大量预设的图案中选择绘制时要使用的图案,而不是纯色。要使用的图案,而不是纯色。 下面的示例说明如何创建一个下面的示例说明如何创建一个HatchBrushHatchBrush,它使用,它使用90%90%的阴影,前景色与背景色的比例为的阴影,前景色与背景色的比例为90:10090:100,并使
17、用白,并使用白色作为前景色,黑色作为背景色。色作为前景色,黑色作为背景色。【例】填充简单图案示例。【例】填充简单图案示例。 privateprivate voidvoid Form1_Paint( Form1_Paint(objectobject sender, sender, System.Windows.Forms.PaintEventArgs e)System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics;Graphics g = e.Graphics;System.Drawing.Drawing2D.HatchBrush
18、 aHatchBrush = System.Drawing.Drawing2D.HatchBrush aHatchBrush = newnew System.Drawing.Drawing2D.HatchBrush(System.Drawing.System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Percent90, Color.White, Color.Black);Drawing2D.HatchStyle.Percent90, Color.White, Color.Black);g.FillElli
19、pse(aHatchBrush, g.FillEllipse(aHatchBrush, thisthis.ClientRectangle);.ClientRectangle); 17运行效果:运行效果:18(3)(3)使用使用TextureBrushTextureBrush类绘制复杂图案类绘制复杂图案 TextureBrushTextureBrush类允许使用一幅图像作为填充的样式。该类允许使用一幅图像作为填充的样式。该类提供了类提供了5 5个重载的构造函数,分别是:个重载的构造函数,分别是: Public TextureBrush(Image)Public TextureBrush(Imag
20、e) Public TextureBrush(Image,Rectangle) Public TextureBrush(Image,Rectangle) Public TextureBrush(Image,WrapMode) Public TextureBrush(Image,WrapMode) Public TextureBrush(Image,Rectangle,ImageAttributes) Public TextureBrush(Image,Rectangle,ImageAttributes) Public TextureBrush(Image,WrapMode,Rectangle)
21、 Public TextureBrush(Image,WrapMode,Rectangle) 其中:其中:ImageImage:ImageImage对象用于指定画笔的填充图案。对象用于指定画笔的填充图案。 RectangleRectangle:RectangleRectangle对象用于指定图像上用于画笔的矩形区对象用于指定图像上用于画笔的矩形区 域,其位置不能超越图像的范围。域,其位置不能超越图像的范围。 WrapModeWrapMode:WrapModeWrapMode枚举成员用于指定如何排布图像,可以是枚举成员用于指定如何排布图像,可以是 Clamp Clamp 完全由绘制对象的边框决定
22、完全由绘制对象的边框决定 Tile Tile 平铺平铺 TileFlipX TileFlipX 水平方向翻转并平铺图像水平方向翻转并平铺图像 TileFlipY TileFlipY 垂直方向翻转并平铺图像垂直方向翻转并平铺图像 TileFlipXY TileFlipXY 水平和垂直方向翻转并平铺图像水平和垂直方向翻转并平铺图像19 ImageAttributes ImageAttributes:ImageAttributesImageAttributes对象用于指定图像的附加特对象用于指定图像的附加特 性参数。性参数。 TextureBrushTextureBrush类有三个属性:类有三个属性
23、: Image Image:ImageImage类型,与画笔关联的图像对象。类型,与画笔关联的图像对象。 Transform Transform:MatrixMatrix类型,画笔的变换矩阵。类型,画笔的变换矩阵。 WrapMode WrapMode:WrapModeWrapMode枚举成员,指定图像的排布方式。枚举成员,指定图像的排布方式。 下面的示例说明了如何创建一个下面的示例说明了如何创建一个TextureBrush,例子使用,例子使用名为名为m23.jpg的图像进行绘制。的图像进行绘制。 【例】创建【例】创建TextureBrushTextureBrush示例。示例。 privatep
24、rivate voidvoid Form1_Paint( Form1_Paint(objectobject sender, sender, System.Windows.Forms.PaintEventArgs e)System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics;Graphics g = e.Graphics;TextureBrush myBrush = TextureBrush myBrush = newnew TextureBrush( TextureBrush(newnew Bitmap(e:testm23.j
25、pg);Bitmap(e:testm23.jpg);g.FillEllipse(myBrush, g.FillEllipse(myBrush, thisthis.ClientRectangle);.ClientRectangle); 20运行效果:运行效果:21(4)(4)使用使用LinearGradientBrushLinearGradientBrush类定义线性渐变类定义线性渐变 这个类用于定义线性渐变画笔,可以是双色渐变,这个类用于定义线性渐变画笔,可以是双色渐变,也可以是多色渐变。缺省情况下,渐变由起始颜色沿着也可以是多色渐变。缺省情况下,渐变由起始颜色沿着水平方向平均过渡到终止颜色。
26、要定义多色渐变,需要水平方向平均过渡到终止颜色。要定义多色渐变,需要使用使用InterpolationColorsInterpolationColors属性。下面的示例说明如何由属性。下面的示例说明如何由白色渐变到蓝色。白色渐变到蓝色。【例】线性渐变示例。【例】线性渐变示例。 privateprivate voidvoid Form1_Paint( Form1_Paint(objectobject sender, sender, System.Windows.Forms.PaintEventArgs e)System.Windows.Forms.PaintEventArgs e) Graphi
27、cs g = e.Graphics;Graphics g = e.Graphics;System.Drawing.Drawing2D.LinearGradientBrush myBrush = System.Drawing.Drawing2D.LinearGradientBrush myBrush = new new System.Drawing.Drawing2D.LinearGradientBrush( System.Drawing.Drawing2D.LinearGradientBrush( thisthis.ClientRectangle,Color.White, Color.Blue
28、,.ClientRectangle,Color.White, Color.Blue, System.Drawing.Drawing2D.LinearGradientMode.Vertical); System.Drawing.Drawing2D.LinearGradientMode.Vertical); g.FillRectangle(myBrush, g.FillRectangle(myBrush, thisthis.ClientRectangle);.ClientRectangle); 22 如果创建应用程序后向设计窗体上拖放一些控件,如果创建应用程序后向设计窗体上拖放一些控件,可以看到运
29、行后该图就是一个漂亮的背景了。可以看到运行后该图就是一个漂亮的背景了。 23(5)(5)使用使用PathGradientBrushPathGradientBrush类实现彩色渐变类实现彩色渐变 在在GDI+GDI+中,把一个或多个图形组成的形体称作路径。可中,把一个或多个图形组成的形体称作路径。可以使用以使用GraphicsPathGraphicsPath类定义路径,使用类定义路径,使用PathGradientBrushPathGradientBrush类定义路径内部的渐变色画笔。渐变色从路径内部的中心类定义路径内部的渐变色画笔。渐变色从路径内部的中心点逐渐过渡到路径的外边界边缘。点逐渐过渡到
30、路径的外边界边缘。 PathGradientBrushPathGradientBrush类有三种形式的构造函数,形式之一类有三种形式的构造函数,形式之一是:是: public PathGradientBrush(GraphicsPath path)public PathGradientBrush(GraphicsPath path) 其中,其中,GraphicsPathGraphicsPath定义画笔填充的区域。定义画笔填充的区域。【例】路径和路径画笔的使用。【例】路径和路径画笔的使用。 using System.Drawing.Drawing2D;using System.Drawing.D
31、rawing2D; 24private void Form1_Paint(object sender,private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) System.Windows.Forms.PaintEventArgs e) Graphics g=e.Graphics;Graphics g=e.Graphics;Point centerPoint=new Point(150,100);Point centerPoint=new Point(150,100);int R=60;int
32、R=60; GraphicsPath path=new GraphicsPath(); GraphicsPath path=new GraphicsPath();path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2* *R,2R,2* *R);R);PathGradientBrush brush=new PathGradientBrush(path);PathGradientBrush brush=new PathGradientBrush(path)
33、; / /指定路径中心点指定路径中心点brush.CenterPoint=centerPoint;brush.CenterPoint=centerPoint;/指定路径中心点的颜色指定路径中心点的颜色brush.CenterColor=Color.Red;brush.CenterColor=Color.Red;/Color/Color类型的数组指定与路径上每个顶点对应的颜色类型的数组指定与路径上每个顶点对应的颜色brush.SurroundColors=new Color Color.Plum ;brush.SurroundColors=new Color Color.Plum ;25g.Fi
34、llEllipse(brush,centerPoint.X-R,centerPoint.Y-R,g.FillEllipse(brush,centerPoint.X-R,centerPoint.Y-R, 2 2* *R,2R,2* *R);R); centerPoint=new Point(350,100); centerPoint=new Point(350,100); R=20; R=20;path=new GraphicsPath();path=new GraphicsPath();path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2path.
35、AddEllipse(centerPoint.X-R,centerPoint.Y-R,2* *R,2R,2* *R);R);path.AddEllipse(centerPoint.X-2path.AddEllipse(centerPoint.X-2* *R,centerPoint.Y-2R,centerPoint.Y-2* *R,R, 4 4* *R,4R,4* *R);R);path.AddEllipse(centerPoint.X-3path.AddEllipse(centerPoint.X-3* *R,centerPoint.Y-3R,centerPoint.Y-3* *R,R, 6 6
36、* *R,6R,6* *R);R); brush=new PathGradientBrush(path); brush=new PathGradientBrush(path);brush.CenterPoint=centerPoint;brush.CenterPoint=centerPoint;brush.CenterColor=Color.Red;brush.CenterColor=Color.Red;brush.SurroundColors=new brush.SurroundColors=new Color Color.Black,Color.Blue,Color.Green ; Col
37、or Color.Black,Color.Blue,Color.Green ;g.FillPath(brush,path);g.FillPath(brush,path); 26 在这个例子中,可以看到当使用在这个例子中,可以看到当使用FillPath()FillPath()方法填充路径的时方法填充路径的时候,如果多个图形互相重叠,则重叠部分的数目为偶数时不会被填候,如果多个图形互相重叠,则重叠部分的数目为偶数时不会被填充,因此右图中间部分仍为背景色而不是蓝色。充,因此右图中间部分仍为背景色而不是蓝色。 2714.1.4 平移、旋转与缩放平移、旋转与缩放 Graphics Graphics类提供
38、了三种对图像进行几何变换的方法,类提供了三种对图像进行几何变换的方法,它们是它们是TranslateTransform()TranslateTransform()方法、方法、RotateTransform()RotateTransform()方方法和法和ScaleTransform()ScaleTransform()方法,分别用于图形图像的平移、旋方法,分别用于图形图像的平移、旋转和缩放。转和缩放。 TranslateTransform()TranslateTransform()方法的形式为:方法的形式为: public void TranslateTransform(float dx,flo
39、at dy)public void TranslateTransform(float dx,float dy) 其中,其中,dxdx表示平移的表示平移的x x分量,分量,dydy表示平移的表示平移的y y分量。分量。 RotateTransform()RotateTransform()方法的形式为:方法的形式为: public void RotateTransform(float angle)public void RotateTransform(float angle) 其中,其中,angleangle表示旋转角度。表示旋转角度。 ScaleTransform()ScaleTransform
40、()方法的形式为:方法的形式为: public void ScaleTransform(float sx,float sy)public void ScaleTransform(float sx,float sy) 其中,其中,sx表示表示x方向的缩放比例,方向的缩放比例,sy表示表示y方向的缩放比例。方向的缩放比例。 28【例】三种变换方法示例。【例】三种变换方法示例。 privateprivate voidvoid Form1_Paint( Form1_Paint(objectobject sender, sender, System.Windows.Forms.PaintEventArg
41、s e) System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics;Graphics g = e.Graphics;/椭圆透明度椭圆透明度80%80%g.FillEllipse(g.FillEllipse(newnew SolidBrush(Color.FromArgb(80,Color.Red), SolidBrush(Color.FromArgb(80,Color.Red), 120,30,200,100); 120,30,200,100);g.RotateTransform(30.0f); g.RotateTransfo
42、rm(30.0f); /顺时针旋转顺时针旋转1010度度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个像素,垂直方向向上平移个像素,垂直方向向上平移100100个像素个像素g.TranslateTransform(200.0f,-100.0f);g.TranslateTransform(200
43、.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); /缩小到一半缩小到一半 g.FillEllipse(g.FillEllipse(newnew SolidBrush(Color.FromArgb(10
44、0,Color.Red),SolidBrush(Color.FromArgb(100,Color.Red), 120,30,200,100); 120,30,200,100); 293014.2 绘制图形绘制图形 所有绘制图形的方法都位于所有绘制图形的方法都位于GraphicsGraphics中。中。14.2.1 直线直线 有两种绘制直线的方法:有两种绘制直线的方法:DrawLine()DrawLine()方法和方法和DrawLines()DrawLines()方法。方法。 DrawLine()DrawLine()用于绘制一条直线,用于绘制一条直线,DrawLines()DrawLines()
45、用于绘制多条直线。常用于绘制多条直线。常用形式有:用形式有: public void DrawLine(Pen pen,Point pt1,Point pt2) public void DrawLine(Pen pen,Point pt1,Point pt2) 其中其中PenPen对象确定线条的颜色、宽度和样式。对象确定线条的颜色、宽度和样式。PointPoint结构确定起点和结构确定起点和终点。例如:终点。例如:privateprivate voidvoid Form1_Paint( Form1_Paint(objectobject sender, sender, System.Window
46、s.Forms.PaintEventArgs e) System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics;Graphics g = e.Graphics;Pen blackPen = Pen blackPen = newnew Pen(Color.Black, 3); Pen(Color.Black, 3);Point point1 = Point point1 = newnew Point(100, 100); Point(100, 100);Point point2 = Point point2 = newnew Po
47、int(200, 100); Point(200, 100);e.Graphics.DrawLine(blackPen, point1, point2);e.Graphics.DrawLine(blackPen, point1, point2); 31 public void DrawLine(Pen pen,int x1,int y1,int x2,int y2)public void DrawLine(Pen pen,int x1,int y1,int x2,int y2) 其中其中x1,y1x1,y1为起点坐标,为起点坐标,x2,y2x2,y2为终点坐标。例如:为终点坐标。例如:e.Gr
48、aphics.DrawLine(blackPen, 100,100,200,100);e.Graphics.DrawLine(blackPen, 100,100,200,100); public void DrawLines(Pen pen,Point points) public void DrawLines(Pen pen,Point points) 这种方法用于绘制一系列连接一组终结点的线条。数组中的前两个这种方法用于绘制一系列连接一组终结点的线条。数组中的前两个点指定第一条线。每个附加点指定一个线段的终结点,该线段的起点指定第一条线。每个附加点指定一个线段的终结点,该线段的起始点是前一
49、条线段的结束点。始点是前一条线段的结束点。privateprivate voidvoid Form1_Paint( Form1_Paint(objectobject sender, sender, System.Windows.Forms.PaintEventArgs e) System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics;Graphics g = e.Graphics;Pen pen = Pen pen = newnew Pen(Color.Black, 3); Pen(Color.Black, 3);Point p
50、oints =Point points =newnew Point( 10, 10), Point( 10, 10),newnew Point( 10, 100), Point( 10, 100),newnew Point(200, 50), Point(200, 50),newnew Point(250, 120) Point(250, 120); e.Graphics.DrawLines(pen, points); e.Graphics.DrawLines(pen, points); 32效果效果 3314.2.2 矩形矩形 由于矩形具有轮廓和封闭区域,所以由于矩形具有轮廓和封闭区域,所以