【问题标题】:Partial Bezier curve with UIBezierPath [ios]带有 UIBezierPath 的部分贝塞尔曲线 [ios]
【发布时间】:2014-01-18 19:30:53
【问题描述】:

通常贝塞尔路径的参数为 0

我想做的是:

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

如果这不可能,我将不得不自己计算端点和两个新的控制点。

【问题讨论】:

  • 您是只对绘制路径感兴趣,还是需要知道新的控制点是什么?
  • 您可以为任何图形操作绘制任意剪切区域,根据您的操作,这可能更合适。
  • 谢谢@Dave,但剪辑对我来说还不够。大卫的回答对我来说很好!

标签: ios uibezierpath


【解决方案1】:

如果您只对绘制该路径感兴趣,而不是计算点以对它们进行其他操作,那么您可以只在 t=0.5 之前描边该路径。

您可以通过设置strokeStartstrokeEnd 属性来使用CAShapeLayer 执行此操作。笔画的外观可以是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];

【讨论】:

  • 谢谢,我自己在一个贝塞尔路径动画问题上找到了答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 2013-01-21
相关资源
最近更新 更多