Dom*_*lin 3 core-graphics rotation rect cgcontext ios
伙计们!我需要将一些图像绘制到CGContext.这是相关的代码:
CGContextSaveGState(UIGraphicsGetCurrentContext());
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect rect = r;
CGContextRotateCTM(ctx, DEGREES_TO_RADIANS(350));
[image drawInRect:r];
CGContextRestoreGState(UIGraphicsGetCurrentContext());
Run Code Online (Sandbox Code Playgroud)
实际上,矩形是旋转并显示在一个不是我的目的的区域.我只想旋转图像并显示在同一位置.有任何想法吗 ?????
Pet*_*sey 16
旋转是关于上下文的起源,这与矩形相对的点相同.如果你想象一张背景中的方格纸,你可以更清楚地看到发生了什么:

该行是窗口/视图/图层/上下文的"底部"(y = 0).当然,如果需要,您可以在底部下方绘图,如果您的上下文以正确的方式进行转换,您甚至可以看到它.
无论如何,我假设你要做的是将矩形旋转到相对于未旋转的世界,而不是旋转世界及其中的一切.
旋转任何东西的唯一方法是旋转世界,这就是你需要做的事情:
将原点转换为要绘制矩形的点.(您可能希望转换为其中心点,而不是矩形的原点.)

旋转上下文.

绘制以原点为中心的矩形.换句话说,你的矩形的原点应该是其宽度的一半而负高度的一半(即(CGPoint){ width / -2.0, height / -2.0 }) - 不要使用之前的原点,因为你已经在翻译步骤中使用了它.

恢复gstate,以便将来的绘图不会旋转.
| 归档时间: |
|
| 查看次数: |
6671 次 |
| 最近记录: |