圖形圖像編程教程_第1頁(yè)
圖形圖像編程教程_第2頁(yè)
圖形圖像編程教程_第3頁(yè)
圖形圖像編程教程_第4頁(yè)
圖形圖像編程教程_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、超全面的.NET GDI+圖形圖像編程教程GDI+繪圖基礎(chǔ)編寫(xiě)圖形程序時(shí)需要使用GDI(Graphics Device Interface,圖形設(shè)備接口)。從程序設(shè)計(jì)的角度看,GDI包括兩部分:GDI對(duì)象和GDI函數(shù)。GDI對(duì)象定義了GDI函數(shù)使用的工具和環(huán)境變量;而GDI函數(shù)使用GDI對(duì)象繪制各種圖形。在C#中,進(jìn)行圖形程序編寫(xiě)時(shí)用到的是GDI+(Graphics Device Interface Plus,圖形設(shè)備接口)版本,GDI+是GDI的進(jìn)一步擴(kuò)展,它使我們編程更加方便。1 GDI+概述GDI+是微軟在Windows 2000以后操作系統(tǒng)中提供的新的圖形設(shè)備接口,其通過(guò)一套部署為托管

2、代碼的類來(lái)實(shí)現(xiàn),這套類被稱為GDI+的“托管類接口”。GDI+主要提供了一下三類服務(wù):1.二維矢量圖形:GDI+提供了存儲(chǔ)圖形基元自身信息的類(或結(jié)構(gòu)體)、存儲(chǔ)圖形基元繪制方式信息的類以及實(shí)際進(jìn)行繪制的類。2.圖像處理:大多數(shù)圖片都難以劃定為直線和曲線的集合,無(wú)法使用二維矢量圖形方式進(jìn)行處理。因此,GDI+為我們提供了Bitmap、Image等類,它們可用于顯示、操作和奧村BMP、JPG、GIF等圖像格式。3.文字顯示:GDI+支持使用各種字體、字號(hào)和樣式來(lái)顯示文本。我們要進(jìn)行圖形編程,就必須先講解Graphics類,同時(shí)我們還必須掌握Pen、Brush和Rectangle這幾種類。GDI+比

3、GDI優(yōu)越主要表現(xiàn)在兩個(gè)方面:1.GDI+通過(guò)提供新功能(例如:漸變畫(huà)筆和Alpha混合)擴(kuò)展了GDI的功能;2.修訂了編程模型,是圖形編程更加簡(jiǎn)易靈活。2 Graphics類Graphics類封裝一個(gè)GDI+繪圖圖面,提供將對(duì)象繪制到現(xiàn)實(shí)設(shè)備的方法,Graphics與特定的設(shè)備上下文關(guān)聯(lián)。畫(huà)圖方法都被包括在Graphics類中國(guó),在畫(huà)任何對(duì)象(例如:Circle Rectangle)時(shí),我們首先要?jiǎng)?chuàng)建一個(gè)Graphics類實(shí)例,這個(gè)實(shí)例相當(dāng)于建立了一塊畫(huà)布,有了畫(huà)布才可以用各種畫(huà)圖方法進(jìn)行繪圖。繪圖程序的設(shè)計(jì)過(guò)程一般分為兩個(gè)步驟:1.創(chuàng)建Graphics;2.使用Graphics對(duì)象的方法繪

4、圖、顯示文本或處理圖像。通常我們使用下述三種方法來(lái)創(chuàng)建一個(gè)Graphics對(duì)象:方法一:利用控件或窗體的Paint事件中的PaintEventArgs在窗體或控件的Paint事件中接受對(duì)圖形對(duì)象的引用,作為PaintEventArgs(PaintEventArgs指定繪制控件所用的Graphics)的一部分,在為控件創(chuàng)建繪制代碼時(shí),通常會(huì)使用此方法來(lái)獲取對(duì)圖形對(duì)象的引用。例如:創(chuàng)建Graphics對(duì)象的兩種方法1. /窗體的Paint事件的響應(yīng)方法2. privatevoidFrm_Demo_Paint(objectsender,PaintEventArgse)3. 4. Graphics_G

