我目前正在制作一个图形应用程序,如果我只是简单地翻转上下文的变换矩阵,每当我想要颠倒一些东西时,它会让我的生活变得更加轻松,这是非常频繁的。但是,我能找到的唯一支持它的命令是CGContextScaleCTM。我猜这很好,但它是一个加法(好的,乘法的)过程。如果我将它缩放到50%的大小,那么我必须知道我已经完成了它并将其扩大到200%大小之后,这意味着每次我想要将其重置为其时,检索当前矩阵并做一个数学点{1,0,0,1,0,0}的原始状态,这也很常见。似乎有办法以编程方式执行此操作,但是当我真正需要做的是将当前转换矩阵设置为其绝对值时,花费处理器时间来获取,获取和乘以矩阵似乎非常浪费。
但是,我很难发现如何,这真的非常愚蠢。我假设转换矩阵作为CGAffineTransform存储在CGContextRef结构的某个地方,但我无法在任何地方找到一个好的文档,告诉我它的名字是什么,以便我可以手动设置它,我甚至不知道是否这会奏效。任何人都可以在这方面提供帮助吗?
-Ash
答案 0 :(得分:2)
我相信做你所说的唯一方法是你正在考虑做什么,即使用CGContextScaleCTM,但是我没有看到数学如何检查你是否有它加倍/减半等将使用经常,如果你只是在你绝对需要时打电话给他们。
输入时更新:您是否尝试过使用CGContextSaveGState和CGContextRestoreGState?我不确定它是否是你想要的,但它会让你在你的减半/双倍之间来回走动我会相当容易想到吗?