我画了两个重叠的圆圈。我希望能够将它们填充和描边作为合并的新形状。
目前,我创建了一次路径序列,对其进行描边,然后创建一个副本,填充它并将两条相同的路径叠加在一起,使它们显示为一个形状。有更好的方法还是可以?
更新:这是一个示例代码:
CGMutablePathRef path = CGPathCreateMutable();
CGContextSetStrokeColorWithColor(theContext, strokeColor.CGColor);
CGContextSetLineWidth(theContext, 2);
CGContextSetFillColorWithColor(theContext, fillColor.CGColor);
CGRect rect1 = CGRectMake(0,0, mySize*0.6, mySize*0.6);
CGRect rect2 = CGRectMake(mySize*0.4,0, mySize*0.6, mySize*0.6);
CGPathAddEllipseInRect(path, NULL, rect1);
CGPathAddEllipseInRect(path, NULL, rect2);
CGContextAddPath(theContext, path);
CGContextDrawPath(theContext, kCGPathFillStroke);
CGPathRef pathFill = CGPathCreateCopy ( path );
CGContextAddPath(theContext, pathFill);
CGContextDrawPath(theContext, kCGPathFill);
CGPathRelease(path);
CGPathRelease(pathFill);
如您所见,我创建了原始路径的副本并在没有笔划的情况下将其绘制在顶部,因此最终它看起来像一个统一的形状。有没有办法避免创建重复?