CoreGraphics:使用从0到1的坐标?

时间:2013-12-26 19:32:05

标签: ios

使用CoreGraphics绘制内容时,是否可以使用标准化坐标系(从0.0到1.0)而不是使用像素坐标?这肯定会使很多事情变得更容易......

2 个答案:

答案 0 :(得分:2)

是的,使用CGAffineTransform。我在一个应用程序中这样做。将所有坐标标准化为-1.0到1.0,根据我绘制的视图大小创建变换。

示例:

CGAffineTransform translateTransform = CGAffineTransformMakeTranslation(offset.x, offset.y);

可以转换每个点或创建路径并转换整个路径:

CGMutablePathRef transformedPath = CGPathCreateMutable();
CGPathAddPath(transformedPath, &transform, path);

正如@yurish指出的那样,也可以使用CGContextScaleCTMCGContextTranslateCTM等,而不是缩放积分/路径,如果这对您更有效。

答案 1 :(得分:0)

核心图形不使用像素坐标。它使用使用当前变换矩阵(CTM)转换为像素的抽象点。如果适当调整CTM(CGContextScaleCTM等),则可以使用标准化坐标系。