UIBezierPath是否支持相对路径?

布鲁诺·比耶里(Bruno Bieri)

我将Apple文档阅读到了UIBezierPath对象。我是否正确理解它不支持相对路径?

我正在尝试将此路径转换为UIBezierPath:

// svg path
m90 36c-7 0-13 6-13 13s6 13 13 13 13-6 13-13-6-13-13-13zm-27 32c-7 0-13 6-13 13s6 13 13 13 13-6 13-13-6-13-13-13z

我开始于:

UIBezierPath* myPath = [UIBezierPath bezierPath];
CGPoint currentPoint;

[myPath moveToPoint:CGPointMake([self sizeDependendX:90], [self sizeDependendY:36])];
currentPoint = CGPathGetCurrentPoint(myPath.CGPath);
[myPath addCurveToPoint:CGPointMake(currentPoint.x - 13, currentPoint.y + 13)
          controlPoint1:CGPointMake(currentPoint.x +  7, currentPoint.y +  0)
          controlPoint2:CGPointMake(currentPoint.x - 13, currentPoint.y +  6)];
currentPoint = CGPathGetCurrentPoint(myPath.CGPath);
[myPath addCurveToPoint:CGPointMake(currentPoint.x + 13 ,currentPoint.y + 13)
          controlPoint1:CGPointMake(currentPoint.x +  0, currentPoint.y +  7)
          controlPoint2:CGPointMake(currentPoint.x +  6, currentPoint.y + 13)];
...

真的是那样吗?还是我想念这里吗?

胖子

确实,根本没有“相对”要点。

(如果确实需要,那么使扩展,函数或其他一些糖来使其整洁是很简单的。在Swift中,我通常会遇到类似

go(across: 7.0, down: -2.5)
go(across: 4.0, down: -2.5)
go(across: 7.0, down: -2.5)

.. 那类的东西。您所需的功能或扩展只有几行代码。)

关于这些坏消息我很遗憾!:)


我们做了许多与贝塞尔曲线有关的工作,这是一些典型的代码。我使用了成千上万的帮助程序调用,以便使代码更有意义。

我要说的是,在编写代码以创建复杂的贝塞尔曲线材料时,确实必须建立在Apple的原始数据之上。

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章