在使用贝塞尔曲线画图的时候,在画线速度比较快的时候可能会出现不够平滑的现象,所以我们要处理一下这样的问题,首先我将代码附在下面,在这段代码之前要获得这个贝塞尔曲线上的点,在我的博客中有一篇文章就是介绍怎么获得贝塞尔曲线上的点的,代码如下:
#define POINT(_INDEX_) [(NSValue *)[points objectAtIndex:_INDEX_] CGPointValue]
@implementation UIBezierPath (Smoothing)
- (UIBezierPath *)smoothedPath:(int)granularity
{
NSMutableArray *points = [self.points mutableCopy];
if (points.count < 4) {
return [self copy];
}
UIBezierPath *smoothedPath = [UIBezierPath bezierPath];
smoothedPath.lineWidth = self.lineWidth;
[smoothedPath moveToPoint:POINT(0)];
[smoothedPath addLineToPoint:POINT(1)];
for (int index = 3; index < points.count; index ++) {
CGPoint p0 = POINT(index - 3);
CGPoint p1 = POINT(index - 2);
CGPoint p2 = POINT(index - 1);
CGPoint p3 = POINT(index);
for (int i = 1; i < granularity; i&#