使用UIBezierPath [ios]的部分Bezier曲线

时间:2014-01-18 10:39:06

标签: ios uibezierpath

通常bezier路径的参数为0< = t< = 1,它描述了曲线上的某个点。

我想做的是:

我有4个点(开始,结束,2个控制点),现在我想画一条从t = 0到t = 0.5的线。有没有一种标准的方法在iOS(本机框架或开源)中执行此操作?

如果无法做到这一点,我必须自己计算端点和两个新的控制点。

1 个答案:

答案 0 :(得分:3)

如果您只对绘制那条路径感兴趣而不是计算要用它们做其他事情的点数,那么您可以仅在t = 0.5之前描绘路径。

您可以通过设置CAShapeLayerstrokeStart属性,使用strokeEnd执行此操作。笔划的外观可以是strokeColorlineWidth等属性。我建议您查看the documentation以获取完整的属性列表。

代码看起来像这样(我没有运行,所以可能有拼写错误等)。

CAShapeLayer *halfBezier = [CAShapeLayer layer];
// use the full path
halfBezier.path          = [yourFullPath CGPath];
// configure the appearance 
halfBezier.fillColor     = [[UIColor clearColor] CGColor];
halfBezier.strokeColor   = [[UIColor redColor] CGColor];
halfBezier.lineWidth     = 2.0;

// 0.0 ≤ t ≤ 0.5
halfBezier.strokeStart   = 0.0; // the default value (only here for clarity)
halfBezier.strokeEnd     = 0.5; // only up until t=0.5

// add this layer to the view's layer where it is supposed to be drawn
[yourView.layer addSublayer:halfBezier];