如何绘制水平&石英的垂直线宽一个像素?

时间:2010-10-12 13:39:10

标签: drawing quartz-graphics line

我无法绘制一条像素宽的线条。所有线条都是完全水平或垂直的(我不是画对角线)但是它们并没有画得干净利落。看起来它在缩小的alpha处绘制了两个像素。毫无疑问,由于抗锯齿。我搜索了文档和论坛,并且发现了一个声明,说“......绘制一个像素宽的水平和垂直线没有问题......”但我不知道究竟是怎么回事。任何指针都会受到欢迎。

绘图代码很简单:

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

}

在上面,'thickness'等于1.我使用doubleValue而不是floatValue来转换为int,以防float将值变为不完全为1的值 - 它不是。

1 个答案:

答案 0 :(得分:3)

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

CGContextSetShouldAnitalias(ctx, 0); 

和宾果游戏!一切都很平静......