一些程序如何绘制流畅的线条?

时间:2012-10-22 12:48:03

标签: algorithm graphics 2d

如你所知,当我们使用通常的线条绘制方法时,我们使用这样的代码(我不是在谈论特定的编程语言。我只是在谈论我们做了什么。):

line(point1,point2)

或类似的东西。

我确信您已经看到,当我们使用这些常用方法绘制对角线线时,线条将不会平滑。例如,如果你去windows绘画并将线宽设置为最小,然后尝试绘制对角线,你会看到线条中的断点。但是,在像Photoshop,Corel DRAW这样的程序中,当你画一条对角线时,它非常平滑,你看不到断裂。 如果你仔细看看像素,你会看到是什么原因:

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

我知道浅色像素会导致光滑度。

好的,你能告诉我我需要做什么算法吗?

简单地说,PLZ。

3 个答案:

答案 0 :(得分:3)

我认为Xiaolin Wu's line algorithm正是您所需要的。

答案 1 :(得分:1)

您需要应用抗锯齿算法

抗锯齿是指许多技术来解决诸如数字图像的采样信号中的混叠问题。  具体来说,可以参考:

  • 抗混叠滤波器,一种在信号采样器之前使用的滤波器,用于限制信号的带宽
  • 多重采样抗锯齿,一种抗锯齿,使用的技术 用计算机图形学来提高图像质量
  • 超样本抗锯齿,抗锯齿技术
  • 空间抗锯齿,最小化锯齿的技术 以较低分辨率表示高分辨率图像
  • 时间抗锯齿,寻求减少或消除的影响 时间混叠

实现消除锯齿的一种简单方法是将图像渲染4倍于原始大小,然后每4像素(4平方像素)存储平均颜色值,并使用平均值渲染新图像,这样它就可以了光滑。

答案 2 :(得分:1)

仔细查看在窗口绘制的线条,它会填充符合一种颜色的像素(没有线条颜色的阴影),因此它不会光滑。
平滑线使用浅色调的线条颜色填充相邻像素,以使该线看起来平滑。enter image description here