【vbnet GDI+】(1).doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:6 大小:86KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

【vbnet GDI+】(1).doc

【vbnetGDI+】(1).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

【vb.netGDI+】五:使用Graphics物件填充圖形上一章我們瞭解如何使用Graphics物件來繪製由點和線構成的線圖《使用Graphics物件繪製線圖》,在實際繪圖中,我們還需要使用色塊等來填充圖形,這一章,就來看如何在vb.net中使用Graphics物件來填充圖形。注:以下所有示例都假設我們在表單上拖放了一個PictureBox控制項,一個Button控制項。一、FillClosedCurve方法FillClosedCurve方法用於填充由Point結構陣列定義的閉合基數樣條曲線的內部。其格式為:FillClosedCurve(Brush,Point())如下程式所示,我們定義一個包含四個點的陣列作為曲線的基點,同時創建一個藍色的純色筆刷來填充它內部:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimgAsGraphics=Me.PictureBox1.CreateGraphicsDimmBrushAsNewSolidBrush(Color.Blue)Dimp(3)AsPointp(0).X=100p(0).Y=15p(1).X=80p(1).Y=90p(2).X=90p(2).Y=120p(3).X=130p(3).Y=150g.FillClosedCurve(mBrush,p)EndSub執行後如下圖一所示:圖一:FillClosedCurve方法本例所示的只是FillClosedCurve方法的一種最簡單的重載版本,它還有幾個比較重載方式,讀者可以借助MSDN的幫助進行瞭解。二、FillEllipse方法該方法用於填充有一個邊框所定義的橢圓的內部,該邊框由一對左上角座標、一個寬度和一個高度指定。它的一個重載版本如下所示:FillEllipse(Brush,x,y,width,height)如下例所示,我們用藍色筆刷填充一個寬為120,高為100,左上角座標為(20,20)的橢圓:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimgAsGraphics=Me.PictureBox1.CreateGraphicsDimmBrushAsNewSolidBrush(Color.Blue)g.FillEllipse(mBrush,20,20,120,100)EndSub執行結果如下圖二所示:圖二:FillEllipse方法如果需要填充一個正圓,只需要把寬和高設置為一致就可以了,注意這裏的左上角左邊並不是橢圓的中心點。三、FillPie方法FillPie方法填充由一對座標、一個寬度、一個高度以及兩條射線指定的橢圓所定義的扇形區的內部,即填充一個餅狀圖。它填充由橢圓的一段弧線和與該弧線端點相交的兩條射線定義的扇形區的內部。該橢圓由邊框定義。扇形區由startAngle和sweepAngle參數定義的兩條射線以及這兩條射線與橢圓交點之間的弧線組成。如果sweepAngle參數大於360度或小於-360度,則將其分別視為360度或-360度。FillPie方法的格式如下所示:FillPie(redBrush,x,y,width,height,startAngle,sweepAngle)x,y,width,height指定了橢圓的矩形的位置和大小;startAngle,sweepAngle分別定義起始角度(相對於x軸)和掃描角度(兩者都沿順時針方向)。如下程式所示,我們使用一個藍色的筆刷填充一個餅狀圖:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimgAsGraphics=Me.PictureBox1.CreateGraphicsDimmBrushAsNewSolidBrush(Color.Blue)DimxAsSingle=0.0FDimyAsSingle=0.0FDimwidthAsSingle=150.0FDimheightAsSingle=100.0FDimstartAngleAsSingle=0.0FDimsweepAngleAsSingle=95.0Fg.FillPie(mBrush,x,y,width,height,startAngle,sweepAngle)EndSu