我不明白如何应用几乎所有CGPath方法中出现的“CGAffineTransform”参数,例如:
void CGPathAddRect (
CGMutablePathRef path,
const CGAffineTransform *m,
CGRect rect
);
假设我想旋转一个rect路径,我该如何写出这个函数?我在哪里获得变换矩阵?
答案 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)并返回。