核心图形坐标系原点混淆

时间:2015-11-18 22:40:15

标签: core-graphics cgcontext coordinate-systems

我对UIKit和Core Graphics之间的坐标系差异感到有些困惑。 Apple文档指出UIKit使用ULO(左上原点),而Core Graphics使用LLO(左下原点)。

但是,如a post about coordinate systems所述,注意到UIKit

  

在调用-drawRect:

之前帮助翻转坐标系

当我在(0,0)处绘制一个矩形时,它确实位于左上角,所以事情看起来似乎是翻转的。但是,当我使用CGContextDrawImage()绘制图像时,它仍然被翻转。我知道我可以使用drawAtPoint()来避免颠倒的图像,但我只是对坐标系很好奇:如果它被UIKit翻转,为什么图像在被翻转的上下文中仍然是倒置的?另外,有没有办法获得一个未剥离的坐标系?也就是说,有没有办法在不通过UIKit的情况下创建CGContext?

谢谢!

1 个答案:

答案 0 :(得分:1)

由于我没有得到答案,我会提出最好的猜测:UIKit"有帮助的"将上下文从LLO翻转到ULO但是,与路径不同,图像在内部(对于图像)具有其自己的坐标系。在Core Graphics中,此坐标系被解释为LLO,因此它是颠倒的。

至于创建一个没有UIKit的CGContext - 似乎过去可能会在当天恢复,但已被删除。

赞赏任何评论/更正。