在用CoreGraphics绘图时,有没有可能使用标准化的坐标系(从0.0到1.0)而不是像素坐标?这肯定会让很多事情变得更容易。
发布于 2013-12-27 03:42:06
是的,使用CGAffineTransform。我在一个应用程序中做了这件事。保持所有坐标归一化为-1.0到1.0,根据我要绘制的视图的大小创建一个转换。
示例:
CGAffineTransform translateTransform = CGAffineTransformMakeTranslation(offset.x, offset.y);可以变换每个点或创建路径并变换整个路径:
CGMutablePathRef transformedPath = CGPathCreateMutable();
CGPathAddPath(transformedPath, &transform, path);正如@yurish指出的那样,如果对你来说效果更好,你也可以使用CGContextScaleCTM,CGContextTranslateCTM等来代替缩放点/路径。
发布于 2013-12-27 03:42:15
核心图形不使用像素坐标。它使用抽象点,这些抽象点使用当前转换矩阵(CTM)转换为像素。如果适当地调整CTM (CGContextScaleCTM等),您可以使用规范化的坐标系。
https://stackoverflow.com/questions/20790207
复制相似问题