【发布时间】:2016-06-07 04:43:55
【问题描述】:
如何检查UIBezierPath是否是闭合路径(闭合路径就像闭合轮廓意味着它可以创建任何形状,如三角形、正方形、多边形等),如果它是闭合的,那么只填充路径?
以下表示应该填充形状的区域;最后 2 个定义闭合轮廓和简单闭合轮廓的形状,只能填充颜色:
以下是我的代码,里面有 4 个方块,但只填充了 3 个方块;还想知道是否可以找到以平方英尺为单位的填充区域的面积,因为我在这里得到 4 个正方形如何检查它在 4 个正方形中覆盖的总面积?
UIBezierPath *mainPath =[UIBezierPath bezierPath];
[mainPath moveToPoint:CGPointMake(50, 100)];
[mainPath addLineToPoint:CGPointMake(0, 100)];
[mainPath addLineToPoint:CGPointMake(0, 150)];
[mainPath addLineToPoint:CGPointMake(50, 150)];
[mainPath addLineToPoint:CGPointMake(50, 200)];
[mainPath addLineToPoint:CGPointMake(100, 200)];
[mainPath addLineToPoint:CGPointMake(100, 150)];
[mainPath addLineToPoint:CGPointMake(50, 150)];
[mainPath addLineToPoint:CGPointMake(50, 100)];
[mainPath addLineToPoint:CGPointMake(100, 100)];
[mainPath addLineToPoint:CGPointMake(150, 100)];
[mainPath addLineToPoint:CGPointMake(150, 150)];
[mainPath addLineToPoint:CGPointMake(100, 150)];
[mainPath addLineToPoint:CGPointMake(100, 100)];
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
shapeLayer.lineWidth = 5.0;
shapeLayer.strokeColor = [UIColor blueColor].CGColor;
shapeLayer.path =mainPath.CGPath;
shapeLayer.fillColor = [[UIColor redColor] colorWithAlphaComponent:0.5].CGColor;
[[self.view layer] addSublayer:shapeLayer];
【问题讨论】:
标签: ios objective-c core-graphics uibezierpath cashapelayer