5、raphics=e.Graphics;5. 6. 7. /也可以直接重載控件或窗體的OnPaint方法8. protectedoverridevoidOnPaint(PaintEventArgse)9. 10. Graphics_Graphics=e.Graphics;11. 12. 13. 創(chuàng)建Graphics對(duì)象的兩種方法Paint事件在重繪控件時(shí)發(fā)生。方法二:調(diào)用某控件或窗體的CreateGraphics方法調(diào)用某控件或窗體的CreateGraphics方法以獲取對(duì)Graphics對(duì)象的引用,該對(duì)象表示該控件或窗體的繪圖圖面。如果想在已存在的窗體或控件上繪圖,通常會(huì)使用此方法,例如:1.

6、 1Graphics_Graphics=this.CreateGraphics();/在當(dāng)前窗體上創(chuàng)建Graphics對(duì)象方法三:調(diào)用Graphics類的FromImage靜態(tài)方法由從Image集成的任何對(duì)象創(chuàng)建Graphics對(duì)象。在需要更改已存在的圖像時(shí),通常會(huì)使用此方法。例如:使用Graphics.FromImage()方法 創(chuàng)建Graphics對(duì)象1. Imageimg=Image.FromFile(孤影.jpg);/建立Image對(duì)象2. Graphics_Graphics=Graphics.FromImage(img);/創(chuàng)建Graphics對(duì)象2.1 Graphics類的方法成員

7、有了一個(gè)Graphics的對(duì)象引用后,就可以利用該對(duì)象的成員進(jìn)行各種各樣圖形的繪制,下面表格列出了Graphics類的常用方法成員:Graphics類常用方法成員名稱說(shuō)明名稱說(shuō)明DrawArc畫(huà)弧DrawBezier畫(huà)立體的貝爾塞曲線DrawBeziers畫(huà)連續(xù)立體的貝爾塞曲線DrawClosedCurve畫(huà)閉合曲線DrawCurve畫(huà)曲線DrawEllipse畫(huà)橢圓DrawImage畫(huà)圖像DrawLine畫(huà)線DrawPath通過(guò)路徑畫(huà)線和曲線DrawPie畫(huà)餅形DrawPolygon畫(huà)多邊形DrawRectangle畫(huà)矩形DrawString繪制文字FillEllipse填充橢圓FillPa

8、th填充路徑FillPie填充餅圖FillPolygon填充多邊形FillRectangle填充矩形FillRectangles填充矩形組FillRegion填充區(qū)域在.NET中,GDI+的所有繪圖功能都包括在System、System.Drawimg、System.Drawimg.Imaging、System.Drawimg.Drawimg2D和System.Drawimg.Text等命名空間中,因此開(kāi)始用GDI+類之前,需要先引用相應(yīng)的命名空間。2.2 引用命名空間在C#應(yīng)用程序中使用using命令引用給定的命名空間或類,下面是一個(gè)C#應(yīng)用程序引用命名空間的例子:引用命名空間1. usin

9、gSystem;2. usingSystem.Collections.Generic;3. usingSystem.Data;4. usingSystem.ComponentModel;5. usingSystem.Drawing;6. usingSystem.Drawing.Drawing2D;7. usingSystem.Drawing.Imaging;8. 9. 引用命名空間3 常用畫(huà)圖對(duì)象在創(chuàng)建了Graphics對(duì)象后,就可以用它開(kāi)始繪圖了,可以畫(huà)線、填充圖形、顯示文本等等,其中主要用到的對(duì)象還有:Pen:用來(lái)用patterns、colors或者bitmaps進(jìn)行填充Color:用來(lái)畫(huà)

