我无法绘制一条像素宽的线条。所有线条都是完全水平或垂直的(我不是画对角线)但是它们并没有画得干净利落。看起来它在缩小的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的值 - 它不是。
答案 0 :(得分:3)
我的坏。我发布这个后,就在CGContext参考指南中找到了答案。我所要做的只是添加一行:
CGContextSetShouldAnitalias(ctx, 0);
和宾果游戏!一切都很平静......