需要有关如何在CGPath中使用CGAffineTransform的示例

时间:2010-11-05 20:23:16

标签: iphone ios quartz-graphics cgaffinetransform

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

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

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

1 个答案:

答案 0 :(得分: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)并返回。