创建2个贝塞尔路径的并集

tar*_*mes 15 core-graphics ios

我有两个bezier路径,我想组合形成一个联合,这样我就可以抚摸整个外形.在我的例子中,它是一个带有尾部的语音气泡,所以虽然它不是一个复杂的形状,但实际上很难用一条路径创建它.

似乎没有用于创建联合的Core Graphics API.我错了吗?

如果我不是,有没有人知道可以处理这个的库?我搜索GitHub无济于事.

ces*_*fry 8

如果您正在使用闭合形状,UIBezierPath会这样做.

UIBezierPath *firstPath = [UIBezierPath bezierPath];
// build your path

UIBezierPath *secondPath = [UIBezierPath bezierPath];
// build your path

[firstPath appendPath:secondPath];
Run Code Online (Sandbox Code Playgroud)

  • 是的,这不是"联合"操作,而是"组合"操作,意味着不会删除现有路径的任何部分.如果你抚摸路径,你会发现它们仍然存在.真正的"联合"操作采用组合路径的轮廓,丢弃现在内部的任何路径.这就是我在寻找自己. (4认同)
  • 尝试在执行联合之前反转第一个或第二个的路径:UIBezierPath*secondPath = [[UIBezierPath bezierPath] bezierPathByReversingPath]; (3认同)
  • 您确定要沿顺时针方向创建两条路径吗? (2认同)