我想要反转一个CGPath
(相对于一个Rect)。通过这个,我的意思是我定义了一个CGPath
,我希望得到一个CGPath
,概述了矩形中的所有其他区域。
我一直在尝试不同的方式,现在谷歌搜索几天没有运气。我只是无法解决它!
考虑以下带定义CGPath
的矩形(其中绿色是定义的CGPath
填充的):
现在,我想要的东西(倒置的CGPath
)会产生以下内容:
具体来说,这是为了在SpriteKit框架中使用SKCropNode
和SKPhysicsBody
,但是我使用CGPaths
为掩码节点生成多边形(并将路径存储在一个ivar)。
可能会以某种方式反转CGPath
吗?如果是这样,怎么样?
提前致谢。
答案 0 :(得分:5)
我复制了@DavidRonnqvist链接到的答案中的代码,但是将其更改为从CGPath中检索UIBezierPath,这就是您所需要的:
CGPath filledPath = ...; //This is the inner filled shape
CAShapeLayer *invertedLayer = [CAShapeLayer layer];
UIBezierPath *maskPath = [UIBezierPath bezierPathWithCGPath:filledPath];
[invertedLayer setPath:[maskPath CGPath]];
[invertedLayer setFillRule:kCAFillRuleEvenOdd];
[invertedLayer setFillColor:[[UIColor colorOfYourChoice] CGColor]];
我没有对此进行测试,但理论上它应该可行。
答案 1 :(得分:0)
代码示例,使用this.$route.push
:
window.location.href