hit*_*lad 6 core-graphics cgcontext coordinate-systems
我对 UIKit 和 Core Graphics 之间的坐标系差异有点困惑。Apple 文档指出 UIKit 使用 ULO(左上原点),而 Core Graphics 使用 LLO(左下原点)。
然而,正如一篇关于坐标系的文章中所指出的,值得注意的是 UIKit
在调用 -drawRect 之前有用地翻转坐标系:
当我在 (0,0) 处绘制一个矩形时,它确实位于左上角,所以事情看起来确实翻转了。但是,当我使用 CGContextDrawImage() 绘制图像时,它仍然是翻转的。我知道我可以使用 drawAtPoint() 来避免颠倒的图像,但我只是对坐标系感到好奇:如果它是由 UIKit 翻转的,那么如果将其绘制到翻转的上下文中,为什么图像仍然是颠倒的?另外,有没有办法获得未翻转的坐标系?也就是说,有没有一种方法可以不通过UIKit来创建CGContext?
谢谢!
由于我没有得到答案,我将提出我的最佳猜测:UIKit“有效地”将上下文从 LLO 翻转到 ULO,但是与路径不同,图像在内部有自己的坐标系(对于图像)。在 Core Graphics 中,该坐标系被解释为 LLO,因此它是颠倒的。
至于在没有 UIKit 的情况下创建 CGContext - 过去似乎是可能的,但已被删除。
任何评论/更正表示赞赏。