2010-10-12 47 views
2

我在绘制一个像素宽线时遇到了问题。所有线条都是完全水平或垂直的(我没有绘制对角线),但它们不能清晰地画出。它看起来像是在缩小的alpha处绘制两个像素。毫无疑问,由于抗锯齿。我搜索了文档和论坛,并且遇到了一个声明,说“有一个像素宽的水平和垂直线没有问题...”,但我不知道具体如何。任何指针都会受到欢迎。如何在Quartz中绘制一个像素宽的水平和垂直线?

绘图代码很简单:

else if ([[value entity].name isEqualToString:@"RTLine"]) { 

CGContextSetRGBStrokeColor(ctx, 0, 0, 0, 1); 
CGContextSetLineWidth(ctx, [[value valueForKey:@"thickness"] doubleValue]); 
CGContextMoveToPoint(ctx, [[value valueForKey:@"beginDrawLocationX"] doubleValue], 
          [[value valueForKey:@"beginDrawLocationY"] doubleValue]); 
CGContextAddLineToPoint(ctx, [[value valueForKey:@"endDrawLocationX"] doubleValue], 
           [[value valueForKey:@"endDrawLocationY"] doubleValue]); 
CGContextStrokePath(ctx); 

} 

在上文中,“厚度”是等于1。我用的doubleValue代替的floatValue转换从在壳体浮动INT被狗拉雪橇的值的东西不太1 - 事实并非如此。

回答

3

我的不好。只要我发布这个,我在CGContext参考指南中找到了答案。我所要做的就是增加一行:

CGContextSetShouldAnitalias(ctx, 0); 

和宾果!一切都在和平......

+0

+1自我回答很好。您也可以“接受”您自己的答案,将此问题标记为已回答。 – msw 2010-10-12 13:49:10

相关问题