贝塞尔路径填充路径?
问题描述:
我有一个bezier路径进入我的程序,它是从SVG创建的,问题在于它只是一个轮廓。我需要在形状内部的任何位置对它执行命中检测。是否有相当于CGPathCreateCopyByStrokingPath
填充它?贝塞尔路径填充路径?
答
CGContextFillPath将在绘制时在上下文中填充路径。
答
CGPathCreateCopyByStrokingPath
获取一条路径并返回一条新路径,该路径描述在抚摸该路径时将形成的形状的轮廓。它返回一个CGPathRef
。因此,如果您可以对结果执行命中检测,那么您可以直接在原始路径上执行命中检测。你不需要转换。
假设我误解了这个问题,可以使用CGPathContainsPoint
来测试一个点是否在路径中。直接使用您从SVG获得的内容。
我试图做到这一点,但我不断收到无效的上下文错误。你看到有什么问题吗? CGContextRef context = UIGraphicsGetCurrentContext(); CGContextAddPath(context,_path.CGPath); CGContextFillPath(context); CGPathRef myPath = CGContextCopyPath(context); –
我假设你在做这个 ' - (void)drawRect:(CGRect)rect' 如果是这样,发布整个drawRect会有帮助。 –