一、OC怎么使用奇偶填充规则

1.我把这段代码,备份到test1方法里边,
我在这个里边,来一个UIBezierPath

UIBezierPath *path = [UIBezierPath bezierPathWithArc:(CGPoint) radius:(CGFloat) startAngle:(CGFloat) endAngle:(CGFloat) clockwise:(BOOL)];

输入五个参数:
1)圆心:bezierPathWithArCenter:CGPointMake(CGFloat x,CGFloat y),来一个(150,150),
2)半径:radius:(CGFloat),来一个100,
3)startAngle:(CGFloat),来一个0,
4)endAngle:(CGFloat),来一个2 * M_PI,
5)clockwise:(BOOL),来一个1,

然后呢,path,再画一个矩形,我想一下啊,怎么个画法,我先画一个矩形,再画一个圆,

把上面这个画圆的代码,拿到下面来,上面接着,
UIBezierPath *path = [UIBezierPath bezierPathWithRect:(CGRect)];

CGRectMake(CGFloat x,CGFloat y,CGFloat width,CGFloat height);

来一个,CGRectMake(100,100,200,100);

然后呢,再画一个圆,
来一个,path addArcWithCenter:(CGPoint) radius:(CGFloat) startAngle:(CGFloat) endAngle:(CGFloat) clockwise:(BOOL)

输入五个参数:

1)addArcWithCenter:(CGPoint),来一个CGPointMake(150,150),
2)radius:(CGFloat),来一个100,
3)startAngle:(CGFloat),来一个0,
4)endAngle:(CGFloat),来一个2 * M_PI,
5)clockwise:(BOOL),来一个1,

然后,[path fill];

先看一下普通的是什么情况,

大概是这样的一个情况,然后,我现在想让它,中间的这一块儿,肯定是盖过两次的,然后,想让它盖过两次的,变成空心,怎么着去做,
path里边,有一个叫做:usesEvenOddFileRule

就是你告诉它,是不是要使用奇偶填充规则,
一个BOOL类型的,
给它来一个YES,代表使用奇偶填充规则,
path.usesEvenOddFillRule = YES;

command + R,

理解吧,你要告诉它,使用奇偶填充规则,它才会去使用,好,这是一个,关于OC的啊,使用奇偶填充规则,怎么着去做,
二、饼图
1.接下来,我们来画“饼图”,

饼图,实际上,就是一个计算的问题,我们ppt里边,有这么一个效果

有这么一个效果啊,这个效果呢,就是一个饼图的效果,
把之前的copy代码,复制粘贴一份儿,改一个名字:“11-饼图”,

然后呢,在这一块儿来画啊,


这篇博客介绍了如何在Objective-C中使用奇偶填充规则来绘制饼图,并通过示例代码详细解释了如何创建扇形、设置填充规则以及动态重绘饼图的方法。博主讲解了从画圆、画扇形到根据数据计算角度,以及利用`setNeedsDisplay:`和`setNeedsDisplayInRect:`方法实现视图的局部重绘,帮助读者理解饼图的绘制过程。
最低0.47元/天 解锁文章
2310

被折叠的 条评论
为什么被折叠?



