Mathematica抗锯齿算法

5
我希望能够找到一个抗锯齿算法,它可以用于任何形状的线条(不仅限于直线)。
我注意到Mathematica似乎有一个非常好的算法,可以绘制1或2像素宽的细线。我的当前最佳算法通常需要3个像素以上,因此我的线条比Mathematica的略厚。
有人知道Mathematica用于抗锯齿的算法是什么,或者可以推荐一个高质量的算法,用于生成小于2像素的抗锯齿线条和曲线吗?

你不能三次画出三条分离的线吗? - ElKamina
最清晰和最简单的抗锯齿方法是过采样,但有些缓慢。也就是说,在比实际显示更高的分辨率上绘制线条,然后将其缩小。 - Lee Daniel Crocker
我熟悉这种方法,Mathematica 可能使用它,但是我看到的例子并不总是与 Mathematica 相比质量很好。也许我只是多虑了,但我怀疑他们正在使用一种更复杂的方法。 - Tyler Durden
我对手动过采样没有太多经验,但请注意有许多不同的图像重缩放方式;很可能您需要的质量可以通过使用不同的重采样算法或滤镜来实现。 - Mr.Wizard
1个回答

3

最常用于绘制无锯齿线条的算法之一是Wu's line algorithm

在此基础上,您可以轻松地绘制多边形;这个网站解释了如何推导出该算法以绘制椭圆。


我想要能够绘制任意形状,包括例如正弦和余弦(三角函数),以及高阶多项式。Wu算法主要用于直线。 - Tyler Durden
我认为相同的方法可以应用于任何事情。请参阅此帖子,其中提到如何绘制抗锯齿样条:https://dev59.com/lVLTa4cB1Zd3GeqPe_IS。您可以使用相同的技巧来绘制其他所有内容;另一种方法是使用样条以亚像素精度逼近曲线,并绘制样条。 - Bentoy13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接