【问题标题】:Algorithm for drawing an anti-aliased circle?绘制抗锯齿圆的算法?
【发布时间】:2010-10-03 21:39:48
【问题描述】:

什么是绘制抗锯齿圆的好算法? (填充和未填充。)

【问题讨论】:

    标签: algorithm drawing rendering graphics


    【解决方案1】:

    Bresenham(以直线算法闻名)也有一个圆算法。

    吴小林采用了线条算法进行抗锯齿,圆形算法也是如此。

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

    你可以通过这个搜索找到圆算法:

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

    -亚当

    【讨论】:

    【解决方案2】:

    如果你想要一个简单的,从像素矩阵 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。

    【讨论】:

      【解决方案3】:

      创建一个图形对象 g。 做

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

      使用 g.FillEllipse 或 g.DrawEllipse 绘制抗锯齿圆

      【讨论】:

      • 他有没有说过他在 .NET 上?
      • 不。但他有没有说过他不是:?)
      • 他要求的是一种算法,而不是一个特定于平台的示例,说明如何使用为你做的事情。
      • “如何使用为你做的事情”对我来说听起来与“算法”完全相反。算法通常涉及数学和无处不在的工作,您只需将属性设置为预定义的值。 ;-)
      • 我实际上发现这条评论很有用,因为我确实需要知道如何在 .NET 中执行此操作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多