10、線和多邊形,包括矩形、圓和餅形Font:用來(lái)給文字設(shè)置字體格式Brush:用來(lái)描述顏色Rectangle:矩形結(jié)構(gòu)通常用來(lái)在窗體上畫(huà)矩形Point:描述一對(duì)有序的x,y兩個(gè)坐標(biāo)值3.1 Pen類Pen類用來(lái)繪制指定寬度和樣式的直線。使用DashStyle屬性繪制幾種虛線,可以使用各種各樣填充樣式(包括純色和紋理)來(lái)填充Pen繪制的直線,填充模式取決于畫(huà)筆或用作填充對(duì)象的紋理。使用畫(huà)筆時(shí),需要先實(shí)例化一個(gè)畫(huà)筆對(duì)象,主要有以下幾種方法:實(shí)例化畫(huà)筆對(duì)象1. /用指定的顏色實(shí)例化一只畫(huà)筆2. publicPen(Color);3. 4. /用指定的畫(huà)刷實(shí)例化一只畫(huà)筆5. publicPen(Brush

11、);6. 7. /用指定的畫(huà)刷和寬度實(shí)例化一只畫(huà)筆8. publicPen(Brush,float);9. 10. /用指定的顏色和寬度實(shí)例化一只畫(huà)筆11. publicPen(Color,float);12. 13. /實(shí)例化畫(huà)筆格式如下:14. Penpen=newPen(Color.Blue);15. /或者:16. Penpen=newPen(Color.Blue,100);17. 18. 實(shí)例化畫(huà)筆對(duì)象Pen常用的屬性如下:Pen常用屬性名稱說(shuō)明名稱說(shuō)明Alignment獲得或者設(shè)置畫(huà)筆的對(duì)齊方式Brush獲得或者設(shè)置畫(huà)筆的屬性Color獲得或者設(shè)置畫(huà)筆的顏色Width獲得或者設(shè)置畫(huà)

12、筆的寬度3.2 Color結(jié)構(gòu)在自然界中,顏色大都由透明度(A)和三基色(R,G,B)所組成。在GDI+中,通過(guò)Color結(jié)構(gòu)封裝對(duì)顏色的定義,Color結(jié)構(gòu)中,除了提供(A,R,G,B)以外,還提供許多系統(tǒng)定義的顏色,如Pink(粉色)。另外,還提供許多靜態(tài)成員,用戶對(duì)顏色進(jìn)行操作。Color結(jié)構(gòu)的基本屬性如下表:顏色的基本屬性名稱說(shuō)明A獲取此Color結(jié)構(gòu)的Alpha分量值,取值(0255)R獲取此Color結(jié)構(gòu)的紅色分量值,取值(0255)G獲取此Color結(jié)構(gòu)的綠色分量值,取值(0255)B獲取此Color結(jié)構(gòu)的藍(lán)色分量值,取值(0255)Name獲取此Color結(jié)構(gòu)的名稱,這將返回用

13、戶定義的顏色的名稱或已知顏色的名稱(如果該顏色是從某個(gè)名稱創(chuàng)建的)。對(duì)于自定義的顏色,這將返回RGB值。Color結(jié)構(gòu)的基本(靜態(tài))方法如下表:顏色的基本方法名稱說(shuō)明FromArgb從四個(gè)8位的ARGB分量(Alpha、紅色、綠色和藍(lán)色)值創(chuàng)建Color結(jié)構(gòu)FromKnowColor從指定餓預(yù)定義顏色創(chuàng)建一個(gè)Color結(jié)構(gòu)FromName從預(yù)定義顏色的指定名稱創(chuàng)建一個(gè)Color結(jié)構(gòu)。Color結(jié)構(gòu)變量可以通過(guò)已有顏色構(gòu)造,也可以通過(guò)RGB建立,例如:創(chuàng)建Color構(gòu)造對(duì)象1. Colorcolor1=Color.FromArgb(96,06,25);2. Colorcolor2=Color.F

14、romKnownColor(KnownColor.Blue);/KnowColor為枚舉類型3. Colorcolor3=Color.FromName(LightBlue);在圖像處理中一般需要獲取或設(shè)置像素的顏色值,獲取一幅圖像的某個(gè)像素顏色值得具體步驟如下:1.定義Bitmap1. Bitmapbitmap=newBitmap(D:孤影LonelyShadow.bmp);2.定義一個(gè)顏色變量,把在指定位置所取得的像素值存入顏色變量中1. Colorcolor=newColor();2. color=bitmap.GetPixel(10,10);/獲取此Bitmap中指定像素的顏色3.將顏色

15、值分解出單色分量值1. intr,g,b;2. r=color.R;3. g=color.G;4. b=color.B;3.3 Font類Font類定義特定文本格式,包括字體、字號(hào)和字形屬性。Font類的常用構(gòu)造函數(shù)是:publicFont(string字體名,float字號(hào), FontStyle 字形)其中字號(hào)和字體為可選項(xiàng)publicFont(string字體名,float字號(hào))其中字體名為Font的FontFamily的字符串表示形式下面是定義一個(gè)F哦你團(tuán)隊(duì)相愛(ài)難過(guò)的示例代碼:1. FontFamilyfontFamily=newFontFamily(Arial);2. Fontfont

