如何使用恒定的线宽来获得UIBezier路径

时间:2013-02-06 01:36:54

标签: cocoa quartz-graphics

在drawRect的我的NSView子类中,我会描边一些NSBezierPaths。我希望由于这些笔划而绘制的线条与完全相同,最好只有几个像素宽,无论视图的缩放比例如何。这是我的drawRect:

- (void)drawRect:(NSRect)dirtyRect
{
    NSSize x = [self convertSize:NSMakeSize(1,1) fromView:nil];
    printf("size = %f %f\n", x.width, x.height);
    for(NSBezierPath *path in self.paths) {
        [path setLineWidth:x.width];
        [path stroke];
    }
}

以下是我所看到的截图:

screenshot http://www.sonic.net/~crb/snapshot.png

任何人都可以建议我如何获得我正在寻找的清晰一致的路径大纲?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试匹配设备的确切像素。 (自iphone 5以来更难)

不要在半点使用坐标:如0.5(视网膜上的工作,但在“非视网膜上”,它们不清晰)。

线条宽度向左/向上移动一半,向右移动一半。

因此,如果你有一个2的lineWidth和整数值的coorinates它应该是锐利的。