NSBezierPath圆角矩形具有错误的边角

| 我有一个
NSBezierPath
,它使一个圆角矩形成为一个矩形,但是当以全比例查看时,它的拐角看上去不规则,并且看起来比笔画的其余部分更明亮。我的代码是:
 NSBezierPath *path = [NSBezierPath bezierPath];
    [path appendBezierPathWithRoundedRect:NSMakeRect(0, 0, [self bounds].size.width, [self bounds].size.height) xRadius:5 yRadius:5];

    NSGradient *fill = [[NSGradient alloc] initWithColorsAndLocations:[NSColor colorWithCalibratedRed:0.247 green:0.251 blue:0.267 alpha:0.6],0.0,[NSColor colorWithCalibratedRed:0.227 green:0.227 blue:0.239 alpha:0.6],0.5,[NSColor colorWithCalibratedRed:0.180 green:0.188 blue:0.196 alpha:0.6],0.5,[NSColor colorWithCalibratedRed:0.137 green:0.137 blue:0.157 alpha:0.6],1.0, nil];
    [fill drawInBezierPath:path angle:-90.0];

    [[NSColor lightGrayColor] set];
    [path stroke];
以下是两个角落的图片(在小图片中不太明显): 有人知道是什么原因造成的吗?我只是想念什么吗? 谢谢你的帮助     
已邀请:
圆角的直线正好在视图的边界上,因此每条线的一半宽度被切除。 (就像它们在一个子像素上一样。) 尝试改变
NSMakeRect(0, 0, [self bounds].size.width, [self bounds].size.height)
NSMakeRect(0.5, 0.5, [self bounds].size.width - 1, [self bounds].size.height - 1)
如果ѭ0看起来有点怪异或模糊,请尝试将其移动半个像素。     
看一下
NSBezierPath
文档中的
setFlatness:
方法。它控制渲染曲线的平滑程度。我相信将其设置为较小的数字(默认值为.6)会产生更平滑的曲线,但会增加计算量(尽管对于简单路径,我怀疑这是否有很大关系)。     

要回复问题请先登录注册