共用方式為


線條和曲線的反鋸齒功能

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

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

顯示多色背景上純紅色圖元的圖例

請注意,用來呈現線條的紅色圖元不透明。 顯示線條時未涉及部分透明圖元。 這種類型的線條轉譯會讓線條呈現不規則的外觀,而該行看起來有點像一個耙耙。 這個表示含有鋸齒線條的技術稱為別名;這個子是理論線的別名。

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

顯示相同背景上紅色陰影圖元的圖例

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

由白色背景上不同藍色圖元陰影所組成的橢圓形圖例

下圖顯示其實際大小的相同橢圓形,一次沒有反鋸齒,一次具有反鋸齒。

兩個橢圓形的螢幕擷取畫面:具有反鋸齒的螢幕擷取畫面看起來更平滑

若要繪製使用反鋸齒的線條和曲線,請建立 Graphics 物件,並將 SmoothingModeAntiAlias 傳遞給其 Graphics::SetSmoothingMode 方法。 然後呼叫相同 Graphics 物件的其中一個繪圖方法。

myGraphics.SetSmoothingMode(SmoothingModeAntiAlias);
myGraphics.DrawLine(&myPen, 0, 0, 12, 8);

SmoothingModeAntiAliasSmoothingMode 列舉的元素。