16、=newFont(fontFamily,16,FontStyle.Regular,GraphicsUnit.Pixel);字體常用屬性如下表:字體的常用屬性名稱說(shuō)明名稱說(shuō)明Bold是否為粗體FontFamily字體成員Height字體高Italic是否為斜體Name字體名稱Size字體尺寸SizeInPoints獲取此Font對(duì)象的字號(hào),以磅為單位Strikeout是否有刪除線Style字體類型UnderlineUnitUnit字體尺寸單位3.4 Brush類Brush類是一個(gè)抽象的基類,因此它不能被實(shí)例化,我們總是用它的派生類進(jìn)行實(shí)例化一個(gè)畫(huà)刷的對(duì)象,當(dāng)我們對(duì)圖形內(nèi)部進(jìn)行填充操作時(shí)就會(huì)用到畫(huà)

17、刷,關(guān)于畫(huà)刷在 1.5 中有詳細(xì)的講解。3.5 Rectangle結(jié)構(gòu)存儲(chǔ)一組整數(shù),共四個(gè),表示一個(gè)矩形的位置和大小。矩形結(jié)構(gòu)通常用來(lái)在窗體上畫(huà)矩形,除了利用它的構(gòu)造函數(shù)矩形對(duì)象外,還可以利用Rectangle結(jié)構(gòu)的屬性成員,其屬性成員如下表:Rectangle結(jié)構(gòu)屬性名稱說(shuō)明名稱索命Bottom底端坐標(biāo)Height矩形高IsEmpty測(cè)試矩形寬和高是否為0Left矩形左邊坐標(biāo)Location矩形的位置Right矩形右邊坐標(biāo)Size矩形尺寸Top矩形頂端坐標(biāo)Width矩形寬X矩形左上角頂點(diǎn)X坐標(biāo)Y矩形左上角頂點(diǎn)Y坐標(biāo)Rectangle結(jié)構(gòu)的構(gòu)造函數(shù)有以下兩個(gè):Rectangle結(jié)構(gòu)的構(gòu)造函數(shù)1

18、. /用指定的位置和大小初始化Rectangle類的新實(shí)例2. publicRectangle(Point,Size);/Size結(jié)構(gòu)存儲(chǔ)一個(gè)有序整數(shù)對(duì),通常為矩形的寬度和高度3. publicRectangle(int,int,int,int);1.3.6 Point結(jié)構(gòu)用指定坐標(biāo)初始化Point類的新實(shí)例,這個(gè)結(jié)構(gòu)很像C+的Point結(jié)構(gòu),它描述了一對(duì)有序的x,y兩個(gè)坐標(biāo)值,其構(gòu)造函數(shù)為:publicPoint(intx,inty);其中x為該點(diǎn)的水平位置;y為該點(diǎn)的垂直位置。下面是構(gòu)造Point對(duì)象的示例代碼:1. Pointpt1=newPoint(30,30);2. Pointpt2

19、=newPoint(110,110);4 基本圖形繪制舉例4.1 畫(huà)一個(gè)矩形建一個(gè)C#.NET WinForms窗體應(yīng)用程序,通過(guò)在窗體的OnPaint事件中繪制一個(gè)填充的漸變矩形:填充矩形方法FillRectangle()的語(yǔ)法幫助定義如下:填充矩形的方法FillRectangle() 語(yǔ)法定義1. /2. /摘要:3. /填充System.Drawing.Rectangle結(jié)構(gòu)指定的矩形的內(nèi)部。4. /5. /參數(shù):6. /brush:7. /確定填充特性的System.Drawing.Brush。8. /9. /rect:10. /System.Drawing.Rectangle結(jié)構(gòu),它

20、表示要填充的矩形。11. /12. /異常:13. /System.ArgumentNullException:14. /brush為null。15. publicvoidFillRectangle(Brushbrush,Rectanglerect);16. /17. /摘要:18. /填充System.Drawing.RectangleF結(jié)構(gòu)指定的矩形的內(nèi)部。19. /20. /參數(shù):21. /brush:22. /確定填充特性的System.Drawing.Brush。23. /24. /rect:25. /System.Drawing.RectangleF結(jié)構(gòu),它表示要填充的矩形。26.

