2012-10-22 48 views
1

如你所知,當我們用通常的畫線方法,我們用這樣的代碼(我不是在談論一個特定的編程語言,我只是談到我們做什麼。):某些程序如何繪製流暢的線條?

line(point1,point2) 

或類似的東西。

我敢肯定,你已經看到,當我們繪製對角線線與這些常用的方法,行不會平滑。例如,如果你去了Windows畫圖並將線寬設置爲最小值,那麼嘗試繪製一條對角線,就會看到線條中斷。但是,在一些像Photoshop這樣的程序中,Corel DRAW在繪製對角線時非常平滑,並且看不到中斷。 如果你把在像素仔細看看,你會看到是什麼原因導致:

https://skydrive.live.com/embed?cid=6D7B572F0E7DEFED&resid=6D7B572F0E7DEFED%21115&authkey=AMgqS95hWkp-e5w

我知道,淺色像素導致的平滑度。

好的,你能告訴我我需要做什麼算法嗎?

簡單地說,plz。

+0

我認爲「反鋸齒」是這種效果的通用名稱,但繪製線條時可能會有更具體的算法。 – Cray

+0

反鋸齒應該是你的算法。 –

回答

1

您需要申請一個抗鋸齒算法

抗鋸齒指數的打擊採樣信號失真的問題的技術,如數字圖像。 具體而言,可以指:

  • 抗混疊濾波器,信號採樣之前使用的,以限制信號
  • 多重採樣抗混疊,類型抗混疊的,一個的帶寬的濾波器技術在計算機圖形中使用 以提高圖像質量
  • 超級採樣抗混疊,抗混疊技術
  • 反鋸齒,最小化當 表示以較低的分辨率的高分辨率圖像混疊的技術
  • 時間反失真,旨在減少或消除 時間混淆

一個簡單的方法來實現抗鋸齒的效果來渲染圖像4時它的原始尺寸,然後存儲顏色平均值每4個像素(4個正方形像素),並以平均值渲染一幅新圖像,使其平滑。

+0

對不起,但超級採樣不適用於線條。 –

+0

它將取決於行的寬度 – Weacked

+0

正確。我認爲大多數繪製線條的算法都是單個像素,否則它們會變成填充算法。 –

1

在窗口中仔細畫線繪製它用一種顏色填充像素(沒有線條顏色),因此它不會平滑。
平滑線用線條顏色的淺陰影填充相鄰像素,以便線看起來平滑。 enter image description here

相關問題