iOS中绘制五角星的方式很多,这里用最简单易懂的方式,代码如下:
-(void)drawRect:(CGRect)rect{
// 五角星中心点
CGPoint o = CGPointMake(self.frame.size.width*0.5, self.frame.size.width*0.5);
// 倾斜角度
CGFloat angle = 0;
// 获取上下文
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor greenColor] set];
// 外切圆半径
CGFloat or = 100;
// 角度转换
CGFloat th = M_PI/180;
// 内切圆半径
CGFloat ir = or * sin(18*th)/cos(18*2*th);
// 起始点
CGPoint ma = CGPointZero;
for(int i=0; i<5; i++){
CGPoint oa = CGPointMake(o.x+cos((18+i*72+angle)*th)*or, o.y-sin((18+i*72+angle)*th)*or);
CGPoint ia = CGPointMake(o.x+cos((54+i*72+angle)*th)*ir, o.y-sin((54+i*72+angle)*th)*ir);
if(i==0){
ma = oa;
CGContextMoveToPoint(context, oa.x, oa.y);
CGContextAddLineToPoint(context, ia.x, ia.y);
}else{
CGContextAddLineToPoint(context, oa.x, oa.y);
CGContextAddLineToPoint(context, ia.x, ia.y);
}
}
CGContextAddLineToPoint(context, ma.x, ma.y);
// 完成绘制渲染上下文
CGContextStrokePath(context);
}