通常bezier路径的参数为0 < = t < = 1描述曲线上的某个点。部分贝塞尔曲线与UIBezierPath [ios]
我想要做的是:
我有4个点(开始,结束,2个控制点),现在,我想从t = 0画一条线到t = 0.5。有没有在iOS(原生框架或开源)中做到这一点的标准方法?
如果这是不可能的,我将不得不计算我自己的端点和两个新的控制点。
通常bezier路径的参数为0 < = t < = 1描述曲线上的某个点。部分贝塞尔曲线与UIBezierPath [ios]
我想要做的是:
我有4个点(开始,结束,2个控制点),现在,我想从t = 0画一条线到t = 0.5。有没有在iOS(原生框架或开源)中做到这一点的标准方法?
如果这是不可能的,我将不得不计算我自己的端点和两个新的控制点。
如果您只对绘图感兴趣,并且不计算与他们做别的事情的要点,那么您可以将路径调整到t = 0.5。
您可以通过设置strokeStart
和strokeEnd
属性来完成此操作,设置为CAShapeLayer
。笔画的外观可以是诸如strokeColor
和lineWidth
的属性。我建议您查看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];
谢谢,我刚刚在一条贝塞尔路径动画问题上找到了答案。 –
你只关心绘制路径,或者你需要知道什么是新的控制点会是? –
您可以为任何图形操作绘制一个任意的裁剪区域,根据您正在做的事情,这可能更合适。 – Dave
Thx @Dave,但裁剪对我来说还不够。大卫的回答对我来说效果不错! –