给定一组点画三次贝塞尔曲线
2015-07-23 08:15
337 查看
关于过已知点画平滑曲线,这里有一篇比较好理解的博客http://blog.csdn.net/microchenhong/article/details/6316332
需求是:给定一组数据,将其用平滑曲线描绘出来,画成一个曲线统计图。
我这里直接将数据根据公司需求换成了一个存放“CGPoint”的数组,直接上代码:
PS:这是我暂时找到的较好的方法了,如果有更Nice的方法,请给我留言。不胜感激。。。
需求是:给定一组数据,将其用平滑曲线描绘出来,画成一个曲线统计图。
我这里直接将数据根据公司需求换成了一个存放“CGPoint”的数组,直接上代码:
//根据points中的点画出曲线 - (void)drawCurveChartWithPoints:(NSMutableArray *)points { UIBezierPath* path1 = [UIBezierPath bezierPath]; [path1 setLineWidth:2]; //设置画笔宽度 //遍历各个点,画曲线 for(int i=0; i<[points count]-1; i++){ CGPoint startPoint = [[points objectAtIndex:i] CGPointValue]; CGPoint endPoint = [[points objectAtIndex:i+1] CGPointValue]; [path1 moveToPoint:startPoint]; [UIView animateWithDuration:.1 animations:^(){ [path1 addCurveToPoint:endPoint controlPoint1:CGPointMake((endPoint.x-startPoint.x)/2+startPoint.x, startPoint.y) controlPoint2:CGPointMake((endPoint.x-startPoint.x)/2+startPoint.x, endPoint.y)]; }]; } [self.lineColor set]; //设置画笔颜色 path1.lineCapStyle = kCGLineCapRound; [path1 strokeWithBlendMode:kCGBlendModeNormal alpha:1]; }
PS:这是我暂时找到的较好的方法了,如果有更Nice的方法,请给我留言。不胜感激。。。
相关文章推荐
- JS中如何输出空格
- nyoj——1036 非洲小孩(区间选点)
- Unity5.1 新的网络引擎UNET(二) UNET 官方推荐Demo案例
- error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1700”不匹配值“1800”
- SAP PM模块实施难点与重点
- Android中 int 和 String 互相转换的多种方法
- 天才的大三暑假修行之旅.塔防游戏(三)
- 创建元素节点的使用方法
- 逻辑代码题
- SAP实施的难点在哪里?
- 自动释放池
- 查找算法之二分查找算法
- 递归获取文件列表(在控制台树形打印文件名)
- MyBatis有关resultType和resultMap差异
- Windows App开发之集成设置、帮助、搜索和共享
- Integer 缓存策略
- NYOJ 187 快速查找素数
- 独木舟上的旅行(乘船问题)
- 索引的好坏处
- 第十五章:动态绑定