在Core Graphics中进行翻译时模拟锚点

时间:2011-03-28 04:08:05

标签: iphone macos core-graphics quartz-graphics

Core Graphics不提供锚点属性,并且所有转换/转换都假定锚点0,0(左下)。核心动画确实提供了一个锚点,但我们没有使用CA.

有没有人知道如何修改变换矩阵(与CGAffineTransform一起使用),以便我们可以模拟不同的锚点位置(例如底部中间,中心等)?

由于

1 个答案:

答案 0 :(得分:2)

不确定。将所需的点转换为0,0。然后应用您想要的任何转换。然后应用反向翻译。

假设你想绕点25,25旋转。这样做:

CGAffineTransform *t = CGAffineTransformMake();
t = CGAffineTransformTranslate(t, -25, -25);
t = CGAffineTransformRotate(t, angle);
t = CGAffineTransformTranslate(t, 25, 25);

此时,t是一个将以25,25的角度旋转的变换。