gpt4 book ai didi

ios - 用一种颜色绘制多边形描边,用另一种颜色填充?

转载 作者:可可西里 更新时间:2023-11-01 03:24:17 25 4
gpt4 key购买 nike

我在绘制一些用颜色描边的线条然后用另一种颜色填充它们的内部(它们形成多边形)时遇到了问题。

UIColor *houseBorderColor = [UIColor colorWithRed:(170/255.0) green:(138/255.0) blue:(99/255.0) alpha:1];
CGContextSetStrokeColorWithColor(context, houseBorderColor.CGColor);
CGContextSetLineWidth(context, 3);

// Draw the polygon
CGContextMoveToPoint(context, 20, viewHeight-19.5);
CGContextAddLineToPoint(context, 200, viewHeight-19.5); // base
CGContextAddLineToPoint(context, 300, viewHeight-119.5); // right border
CGContextAddLineToPoint(context, 120, viewHeight-119.5);
CGContextAddLineToPoint(context, 20, viewHeight-19.5);

// Fill it
CGContextSetRGBFillColor(context, (248/255.0), (222/255.0), (173/255.0), 1);
//CGContextFillPath(context);

// Stroke it
CGContextStrokePath(context);

注释掉 CGContextStrokePath 后,我得到了这个结果:

enter image description here

但是如果我取消注释 CGContextStrokePath 并填充多边形,颜色会溢出笔画:

enter image description here

如何获得这样的结果(无需重做整个绘图过程两次):

enter image description here

最佳答案

你可以使用

CGContextDrawPath(context, kCGPathFillStroke);

代替

CGContextFillPath(context);
CGContextStrokePath(context);

问题是 CGContextFillPath()CGContextStrokePath(context)清除当前路径,这样只有第一个操作成功,第二个操作什么都不画。 CGContextDrawPath() 结合填充和描边而不清除两者之间的路径。

关于ios - 用一种颜色绘制多边形描边,用另一种颜色填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com