21、 /27. /異常:28. /System.ArgumentNullException:29. /brush為null。30. publicvoidFillRectangle(Brushbrush,RectangleFrect);31. /32. /摘要:33. /填充由一對(duì)坐標(biāo)、一個(gè)寬度和一個(gè)高度指定的矩形的內(nèi)部。34. /35. /參數(shù):36. /brush:37. /確定填充特性的System.Drawing.Brush。38. /39. /x:40. /要填充的矩形的左上角的x坐標(biāo)。41. /42. /y:43. /要填充的矩形的左上角的y坐標(biāo)。44. /45. /width:46.

22、/要填充的矩形的寬度。47. /48. /height:49. /要填充的矩形的高度。50. /51. /異常:52. /System.ArgumentNullException:53. /brush為null。54. publicvoidFillRectangle(Brushbrush,floatx,floaty,floatwidth,floatheight);55. /56. /摘要:57. /填充由一對(duì)坐標(biāo)、一個(gè)寬度和一個(gè)高度指定的矩形的內(nèi)部。58. /59. /參數(shù):60. /brush:61. /確定填充特性的System.Drawing.Brush。62. /63. /x:64.

23、/要填充的矩形的左上角的x坐標(biāo)。65. /66. /y:67. /要填充的矩形的左上角的y坐標(biāo)。68. /69. /width:70. /要填充的矩形的寬度。71. /72. /height:73. /要填充的矩形的高度。74. /75. /異常:76. /System.ArgumentNullException:77. /brush為null。78. publicvoidFillRectangle(Brushbrush,intx,inty,intwidth,intheight);79. 80. 填充矩形的方法FillRectangle()語(yǔ)法定義我們?cè)谶@里只使用第一種定義,演示填充矩形,示例

24、代碼如下:畫(huà)一個(gè)顏色漸變的矩形1. /2. /窗體的Paint事件的響應(yīng)方法3. /4. /當(dāng)前事件觸發(fā)者(當(dāng)前窗體)5. /附帶的事件參數(shù)6. privatevoidFrm_Demo_Paint(objectsender,PaintEventArgse)7. 8. Graphicsg=e.Graphics;/創(chuàng)建當(dāng)前窗體的Graphics對(duì)象9. Rectanglerect=newRectangle(50,30,100,100);/創(chuàng)建一個(gè)矩形(x,y,width,height)10. /創(chuàng)建線性漸變畫(huà)刷(畫(huà)刷界限,起始顏色,結(jié)束顏色,漸變角度)11. LinearGradientBrush

25、lBrush=newLinearGradientBrush(rect,Color.Purple,Color.LightBlue,LinearGradientMode.BackwardDiagonal);12. g.FillRectangle(lBrush,rect);/走起13. 14. 15. 畫(huà)一個(gè)顏色漸變的矩形上述代碼運(yùn)行效果如下:4.2 畫(huà)一個(gè)弧畫(huà)弧線的語(yǔ)法定義如下:畫(huà)弧線方法DrawArc()的定義1. /2. /摘要:3. /繪制一段弧線,它表示System.Drawing.Rectangle結(jié)構(gòu)指定的橢圓的一部分。4. /5. /參數(shù):6. /pen:7. /System.Dra

26、wing.Pen,它確定弧線的顏色、寬度和樣式。8. /9. /rect:10. /System.Drawing.RectangleF結(jié)構(gòu),它定義橢圓的邊界。11. /12. /startAngle:13. /從x軸到弧線的起始點(diǎn)沿順時(shí)針?lè)较蚨攘康慕牵ㄒ远葹閱挝唬?4. /15. /sweepAngle:16. /從startAngle參數(shù)到弧線的結(jié)束點(diǎn)沿順時(shí)針?lè)较蚨攘康慕牵ㄒ远葹閱挝唬?7. /18. /異常:19. /System.ArgumentNullException:20. /pen為null。21. publicvoidDrawArc(Penpen,Rectanglerect

27、,floatstartAngle,floatsweepAngle);22. 23. 畫(huà)弧線方法DrawArc()的定義參照定義的幫助,可寫(xiě)出如下畫(huà)弧線的代碼:畫(huà)弧線示例代碼1. /2. /窗體的Paint事件的響應(yīng)方法3. /4. /當(dāng)前事件觸發(fā)者(當(dāng)前窗體)5. /附帶的事件參數(shù)6. privatevoidFrm_Demo_Paint(objectsender,PaintEventArgse)7. 8. Graphicsgraphics=e.Graphics;9. Penpen=newPen(Color.Blue);10. Rectanglerect=newRectangle(50,50,2

28、00,100);11. graphics.DrawArc(pen,rect,12,84);12. 13. 14. 畫(huà)弧線示例代碼上述代碼運(yùn)行結(jié)果如下:4.3 畫(huà)線畫(huà)線DrawLine()方法的語(yǔ)法定義如下:DrawLine()語(yǔ)法定義1. /2. /摘要:3. /繪制一條連接兩個(gè)System.Drawing.Point結(jié)構(gòu)的線。4. /5. /參數(shù):6. /pen:7. /System.Drawing.Pen,它確定線條的顏色、寬度和樣式。8. /9. /pt1:10. /System.Drawing.Point結(jié)構(gòu),它表示要連接的第一個(gè)點(diǎn)。11. /12. /pt2:13. /System.

