我不明白如何应用几乎出现在每个 CGPath 方法中的“CGAffineTransform”参数,例如:
void CGPathAddRect (
CGMutablePathRef path,
const CGAffineTransform *m,
CGRect rect
);
假设我想旋转一个矩形路径,我该如何写出这个函数?我在哪里得到变换矩阵?
我不明白如何应用几乎出现在每个 CGPath 方法中的“CGAffineTransform”参数,例如:
void CGPathAddRect (
CGMutablePathRef path,
const CGAffineTransform *m,
CGRect rect
);
假设我想旋转一个矩形路径,我该如何写出这个函数?我在哪里得到变换矩阵?
您使用 CGAffineTransformMakeRotation 创建一个 CGAffineTransform,它围绕点 (0, 0) 旋转矩形。
CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI / 4); // π/4 = 45°
CGPathAddRect(path, &rotation, CGRectMake(0, 0, 80, 40));
如果您需要它围绕任何其他点 (x, y) 旋转,则需要组合 2 个平移来将 (x, y) 移动到 (0, 0) 并返回。