有没有人知道在光栅中绘制抗锯齿(平滑)二次贝塞尔曲线的合适算法? 我可以简单地将它们绘制为矢量,然后将图像复制到栅格中。
是否有任何聪明且可自由使用的算法将曲线直接绘制到像素? 我目前正在使用此处实现的算法: http://www.bytearray.org/?p=67 quadBezier() 我想知道是否有办法改变它来呈现消除锯齿的bezier? 提前谢谢。
我这样做是为了学习目的,因为我希望它比使用Shape选项中的复制像素更快。 这是一个示例,显示非光滑贝塞尔比常规贝塞尔更快: http://lab.generalrelativity.org/raster/
答案 0 :(得分:4)
实现自己的算法几乎肯定比使用bitmapData.draw(shape)
慢。
当您使用graphics.lineTo
,graphics.curveTo
等时,您正在构建模型,但实际上还没有绘制任何内容。只有在将形状添加到舞台后,并且在随后的[render]
阶段中,才会遍历模型并使用C编写的快速算法绘制像素。当您使用bitmapData.draw
绘制矢量时一个位图,它将使用相同的本机代码。因此,就像你想象的那样,你并没有像往常一样画出任何东西,而且单凭AS3从头开始实施任何东西都很难(或不可能)。