29、Drawing.Point結(jié)構(gòu),它表示要連接的第二個(gè)點(diǎn)。14. /15. /異常:16. /System.ArgumentNullException:17. /pen為null。18. publicvoidDrawLine(Penpen,Pointpt1,Pointpt2);19. /20. /摘要:21. /繪制一條連接兩個(gè)System.Drawing.PointF結(jié)構(gòu)的線。22. /23. /參數(shù):24. /pen:25. /System.Drawing.Pen,它確定線條的顏色、寬度和樣式。26. /27. /pt1:28. /System.Drawing.PointF結(jié)構(gòu),它表示要連接

30、的第一個(gè)點(diǎn)。29. /30. /pt2:31. /System.Drawing.PointF結(jié)構(gòu),它表示要連接的第二個(gè)點(diǎn)。32. /33. /異常:34. /System.ArgumentNullException:35. /pen為null。36. publicvoidDrawLine(Penpen,PointFpt1,PointFpt2);37. /38. /摘要:39. /繪制一條連接由坐標(biāo)對(duì)指定的兩個(gè)點(diǎn)的線條。40. /41. /參數(shù):42. /pen:43. /System.Drawing.Pen,它確定線條的顏色、寬度和樣式。44. /45. /x1:46. /第一個(gè)點(diǎn)的x坐標(biāo)。4

31、7. /48. /y1:49. /第一個(gè)點(diǎn)的y坐標(biāo)。50. /51. /x2:52. /第二個(gè)點(diǎn)的x坐標(biāo)。53. /54. /y2:55. /第二個(gè)點(diǎn)的y坐標(biāo)。56. /57. /異常:58. /System.ArgumentNullException:59. /pen為null。60. publicvoidDrawLine(Penpen,floatx1,floaty1,floatx2,floaty2);61. /62. /摘要:63. /繪制一條連接由坐標(biāo)對(duì)指定的兩個(gè)點(diǎn)的線條。64. /65. /參數(shù):66. /pen:67. /System.Drawing.Pen,它確定線條的顏色、寬度和

32、樣式。68. /69. /x1:70. /第一個(gè)點(diǎn)的x坐標(biāo)。71. /72. /y1:73. /第一個(gè)點(diǎn)的y坐標(biāo)。74. /75. /x2:76. /第二個(gè)點(diǎn)的x坐標(biāo)。77. /78. /y2:79. /第二個(gè)點(diǎn)的y坐標(biāo)。80. /81. /異常:82. /System.ArgumentNullException:83. /pen為null。84. publicvoidDrawLine(Penpen,intx1,inty1,intx2,inty2);85. 86. DrawLine()語(yǔ)法定義根據(jù)定義的幫助,我們以第一種語(yǔ)法 可以寫(xiě)出如下示例代碼:畫(huà)線DrawLine()函數(shù)示例代碼1. /2

33、. /窗體的Paint事件的響應(yīng)方法3. /4. /當(dāng)前事件觸發(fā)者(當(dāng)前窗體)5. /附帶的事件參數(shù)6. privatevoidFrm_Demo_Paint(objectsender,PaintEventArgse)7. 8. Graphicsgraphics=e.Graphics;/創(chuàng)建當(dāng)前窗體的Graphics對(duì)象9. Penpen=newPen(Color.Blue);/創(chuàng)建藍(lán)色畫(huà)筆對(duì)象10. PointpointStart=newPoint(30,30);/創(chuàng)建起始點(diǎn)11. PointpointEnd=newPoint(150,150);/創(chuàng)建結(jié)束點(diǎn)12. graphics.DrawL

