【发布时间】:2010-01-31 07:45:07
【问题描述】:
我用这个 drawRect 做了一个“圆形”视图
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(ctx, color.CGColor);
CGContextAddEllipseInRect(ctx, rect);
CGContextFillPath(ctx);
}
当我尝试使用CGAffineTransformMakeScale(2.0, 2.0) 放大视图时,结果是模糊且边缘像素化。但是,编程指南说 Quartz 使用基于矢量的命令来绘制视图,并且在使用仿射变换时它们会继续看起来不错:
Quartz 绘图系统使用基于矢量的绘图模型。与基于光栅的绘图模型(其中绘图命令对单个像素进行操作)相比,Quartz 中的绘图命令使用固定比例的绘图空间(称为用户坐标空间)指定。 iPhone OS 然后将这个绘图空间中的坐标映射到设备的实际像素上。 此模型的优点是使用矢量命令绘制的图形在使用仿射变换放大或缩小时仍然看起来不错。
或者我没有使用基于矢量的命令?如果没有,我该怎么做才能画一个圆圈?
谢谢。
【问题讨论】:
标签: iphone vector core-graphics quartz-graphics