6

我不明白如何应用几乎出现在每个 CGPath 方法中的“CGAffineTransform”参数,例如:

void CGPathAddRect (
   CGMutablePathRef path,
   const CGAffineTransform *m,
   CGRect rect
);

假设我想旋转一个矩形路径,我该如何写出这个函数?我在哪里得到变换矩阵?

4

1 回答 1

7

您使用 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) 并返回。

于 2010-11-05T20:26:54.737 回答