Creating a union of 2 bezier paths

你说的曾经没有我的故事 提交于 2019-12-09 14:21:45

问题


I have two bezier paths that i'd like to combine to form a union, so that I can stroke the entire outer shape. In my case, it's a speech bubble with a tail, so although it's not a complex shape it would actually be quite hard to create it using one single path.

There doesn't appear to be a Core Graphics API for creating unions. Am I wrong?

If I'm not, does anyone know of a library that can handle this? I've search GitHub to no avail.


回答1:


UIBezierPath does that if you are working with closed shapes.

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

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

[firstPath appendPath:secondPath];



回答2:


In Swift 3 Bezier paths can be unified by:

 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()
}


来源:https://stackoverflow.com/questions/19178360/creating-a-union-of-2-bezier-paths

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!