Ios 核心图形坐标系

Ios 核心图形坐标系,ios,uiview,core-graphics,quartz-graphics,Ios,Uiview,Core Graphics,Quartz Graphics,当重写drawRect时,我发现那里的坐标使用0,0作为左上角 但《苹果UIView编程指南》指出: 一些iOS技术定义了默认坐标系,其原点和方向与UIKit使用的坐标系不同。例如,Core Graphics和OpenGL ES使用的坐标系原点位于视图或窗口的左下角,y轴相对于屏幕向上 我很困惑;当他们在这里提到核心图形时,他们谈论的是与石英不同的东西吗?本文档中的“核心图形”指的是“石英”,是的。这只是过于简单化了 当您自己创建CGContext时,其坐标系的原点位于左下角。当UIKit创建用

当重写drawRect时,我发现那里的坐标使用0,0作为左上角

但《苹果UIView编程指南》指出:

一些iOS技术定义了默认坐标系,其原点和方向与UIKit使用的坐标系不同。例如,Core Graphics和OpenGL ES使用的坐标系原点位于视图或窗口的左下角,y轴相对于屏幕向上

我很困惑;当他们在这里提到核心图形时,他们谈论的是与石英不同的东西吗?

本文档中的“核心图形”指的是“石英”,是的。这只是过于简单化了


当您自己创建
CGContext
时,其坐标系的原点位于左下角。当UIKit创建用于在视图中绘图的
CGContext
时,它会在调用
-drawRect:

内核图形和iOS上的石英晶体(就坐标而言)之前,有效地翻转坐标系。政府是这样说的:

岩芯图形(也称为石英)

核心图形框架(CoreGraphics.framework)包含Quartz 2D绘图API的接口。Quartz与Mac OS X中使用的基于矢量的高级绘图引擎相同


区别在于,从技术上讲,石英是技术或机制,“核心图形”是框架的名称。(当然,在Mac OS上,实际上有一个“Quartz”框架,它只是一把伞。)

为了让其他人找到这个线程:

这里有坐标系的完整说明:

它们之间的差异并没有什么帮助。在你的应用程序中,有很多方法可以在不同层次的视图中转换坐标系!例如,这将在缩放图像的可见屏幕中查找其所在点(20,20)的坐标。结果与缩放图像的原点有关,现在可能距离空间很远

croppingFrame.origin = [self convertPoint:CGPointMake(20.0, 20.0) fromCoordinateSpace:(self.window.screen.fixedCoordinateSpace)];