代码之家  ›  专栏  ›  技术社区  ›  Ash

IOS4:如何将cgContext的transormation矩阵设置为绝对数?

  •  2
  • Ash  · 技术社区  · 16 年前

    我目前正在制作一个图形应用程序,如果我想在任何时候把上下文的转换矩阵上下颠倒,我的生活就会容易得多,这是非常频繁的。但是,我能找到的唯一支持这一点的命令是cContextScaleTM。我想这很好,但这是一个加法(好吧,乘法)过程。如果我将它缩放到50%的大小,那么我必须知道我已经完成了这项工作,并在之后将其放大到200%的大小,这意味着每次我想要将它重置为1,0,0,1,0,0的原始状态时,都要检索当前矩阵并进行一点数学运算,这也是非常困难的。似乎有一些方法可以通过编程来实现这一点,但是当我真正需要做的是将当前的转换矩阵设置为其绝对值时,花费处理器时间获取、获取和乘法矩阵似乎是非常浪费的。

    然而,我很难发现,这真的很愚蠢。我假设转换矩阵存储在cgContextRef结构的某个地方,作为cgAffinetTransform,但是我在任何地方都找不到一个好的文档来告诉我它的名称,这样我就可以手动设置它,我甚至不知道这是否有效。有人能帮忙吗?

    灰分

    1 回复  |  直到 16 年前
        1
  •  2
  •   Jesse Naugher    16 年前

    我相信做你所说的事情的唯一方法就是你想做的事情,那就是使用cContextScaleTM,但是我不知道如果你真的需要的话,如果你只调用它们的话,如何经常使用数学来检查你是否有翻倍/减半等。

    键入时更新:是否尝试使用cgContextSavegState和cgContextRestoregState?我不太确定你在找什么,但它能让你在减半/加倍之间来回走动,我想很容易?