核心图形:使用从 0 到 1 的坐标

  • 本文关键字:坐标 图形 核心 ios
  • 更新时间 :
  • 英文 :

在使用

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

是的,使用 CGAffineTransform。我在一个应用程序中执行此操作。 将所有坐标规范化为 -1.0 到 1.0,根据我正在绘制的视图的大小创建转换。

例:

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

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

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

正如@yurish指出的那样,如果更适合您,也可以使用CGContextScaleCTMCGContextTranslateCTM等,而不是缩放点/路径。

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

最新更新