我记录了用户触摸开始移动结束ipad时的每个点,然后我将这些点添加到名为路径的 CGMutablePathRef 中,然后我使用以下代码绘制用户在ipad中触摸的行(路径)。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineJoin(context, kCGLineJoinRound);
CGContextSetStrokeColorWithColor(context, [UIColor redColor]);
CGContextSetLineWidth(context, 2);
CGContextAddPath(context, path);
CGContextStrokePath(context);
但这些线条看起来并不顺利,感谢您的帮助
答案 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