使用CoreGraphics绘制内容时,是否可以使用标准化坐标系(从0.0到1.0)而不是使用像素坐标?这肯定会使很多事情变得更容易......
答案 0 :(得分:2)
是的,使用CGAffineTransform。我在一个应用程序中这样做。将所有坐标标准化为-1.0到1.0,根据我绘制的视图大小创建变换。
示例:
CGAffineTransform translateTransform = CGAffineTransformMakeTranslation(offset.x, offset.y);
可以转换每个点或创建路径并转换整个路径:
CGMutablePathRef transformedPath = CGPathCreateMutable();
CGPathAddPath(transformedPath, &transform, path);
正如@yurish指出的那样,也可以使用CGContextScaleCTM
,CGContextTranslateCTM
等,而不是缩放积分/路径,如果这对您更有效。
答案 1 :(得分:0)
核心图形不使用像素坐标。它使用使用当前变换矩阵(CTM)转换为像素的抽象点。如果适当调整CTM(CGContextScaleCTM
等),则可以使用标准化坐标系。