我有一个100x100像素的图像,我想画一个围绕图像中心旋转的不同角度。以下代码可以工作,但会围绕坐标系的原始原点(左上角)旋转,而不是围绕转换后的位置旋转。因此,图像不是围绕自身旋转的,而是围绕屏幕的左上角旋转的。
下面的代码是在一个空白应用程序的自定义视图中运行的,除了下面的代码之外,没有其他任何内容。
- (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做同样的事情,但是得到了同样的结果。
发布于 2010-06-14 14:55:10
旋转始终是关于原点的;你需要做的不是击败它,而是利用它。
这里要记住的关键一点是,转换会移动原点。所以,如果你想让图像在屏幕的中心居中,并围绕这个中心旋转图像,你需要做的是:
想象一下通过这些步骤中的每一个步骤在iPad上的图像的运动。或者,更好的是,记下便利贴并手工模拟:
你会注意到音符最终被旋转并居中。
https://stackoverflow.com/questions/3033685
复制相似问题