34、ine(pen,pointStart,pointEnd);/畫(huà)線13. 14. 15. 畫(huà)線DrawLine()函數(shù)示例代碼上述代碼運(yùn)行效果圖如下:4.4 畫(huà)橢圓還是先看一下DrawEllipse()畫(huà)橢圓的語(yǔ)法定義:畫(huà)橢圓方法 DrawEllipse()語(yǔ)法定義1. /2. /摘要:3. /繪制邊界System.Drawing.Rectangle結(jié)構(gòu)指定的橢圓。4. /5. /參數(shù):6. /pen:7. /System.Drawing.Pen,它確定曲線的顏色、寬度和樣式。8. /9. /rect:10. /System.Drawing.Rectangle結(jié)構(gòu),它定義橢圓的邊界。11. /1

35、2. /異常:13. /System.ArgumentNullException:14. /pen為null。15. publicvoidDrawEllipse(Penpen,Rectanglerect);16. /17. /摘要:18. /繪制邊界System.Drawing.RectangleF定義的橢圓。19. /20. /參數(shù):21. /pen:22. /System.Drawing.Pen,它確定曲線的顏色、寬度和樣式。23. /24. /rect:25. /System.Drawing.RectangleF結(jié)構(gòu),它定義橢圓的邊界。26. /27. /異常:28. /System.A

36、rgumentNullException:29. /pen為null。30. publicvoidDrawEllipse(Penpen,RectangleFrect);31. /32. /摘要:33. /繪制一個(gè)由邊框(該邊框由一對(duì)坐標(biāo)、高度和寬度指定)定義的橢圓。34. /35. /參數(shù):36. /pen:37. /System.Drawing.Pen,它確定曲線的顏色、寬度和樣式。38. /39. /x:40. /定義橢圓的邊框的左上角的X坐標(biāo)。41. /42. /y:43. /定義橢圓的邊框的左上角的Y坐標(biāo)。44. /45. /width:46. /定義橢圓的邊框的寬度。47. /48.

37、 /height:49. /定義橢圓的邊框的高度。50. /51. /異常:52. /System.ArgumentNullException:53. /pen為null。54. publicvoidDrawEllipse(Penpen,floatx,floaty,floatwidth,floatheight);55. /56. /摘要:57. /繪制一個(gè)由邊框定義的橢圓,該邊框由矩形的左上角坐標(biāo)、高度和寬度指定。58. /59. /參數(shù):60. /pen:61. /System.Drawing.Pen,它確定曲線的顏色、寬度和樣式。62. /63. /x:64. /定義橢圓的邊框的左上角的X

38、坐標(biāo)。65. /66. /y:67. /定義橢圓的邊框的左上角的Y坐標(biāo)。68. /69. /width:70. /定義橢圓的邊框的寬度。71. /72. /height:73. /定義橢圓的邊框的高度。74. /75. /異常:76. /System.ArgumentNullException:77. /pen為null。78. publicvoidDrawEllipse(Penpen,intx,inty,intwidth,intheight);79. 80. 畫(huà)橢圓方法DrawEllipse()語(yǔ)法定義參照上面的語(yǔ)法定義,我們根據(jù)第一種語(yǔ)法,可以寫(xiě)出如下示例代碼:畫(huà)橢圓DrawEllipse

39、()函數(shù)示例代碼1. /2. /窗體的Paint事件的響應(yīng)方法3. /4. /當(dāng)前事件觸發(fā)者(當(dāng)前窗體)5. /附帶的事件參數(shù)6. privatevoidFrm_Demo_Paint(objectsender,PaintEventArgse)7. 8. Graphicsgraphics=e.Graphics;/創(chuàng)建當(dāng)前窗體的Graphics對(duì)象9. Penpen=newPen(Color.Blue,100);/創(chuàng)建藍(lán)色粗細(xì)為100的畫(huà)筆對(duì)象10. Rectanglerect=newRectangle(50,50,200,100);/創(chuàng)建橢圓所在的矩形范圍11. graphics.DrawEllipse(pen,rect);/在指定的范圍內(nèi)畫(huà)橢圓12. 13. 14. 畫(huà)橢圓DrawEll

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論