我试图像这样
做图表但我唯一得到的就是
我正在尝试bezier路径,但它不会像我需要的那样工作,只是不知道该怎么做
bezier的代码
UIBezierPath *path = [UIBezierPath bezierPath];
[path setLineWidth:3.0];
[path setLineCapStyle:kCGLineCapRound];
[path setLineJoinStyle:kCGLineJoinRound];
NSValue *value = [newPoints objectAtIndex:0];
CGPoint p1 = [value CGPointValue];
[path moveToPoint:CGPointMake(0, viewHeight/2)];
for (int k=1; k<[newPoints count];k++) {
NSValue *value = [newPoints objectAtIndex:k];
CGPoint p2 = [value CGPointValue];
CGPoint centerPoint = CGPointMake((p1.x+p2.x)/2, (p1.y+p2.y)/2);
if (p1.y<p2.y) {
centerPoint = CGPointMake(centerPoint.x, centerPoint.y+(fabs(p2.y-centerPoint.y)));
}else if(p1.y>p2.y){
centerPoint = CGPointMake(centerPoint.x, centerPoint.y-(fabs(p2.y-centerPoint.y)));
}
[path addQuadCurveToPoint:p2 controlPoint:centerPoint];
p1 = p2;
}
[path stroke];
接近结果,但不一样 我只使用图表的顶点,而不是全部
此代码的当前结果
或者我怎么能使用面具只取贝塞尔线和中心绿线之间的东西?然后我将条形高度设置为全部视图,并且线条将像我需要的那样切割它们
答案 0 :(得分:1)
您可以尝试使用UIBezierPath,只需先使用
[urPath moveToPoint:firstPOint];
loop
[urPath addLineToPoint:topOfEveryBar];