【发布时间】:2013-08-16 07:31:34
【问题描述】:
我正在视图上绘制注释。我用来画星星的方法如下。
-(void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2.0);
CGFloat xCenter = rect.size.width / 2;
CGFloat yCenter = rect.size.height / 2;
float width;
if(rect.size.width > rect.size.height) {
width = rect.size.height;
} else {
width = rect.size.width;
}
double r = width / 2.0;
float flip = -1.0;
double theta = 2.0 * M_PI * (2.0 / 5.0); // 144 degrees
CGContextMoveToPoint(context, xCenter, r*flip+yCenter);
for (NSUInteger k=1; k<5; k++)
{
float x = r * sin(k * theta);
float y = r * cos(k * theta);
CGContextAddLineToPoint(context, x+xCenter, y*flip+yCenter);
}
CGContextSetStrokeColorWithColor(context, self.color.CGColor);
CGContextClosePath(context);
CGContextStrokePath(context);
}
我想要去除其他内线的星星边框有什么方法可以实现吗? (除了使用 moveToPoint 和 addLine 方法)
【问题讨论】:
-
既然你知道星星的边界在哪里,我能想到的就是清除它内部的路径。
-
例如,您将计算其余 5 个内部点,并使用 10 个点制作星形多边形...
-
星的中心有一个倒五边形。我需要得到它的分数,你是这个意思吗?
-
This answer 包含一个用于绘制星形轮廓的 Java 函数。将其移植到 iOS 应该很容易。
标签: ios drawing core-graphics