如何用颜色填充形状
我是Objective-C和iOS开发的新手。我有一些核心绘图绘制的图。现在我想用颜色填充这些形状,我不知道形状的路径或上下文。 Objective-C是否具有像填充填充或放置像素这样的功能,以便通过只有笔画颜色,我可以在视图内填充任何形状。如何用颜色填充形状
-(void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 4.0);
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGFloat components[] = {1.0, 0.0, 0.0, 1.0};
CGColorRef color = CGColorCreate(colorspace, components);
CGContextSetStrokeColorWithColor(context, color);
CGContextMoveToPoint(context, 50, 0);
CGContextAddLineToPoint(context, 0,320);
CGContextStrokePath(context);
CGColorSpaceRelease(colorspace);
CGColorRelease(color);
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextSetRGBFillColor(context, 0, 255, 0, 1.0);
CGContextMoveToPoint(context, 100, 100);
CGContextAddLineToPoint(context, 150, 150);
CGContextAddLineToPoint(context, 100, 200);
CGContextAddLineToPoint(context, 50, 150);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context);
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGRect rectangle = CGRectMake(60,170,200,80);
CGContextAddEllipseInRect(context, rectangle);
CGContextStrokePath(context);
}
这将使一个圆和一个广场与一些共同的地区。当用户点击该区域时,我想要一个特定的区域填充颜色。
把你的绘图代码放在问题中,我可以给你一个具体的答案。
通常你只需要设置使用
[[UIColor redColor] setFill];
填充颜色和绘制任何形状的图形核心将充满了色彩自动。
试试这个命令: -
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
事情是,我不想使用上下文或路径。我想要一个类似于洪水填充的函数,或者如果你必须绘制任何视图,你必须使用上下文来将像素放在c – superGokuN 2012-02-04 10:50:47
中。 – Leena 2012-02-04 10:53:08
这里是一个教程,如果你想参考:http://www.techotopia.com/index.php/An_iPhone_Graphics_Drawing_Tutorial_using_Quartz_2D – Leena 2012-02-04 10:54:32
核芯显卡是紧密联系在一起的UIView
及其drawRect:
方法,具有C接口。正如你指出的那样,你总是在当前的图形上下文中绘制。我可以想到2种方法:(1)当用户点击myView
时,设置属性如myView.pointTapped
,并在drawRect:
找到要填充的形状,设置填充颜色,并使用GGGeometry方法填充封闭路径。
有一个客观的C选择:(2)看看UIBezierPath
。它不像Core Graphics中的绘图那么全面,但它可以用在你的实现中。
所以你在目标C.
寻找洪水填充这是我实现扫描线的洪水填充算法。
Github : UIImageScanlineFloodfill
如果您想了解洪水基本填充:
Lode's Computer Graphics Tutorial Flood Fill
我希望这会帮助你。
嗨。你问这个问题后,你有没有找到解决办法?我也可以使用它。 – Levi 2013-04-18 15:22:35