日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

正文

GDI圖形編程(5)

Windows移動(dòng)游戲開發(fā)實(shí)戰(zhàn) 作者:(美)Adam Dawes


 

3.2.6  繪制多邊形

多邊形是由多條線段首尾相連并且閉合的圖形。組成多邊形的線段甚至可能會(huì)相互交叉,因此,諸如三角形、正方形以及矩形等都屬于多邊形。

在GDI中繪制一個(gè)多邊形時(shí),與使用DrawLines方法繪制折線有很多相似之處,但有兩個(gè)主要區(qū)別:

● 多邊形總是閉合的,即最后一個(gè)點(diǎn)要與第一個(gè)點(diǎn)相連。

● 多邊形的內(nèi)部區(qū)域可以用某種顏色填充,DrawLines則無(wú)法實(shí)現(xiàn)該功能。

多邊形被定義為一個(gè)Point結(jié)構(gòu)數(shù)組(方式與DrawLines方法中的參數(shù)相同),通過DrawPolygon方法繪制在窗體中。如果數(shù)組中首點(diǎn)與尾點(diǎn)的位置不同,那么這兩點(diǎn)之間會(huì)自動(dòng)通過一條線段連接在一起從而實(shí)現(xiàn)圖形的閉合。

要填充多邊形的內(nèi)部區(qū)域,首先要?jiǎng)?chuàng)建一個(gè)畫刷(在第3.2.4節(jié)的“畫刷”小節(jié)中已經(jīng)介紹過),然后調(diào)用FillPolygon方法即可。如果您還想在多邊形的邊界外顯示一個(gè)輪廓,那么就依次調(diào)用FillPolygon與DrawPolygon(請(qǐng)確保是在填充完內(nèi)部區(qū)域后再繪制輪廓,否則填充了的多邊形會(huì)將輪廓完全遮蓋)。

程序清單3-4繪制了一個(gè)多邊形并對(duì)其進(jìn)行填充,結(jié)果如圖3-5所示。

程序清單3-4  填充并繪制多邊形的輪廓

private void Form1_Paint(object sender, PaintEventArgs e)

{

// Define the points for our polygon

Point[] points = { new Point(40, 20), new Point(90, 80),

new Point(110, 50), new Point(20, 50) };

// First draw the filled polygon...

using (SolidBrush polyBrush = new SolidBrush(Color.LightBlue))

{

e.Graphics.FillPolygon(polyBrush, points);

}

// ...and then draw the outline in black on top of it

using (Pen polyPen = new Pen(Color.Black))

{

e.Graphics.DrawPolygon(polyPen, points);

}

}


上一章目錄下一章

Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)