剪切CGPathRef或UIBezierPath

时间:2017-02-28 14:45:55

标签: ios core-graphics uibezierpath cgpath

鉴于我有CGPathRefUIBezierPath或其他等效的iOS表示,是否有内置的库函数可以用来为我计算此对象的剪辑?

  • 我特别需要剪切轴对齐的矩形。
  • 能够对另一条任意路径进行剪辑非常酷。
  • 能够在路径上计算布尔运算更加酷:联合,差异,交集(裁剪是交叉操作)。

注意为了澄清,我要求能够绘制剪切路径。我想获得一个实际的剪切路径,作为一条新路径。

1 个答案:

答案 0 :(得分:1)

查看我对this other question的类似答案。我写了一个库,可以让你计算任意两个UIBezierPath之间的交叉点,并计算它们之间的剪切路径。该库位于https://github.com/adamwulf/ClippingBezier

虽然其他问题涉及形状的交集,但您也可以简单地将两条路径分成组件。

NSArray* clippedPathSegments = [UIBezierPath redAndGreenAndBlueSegmentsCreatedFrom:path1 bySlicingWithPath:path2 andNumberOfBlueShellSegments:NULL];

该方法有一个尴尬的名称,它在内部用于更好的命名uniqueShapesCreatedFromSlicingWithUnclosedPath:方法,但应该做你想要的。