0

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

这是我所看到的屏幕截图:

截屏
(来源:www.sonic.net 上的 crb

谁能建议我如何获得我正在寻找的清晰一致的路径轮廓?

谢谢。

4

1 回答 1

1

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

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

线宽向左/或向上,向右一半。

因此,如果您的 lineWidth 为 2 并以整数值进行坐标,则它应该是锐利的。

于 2013-02-15T16:54:07.910 回答