有绘制粗抗锯齿线的任何“标准”算法吗?我找到了Xiaolin Wu的绘制1px宽度线的算法,但还没有找到更粗线条的扩展。用于绘制粗抗锯齿线的算法
回答
如果你的线条总是笔直的,而你不想看到抗锯齿曲线,那么可以采用三步法。
我不确定这会在您的环境中效率如何,但您可以使用thickness - 2
绘制该行的别名版本,然后使用吴小林的方法两次来消除边缘的反锯齿。 @Francisco P.的方法也可以工作,实际上可能更可取。
这样或那样的混淆需要沿外边缘平滑。如果您处理的线条厚度大于1,可以通过将两个边缘消除锯齿并填充到中间来实现。
一个无效的,粗糙的,快速的方法是画出更大的线(比如说4x),然后使用加权平均来缩放它们。详情点击此处:
Algorithms for downscaling bitmapped fonts
看接受的答案。
哈,谢谢,但我想我应该在我的问题中用“高效,合理优雅”替换“标准”一词。 – rcv 2011-03-19 21:09:56
好吧,我可能会破坏我的努力,但这是一种非常标准的方式来完成你所要求的。 – 2011-03-20 00:53:31
我认为这涉及CPU和内存之间的折衷。进行多次传递可能会比缩小更耗费计算成本,但降尺度可能需要更多的内存才能获得更高的分辨率。最重要的是,你有CPU处理收缩线。最后,这两种方法在台式机上可能会表现相同,但如果我们谈论手机,它可能会有所作为。无论哪种方式,我认为你的建议是更主流的。 – Xenethyl 2011-03-20 03:46:26
- 1. 抗锯齿算法
- 2. 绘制emf抗锯齿
- 3. 吴的抗锯齿算法,垂直线
- 4. Pyglet OpenGL绘图抗锯齿
- 5. 绘制移动正弦波抗锯齿
- 6. 关于Skia的抗锯齿
- 7. Font.createFont +抗锯齿
- 8. 算法抗锯齿Rastor图像
- 9. 如何绘制锯齿线?
- 10. 强制抗锯齿EMF
- 11. 以快速方式绘制抗锯齿线
- 12. Chrome使用了哪种反锯齿线绘制算法?
- 13. 下划线的TextView不是抗锯齿
- 14. CAShapeLayer禁用抗锯齿
- 15. UIImage ScaleToFit禁用抗锯齿?
- 16. QPainter :: rotate禁用绘制文本的抗锯齿
- 17. ggplot导出的抗锯齿
- 18. 抗锯齿的JWindow(形状)
- 19. CALayer的抗锯齿图纸
- 20. OpenGL ES的iPhone - 绘制反锯齿线
- 21. 在SurfaceView上绘制缩放的位图 - 无抗锯齿
- 22. 用同步滤波器抗锯齿图像的算法
- 23. 在wx中绘制反锯齿线?
- 24. 强制Java2D子像素抗锯齿
- 25. 呈现抗锯齿螺旋
- 26. Imagemagick抗锯齿文字
- 27. 使用CATransform3DRotate时的抗锯齿行
- 28. 用threejs的超级样本抗锯齿
- 29. 使用Xlib启用抗锯齿
- 30. 如何旋转启用抗锯齿的绘图
我在这里找到一个实现在javascript:http://members.chello.at/easyfilter/bresenham.js 我把它复制到GitHub的要点为后人:https://gist.github.com/randvoorhies/ 807ce6e20840ab5314eb7c547899de68#file-bresenham-js-L813 – rcv 2017-08-03 16:09:05