您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 第6章 图形图像编程
第6章图形图像编程6.1Graphics对象Graphics对象在System.Drawing命名空间中,该对象封装了GDI+绘图的所有方法。Graphics对象就像一个画家,使用笔Pen对象或刷子Brush对象就能绘制出不同的图像Image对象和图标Icon对象,也可以使用不同的字体Font对象绘制不同的文字内容,还可以利用StringFormat对象指定文字的对齐方式。为了减少或消除重绘时产生的闪烁,可以使用BufferedGraphicsContext对象提代的缓冲机制。Graphics对象可以用下面三种方法来创建。窗体或控件的Paint事件中的PaintEventArgs,可以接收对图形图像对象的引用。在为控件创建绘制代码时,通常会使用该方法获得对图形图像对象的引用。调用某控件或窗体的CreateGraphics方法来获得对Graphics对象的引用,该对象表示该控件或窗体的绘图表面。如果想在已存在的窗体或控件上绘图,可以使用该方法。从继承自“图像”的任何对象创建Graphics对象,此方法在更改已存的图像时,非常有用。6.1.1Paint事件中的PaintEventArgs在为控件编制Paint事件处理程序时,图形图像对象作为一个PaintEventArgs对象提供。利用该方法获得Graphics对象的具体步骤如下:声明Graphics对象。分配变量来引用作为PaintEventArgs的一部分传递的Graphics对象。插入代码来绘制窗体或控件。利用该方法获得Graphics对象的具体代码如上:6.1.2CreateGraphics方法可以使用控件或窗体的CreateGraphics方法来获得对Graphics对象的引用,该对象表示该控件或窗体的绘图表面。具体代码如下:Graphicsmyg;0第6章图形图像编程2myg=this.CreateGraphics();6.1.3利用Image对象创建由Image类派生的任何对象来创建图形图像对象,这需要调用Graphics.FromImage方法来提供Image变量名。具体代码如下:Bitmapmybit=newBitmap(@“d:\mypicture.bmp”);Graphicsmyg=Graphics.FromImage(mybit);6.2笔和颜色在利用Graphics对象绘制图形图像时,要利用笔Pen对象设置图形图像的样式,利用Color结构设置图形图像的颜色。6.2.1笔笔可以绘制线条、曲线、几何图形、勾勒图形轮廓等,创建笔的的具体代码如下:PenmyPen1=newPen(Color.Red);PenmyPen2=newPen(Color.Green,3);创建了笔myPen1和myPen2,第一支笔为红色,宽度为默认。第二支笔为绿色,宽度为3。也可以从已存在的画笔中创建笔,假设存在画笔myBrushPen1,则具体代码是:PenmyPen3=newPen(myBrushPen1);创建笔后,就可以利用它绘制线条、弧线等。具体代码如下:PenmyPen1=newPen(Color.Red);Graphicsmyg=newthis.CreateGraphics();g.DrawLine(myPen1,1,1,100,100);上述代码是利用红笔绘制起点为(1,1),终点为(100,100)的直线。6.2.2颜色.NET框架的Color结构用来表示不同的颜色,颜色与笔、画笔地起使用来指定要呈现的颜色。具体格式如下:Colormycolor1=Color.Red;还可以自定义颜色,即利用Color.FromArgb方法来创建,其实就是利用红色、绿色、蓝色来混合产生不同的颜色。其中每种颜色都有256种,从0到255,具体格式如下:Colormyc=Color.FromArgb(20,20,156);在自定义颜色时,还可以指定透明度Alpha。Alpha表示所呈现图形后面的对象的透明度。具体格式如下:峰杰工作室3Colormyc=Color.FromArgb(127,20,20,156);其中每一个参数就是透明度。其取值范围也是0~255。6.3Graphics对象常用方法Graphics对象包含绘制图形的所有方法,如直线、曲线、矩形、椭圆、多边形等,还可以绘制图像、图标等。6.2.1DrawLine方法利用该方法可以动态绘制直线,其语法结构如下:publicvoidDrawLine(System.Drawing.Penpen,floatx1,floaty1,floatx2,floaty2)各参数意义如下:1)、pen:System.Drawing.Pen,它确定线条的颜色、宽度和样式。2)、x1:第一个点的x坐标。3)、y1:第一个点的y坐标。4)、x2:第二个点的x坐标。5)、y2:第二个点的y坐标。6.2.2DrawRectangle方法利用该方法可以绘制由坐标对、宽度和高度指定的矩形,其语法结构如下:publicvoidDrawRectangle(System.Drawing.Penpen,floatx,floaty,floatwidth,floatheight)各参数意义如下:1)、pen:System.Drawing.Pen,它确定矩形的颜色、宽度和样式。2)、x:要绘制的矩形的左上角的x坐标。3)、y:要绘制的矩形的左上角的y坐标。4)、width:要绘制的矩形的宽度。5)、height:要绘制的矩形的高度。0第6章图形图像编程4实例DrawLine方法和DrawRectangle方法的应用下面通过具体实例讲解一下DrawLine方法和DrawRectangle方法的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“VisualC#”,模板选择“Windows窗体应用程序”项.,名称为“Ex06_1”。2)设置好各参数后,单击“确定”按钮,就可以创建Windows窗体应用程序,然后设置窗体“Text”属性为“DrawLine方法和DrawRectangle方法的应用”,如图6-1所示。图6-1设置窗体属性3)添加框架控件。单击工具箱中的控件,在窗体中单击添加该控件,并设置“Text”属性为“请选择绘制直线或曲线”,如图6-2所示。图6-2添加框架控件4)添加单选按钮控件。单击工具箱中的控件,在窗体中单击添加2个该控件,设置他们的“Text”属性分别为“直线”和“曲线”,如图6-3所示。峰杰工作室5图6-3添加单选按钮控件5)最后在窗体中添加2个按钮,他们的大小、位置及属性设置如图6-4所示。图6-4添加按钮6)添加代码。双击窗体,进入代码视图。首先定义公共变量,具体代码如下:7)双击窗体,添加窗体的加载事件代码,具体如下:8)选择窗体,然后单击属性面板中的事件按钮,然后选择“MouseUp”事件,如图6-5所示。0第6章图形图像编程6图6-5窗体的事件面板9)双击“MouseUp”事件,添加该事件代码,具体如下:10)选择窗体,双击事件面板中的“MouseMove”事件,添加该事件代码,具体如下:11)选择窗体,双击事件面板中的“MouseDown”事件,添加该事件代码,具体如下:12)双击“清除”按钮,添加该按钮的单击事件代码,具体如下:峰杰工作室713)双击“退出”按钮,添加该按钮的单击事件代码,具体如下:14)运行程序。单击菜单栏中的“调试/启动调试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,选择“直线”单选按钮,然后按下鼠标左键拖动鼠标就可以绘制直线,如图6-6所示。图6-6绘制直线15)单击“清除”按钮,可以清除窗体中绘制的图形。选择“曲线”单选按钮,然后移动鼠标就可以绘制曲线,如图6-7所示。图6-7绘制曲线16)单击“退出”按钮,就可以退出程序。6.2.3DrawArc方法利用该方法可以动态绘制一段弧线,它表示由一对坐标、宽度和高度指定的椭圆部0第6章图形图像编程8分。其语法结构如下:publicvoidDrawArc(System.Drawing.Penpen,floatx,floaty,floatwidth,floatheight,floatstartAngle,floatsweepAngle)各参数意义如下:1)、pen:System.Drawing.Pen,它确定弧线的颜色、宽度和样式。2)、x:定义椭圆的矩形的左上角的x坐标。3)、y:定义椭圆的矩形的左上角的y坐标。4)、width:定义椭圆的矩形的宽度。5)、height:定义椭圆的矩形的高度。6)、startAngle:从x轴到弧线的起始点沿顺时针方向度量的角(以度为单位)。7)、sweepAngle:从startAngle参数到弧线的结束点沿顺时针方向度量的角(以度为单位)。6.2.4DrawEllipse方法利用该方法可以动态绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆,其语法结构如下:publicvoidDrawEllipse(System.Drawing.Penpen,floatx,floaty,floatwidth,floatheight)各参数意义如下:1)、pen:System.Drawing.Pen,它确定曲线的颜色、宽度和样式。2)、x:定义椭圆的边框的左上角的X坐标。3)、y:定义椭圆的边框的左上角的Y坐标。4)、width:定义椭圆的边框的宽度。5)、height:定义椭圆的边框的高度。实例DrawArc方法和DrawEllipse方法的应用下面通过具体实例讲解一下DrawArc方法和DrawEllipse方法的应用。1)单击菜单栏中的“文件/新建/项目”(快捷键:Ctrl+Shift+N),打开“新建项目”对话框,项目类型选择“VisualC#”,模板选择“Windows窗体应用程序”项.,名称为“Ex06_2”。2)设置好各参数后,单击“确定”按钮,就可以创建Windows窗体应用程序,然后设置窗体“Text”属性为“DrawArc方法和DrawEllipse方法的应用”,如图6-8所示。峰杰工作室9图6-8设置窗体属性3)添加框架控件。单击工具箱中的控件,在窗体中单击添加3个该控件,他们的大小、位置及属性设置,如图6-9所示。图6-9添加框架控件4)添加图像控件。单击工具箱中的控件,在窗体中单击添加3个该控件,调整其大小和位置后效果如图6-10所示。图6-10添加图像控件5)最后在窗体中添加4个按钮,他们的大小、位置及属性设置如图6-11所示。图6-11添加按钮0第6章图形图像编程106)添加代码。双击“绘制圆弧”按钮,添加该按钮的单击事件代码,具体如下:7)双击“绘制圆”按钮,添加该按钮的单击事件代码,具体如下:8)双击“绘制椭圆”按钮,添加该按钮的单击事件代码,具体如下:9)双击“退出程序”按钮,添加该按钮的单击事件代码,具体如下:10)运行程序。单击菜单栏中的“调试/启动调试”命令(快捷键:F5)或单击工具箱中的按钮,运行程序,单击“绘制圆弧”按钮,就可以动态的绘制圆弧,如图6-12所示。峰杰工作室11图6-12绘制圆弧11)单击“绘制圆”按钮,就动态绘制一个圆,单击“绘制椭圆”按钮,就动态绘制一个椭圆,如图6-13所示。图6-13绘制圆和椭圆12)单击“退出程序”按钮,就可以结束程序。6.2.5FillEllipse方法利用该方法可以动态填充边框所定义的椭圆的内部,其语法结构如下:publicvoidFillEllipse(System.Drawing.Brushbrush,floatx,floaty,floatwidth,floatheight)各参数意义如下:1)、brush:确定填充特性的System.Drawing.Brush。2)、x:定义椭圆的边框的左上角的X坐标。3)、y:定义椭圆的边框的左上角的Y坐标。4)、width:定义椭圆的边框的宽度。5)、height:定义椭圆的边框的高度。实例FillE
本文标题:第6章 图形图像编程
链接地址:https://www.777doc.com/doc-5544223 .html