6
我有一个100x100像素的图像,我想绘制在围绕图像中心旋转的各个角度。以下代码有效,但围绕坐标系的原始坐标旋转(左上角)而不是翻译的位置。因此,图像不会围绕自身旋转,而是围绕屏幕的左上角旋转。CGContext旋转
以下代码是在空白应用程序的自定义视图中运行的,除此之外没有别的。
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, -50, -50);
CGContextRotateCTM (context, 0.3);
CGContextTranslateCTM(context,768/2,1024/2);
[image drawAtPoint:CGPointMake(0,0)];
}
我试着用CGAffineTransform做同样的事情,但得到了相同的结果。
请勿硬编码屏幕尺寸。正如22年前Mac开发人员发现的那样,iPhone开发人员上周重新发现,屏幕的尺寸不会永远保持不变。做一个大忙,问问屏幕有多大。准备好iPad的像素尺寸改变的那一天。 – 2010-06-14 06:41:52
我认为你所需要做的就是在旋转之前进行翻译。移动到屏幕中心的第二个平移将无法按预期工作,因为它将处于旋转坐标中。 – drawnonward 2010-06-14 07:20:16
屏幕尺寸只是硬编码,因为这是一个简化的样本来解决我的问题...我的实际代码没有这样的假设:-) – kasperjj 2010-06-14 08:12:57