代码之家  ›  专栏  ›  技术社区  ›  Ariel Malka

如何使用CGContext函数重置以标识“当前变换矩阵”?

  •  10
  • Ariel Malka  · 技术社区  · 16 年前

    我找不到任何正确的方法来做到这一点(显然,应该有一个名为CGContextSetCTM的函数),而且由于效率是关键,我不想使用CGContextSaveGState/CGContextRestoreGState。..

    3 回复  |  直到 16 年前
        1
  •  15
  •   EightyEight    16 年前

    通过以下方式获取电流变换矩阵 CGContextGetCTM ,将其反转 CGAffineTransformInvert CGContextConcatCTM .CTM现在是身份。

        2
  •  3
  •   jhavatar    14 年前

    保存/恢复操作可能是与单位矩阵大小相当的内存区域的单个内存副本(大小的两倍或三倍)。这可能只发生在保存操作中。考虑到这可能并不比nop FUNCTION调用慢多少。每个图形操作都是几个乘法操作的规模,我猜在每个保存/恢复周期的代码中,这种情况会发生多次。一次图形操作的时间可能比一次保存/恢复周期长。

        3
  •  2
  •   Qwmiwn    14 年前

    请注意,如果当前CTM为单数,则使用CGAffineTransformInvert反转当前CTM不起作用。