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

时间:2013-10-04 09:55:30

标签: ios core-graphics

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

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

如果我不是,是否有人知道可以处理此问题的库?我搜索GitHub无济于事。

3 个答案:

答案 0 :(得分:8)

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

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

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

[firstPath appendPath:secondPath];

答案 1 :(得分:0)

在Swift 3中,Bezier路径可以通过以下方式统一:

 override func draw(_ rect: CGRect) {
    super.draw(rect)

    UIColor.black.setStroke()
    UIColor.red.setFill()

    let currentContext = UIGraphicsGetCurrentContext()
    currentContext?.saveGState() 

    let path = drawTopView()
    path.lineWidth = 5.0
    path.fill()
    path.stroke()

    let middlepath = drawMiddleView()
    middlepath.lineWidth = 2.0
    middlepath.fill()
    middlepath.stroke()

    path.append(middlepath)
    currentContext?.restoreGState()
}

答案 2 :(得分:0)

SwiftUI

myDiction