如何在栅格中绘制消除锯齿的贝塞尔曲线?

时间:2012-03-26 22:44:29

标签: actionscript-3 graphics bezier raster

有没有人知道在光栅中绘制抗锯齿(平滑)二次贝塞尔曲线的合适算法? 我可以简单地将它们绘制为矢量,然后将图像复制到栅格中。

是否有任何聪明且可自由使用的算法将曲线直接绘制到像素? 我目前正在使用此处实现的算法: http://www.bytearray.org/?p=67 quadBezier() 我想知道是否有办法改变它来呈现消除锯齿的bezier? 提前谢谢。

我这样做是为了学习目的,因为我希望它比使用Shape选项中的复制像素更快。 这是一个示例,显示非光滑贝塞尔比常规贝塞尔更快: http://lab.generalrelativity.org/raster/

1 个答案:

答案 0 :(得分:4)

实现自己的算法几乎肯定比使用bitmapData.draw(shape)慢。

当您使用graphics.lineTographics.curveTo等时,您正在构建模型,但实际上还没有绘制任何内容。只有在将形状添加到舞台后,并且在随后的[render]阶段中,才会遍历模型并使用C编写的快速算法绘制像素。当您使用bitmapData.draw绘制矢量时一个位图,它将使用相同的本机代码。因此,就像你想象的那样,你并没有像往常一样画出任何东西,而且单凭AS3从头开始实施任何东西都很难(或不可能)。