如何在ipad中平滑线条

时间:2011-03-14 02:36:41

标签: iphone ios ipad quartz-graphics

我记录了用户触摸开始移动结束ipad时的每个点,然后我将这些点添加到名为路径 CGMutablePathRef 中,然后我使用以下代码绘制用户在ipad中触摸的行(路径)。

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineJoin(context, kCGLineJoinRound);
CGContextSetStrokeColorWithColor(context, [UIColor redColor]);
CGContextSetLineWidth(context, 2);
CGContextAddPath(context, path);
CGContextStrokePath(context);

但这些线条看起来并不顺利,感谢您的帮助

3 个答案:

答案 0 :(得分:5)

使用以下内容可以获得更好的平滑度:

UIGraphicsBeginImageContext(self.frame.size);
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineJoin(UIGraphicsGetCurrentContext(), kCGLineJoinRound);
CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), YES);
CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), YES);
CGContextSetMiterLimit(UIGraphicsGetCurrentContext(), 2.0);

但是如果你需要绘制非常流畅的线条/曲线,那么你需要使用UIBezierCurve或任何其他弯曲算法重绘线条。

编辑:我在代码中做了一些更改,以便顺利绘制。检查我的经典主板应用:https://itunes.apple.com/app/id493525167

答案 1 :(得分:1)

您需要在第一行之后添加此内容。

CGContextSetAllowsAntialiasing(context, true);

答案 2 :(得分:1)

我建议你使用Cocos2d来获得完美流畅的线条。你可能想看一下这个。 https://github.com/krzysztofzablocki/smooth-drawing