線條和曲線的反鋸齒功能

當您使用GDI+繪製線條時,您會提供線條的起點和結束點,但您不需要提供線條上個別圖元的任何資訊。 GDI+可與顯示驅動程式軟體搭配運作,以判斷要開啟哪些圖元,以顯示特定顯示裝置上的線條。

別名

請考慮從點 (4、2) 到點 (16、10) 的直線。 假設座標系統在左上角有其原點,而且測量單位是圖元。 也假設 X 軸指向右邊,而 Y 軸會向下點。 下圖顯示多色背景上繪製之紅色線條的放大檢視。

Line, no antialiasing

用來呈現線條的紅色圖元不透明。 行中沒有部分透明圖元。 這種類型的線條轉譯會讓線條出現不規則的外觀,而線條看起來有點像一個波浪線。 此技術代表含有一條線條的鋸齒稱為別名;此節是理論線的別名。

反鋸齒

轉譯線條的更複雜技術牽涉到使用部分透明圖元以及不透明圖元。 圖元會設定為純紅色,或設定為一些紅色和背景色彩的混合,視其與線條的距離而定。 這種類型的轉譯稱為反鋸齒,並導致人類眼睛認為更平滑的一行。 下圖顯示特定圖元如何與背景混合,以產生反鋸齒線條。

Antialiasing a Line

反鋸齒也稱為平滑,也可以套用至曲線。 下圖顯示平滑橢圓形的放大檢視。

Antialiasing Curves

下圖顯示其實際大小的相同省略號,一次不含反鋸齒,一次具有反鋸齒。

Antialiasing example

若要繪製使用反鋸齒的線條和曲線,請建立 類別的 Graphics 實例,並將其 屬性設定 SmoothingModeAntiAliasHighQuality 。 然後呼叫同 Graphics 一類別的其中一個繪圖方法。

myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)

另請參閱