2

我目前正在制作一个图形应用程序,如果我想在想要颠倒某些东西时将上下文的变换矩阵颠倒过来,这将使我的生活变得更加轻松,这很常见。但是,我能找到的唯一支持此功能的命令是 CGContextScaleCTM。我猜这很好,但它是一个加法(嗯,乘法)过程。如果我将它缩放到 50% 的大小,那么我必须知道我已经做到了,然后将其放大到 200% 的大小,这意味着每次我想将它重置为它时检索当前矩阵并做一些数学运算{1,0,0,1,0,0} 的原始状态,这也很常见。似乎有以编程方式执行此操作的方法,但是花费处理器时间获取似乎非常浪费,

但是,我在发现 HOW 时遇到了很大的困难,这真的非常非常愚蠢。我假设转换矩阵作为 CGAffineTransform 存储在 CGContextRef 结构中的某个位置,但是我在任何地方都找不到好的文档来告诉我它的名称是什么,以便我可以手动设置它,我什至不知道是否这会奏效。任何人都可以在这方面提供帮助吗?

-灰

4

1 回答 1

2

我相信做你所说的唯一方法就是你正在考虑做的事情,那就是使用 CGContextScaleCTM,但是我不明白如果你经常使用数学来检查你是否将它加倍/减半等只有在绝对需要时才给他们打电话。

输入时更新:您是否尝试过使用 CGContextSaveGState 和 CGContextRestoreGState?我不确定它是否是您正在寻找的东西,但它可以让您在减半/加倍之间来回走动,我认为这很容易?

于 2010-08-13T16:52:26.330 回答