如何使用Quartz绘制Bézier曲线,其质量等同于默认实现?

时间:2012-11-05 06:12:00

标签: cocoa quartz-graphics bezier

我用我自己的代码绘制Bézier曲线。基本上,我计算了大量的点,我加入了CGPath。但即使使用相同的线宽,我也无法达到与默认实现相同的质量。由于抗锯齿,笔划的边缘有点模糊。中风看起来不错,但我注意到在Apple渲染中,抗锯齿看起来不同;抗锯齿区的宽度(像素既不是笔画的颜色也不是背景的颜色)较小。

使用Instruments进行一些间谍活动表明,UIBezierPath的笔划在libRIP中花费了一些时间,但我找不到它的确切内容。

2 个答案:

答案 0 :(得分:0)

我自己画了一个椭圆,使用了sin和cos操作。我的椭圆看起来和原版一样好。

我知道绘制渐变时出现问题。那是你的情况吗?

答案 1 :(得分:0)

如果您正在绘制大量的点,则可能会出现更深的抗锯齿边缘,因为您的绘图过度。我无法在网上找到一个好的形象来描述它,但如果你从A - > B然后A - >;再次B,两条线可能会产生30%的灰色部分像素,然后将它们混合在一起,产生60%的灰色。

您可能认为自己没有这样做,但如果您的点密度很高,那么您最终可能会遇到重叠的组件(特别是如果您正在绘制单独的线段,则会使您的加盖等重叠)。

可能值得发布一些使用Pixie或xScope拍摄的示例代码和截图,以便我们可以看到正在发生的事情。