2

在 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];

}
4

1 回答 1

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];

}
于 2012-12-28T12:32:36.393 回答