绘制抗锯齿圆的算法?

时间:2009-01-27 23:16:46

标签: algorithm drawing rendering graphics

绘制消除锯齿的圆圈有什么好的算法? (已填充且未填写。)

3 个答案:

答案 0 :(得分:10)

Bresenham(线算法成名)也有一个圆算法。

Xiaolin Wu采用了抗锯齿的线算法,同样也对圆算法做了同样的做法。

http://en.wikipedia.org/wiki/Xiaolin_Wu%27s_line_algorithm

您可以使用此搜索找到圈算法:

http://www.google.com/search?q=Xiaolin%20Wu%20circle

- 亚当

答案 1 :(得分:5)

如果你想要一个简单的,请从像素矩阵A到像素矩阵B进行柔和模糊。

这是我使用的(这里是伪代码)

anti_alised_matrix[x][y] = point[x][y] / 2 + point[x+1][y]/8 + point[x-1][y]/8 + point[x][y-1]/8 + point[x][y+1]/8;

当然这适用于灰度,但你可以在RGB中轻松完成。

这实际上非常简单,您也可以添加对角线,即[x + 1] [y + 1]并将其拆分为16或32。

答案 2 :(得分:-10)

创建一个Graphics对象g。 做

g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

使用g.FillEllipse或g.DrawEllipse

绘制抗锯齿圆