iphone - iOS4:如何将 CGContext 转换矩阵设置为绝对数?

标签 iphone ios4 cgcontext

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

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

- Ember

最佳答案

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

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

关于iphone - iOS4:如何将 CGContext 转换矩阵设置为绝对数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3479005/

相关文章:

iphone - MKMapView使用的内存可以如何释放?

iphone - 调用 Data From webservice 时,如何在 iOS 中连接两个字符串,\n(换行)也不起作用?

iphone - 当 didUpdateToLocation 收到消息时,我可以在后台做什么?

带有视网膜的 Swift CGContext

iphone - UIWebView - 自动调整大小,以便不需要滚动(在 webView 本身中)

iphone - 名片解析器。如何从名片识别文本中提取相关信息?

iphone - iOS 原始视频捕获 - 从哪里开始?

ios - 为什么 CGContext 没有循环绘制?

ios - iOS CGContext Edge没有抗锯齿

iphone - 如何将 xls 文件数据导入 sqlite3