在mac os x上我的计时器应用程序我想用绿色,黄色,橙色和红色标记我的时钟区域。见下面的截图。我想用透明的灰色填充经过的时间。
但是,正如您在屏幕截图中看到的那样,只有弧段被填充。但我希望整个部门都能填补。我唯一能做的就是[thePath fill];
一如既往,我认为我做错了什么。但是什么?
[self drawTheArcWithColor:path1 :liveAngle1 :[NSColor greenColor ] :lineTheWidth];
- (void) drawTheArcWithColor:(NSBezierPath*) thePath :(CGFloat) angle :(NSColor*) theColor :(CGFloat) line {
[thePath setLineWidth:line];
[thePath appendBezierPathWithArcWithCenter:centerPoint radius:2+circleHeight/2 startAngle:angle endAngle:angle+90.0f];
[theColor setStroke];
[[NSColor grayColor] setFill];
[thePath fill];
[thePath stroke];
}
答案 0 :(得分:4)
你需要在中心点开始路径,然后添加弧段(隐含地从中心点添加一条线到弧段的起点),最后关闭路径(从末尾创建一条隐含线)弧段到中心点。)
- (void) drawTheArcWithColor:(NSBezierPath*) thePath :(CGFloat) angle :(NSColor*) theColor :(CGFloat) line {
[thePath setLineWidth:line];
[thePath moveToPoint:centerPoint];
[thePath appendBezierPathWithArcWithCenter:centerPoint radius:2+circleHeight/2 startAngle:angle endAngle:angle+90.0f];
[thePath closePath];
[theColor setStroke];
[[NSColor grayColor] setFill];
[thePath fill];
[thePath stroke];
}