作者:郑谊099_448 | 2023-08-31 16:44
我正在CTM上进行一系列翻译和旋转,在某些时候我需要将其重置为身份,然后再进行转换.
我找不到任何适当的方式做到这一点(当然,也应该有一个名为CGContextSetCTM左右功能),因为效率是关键,我不想使用CGContextSaveGState/CGContextRestoreGState ...
1> EightyEight..:
通过获取当前变换矩阵CGContextGetCTM,与反其道而行CGAffineTransformInvert和倒一个乘以当前矩阵(这很重要!)与CGContextConcatCTM.CTM现在是身份.
似乎是一个可行的解决方法,但它非常低效.我不明白为什么Apple没有暴露任何功能来直接重置矩阵......
@EightyEight:可能是因为Apple希望转换矩阵能够基于链上的转换保持可修改,并希望开发人员编写代码在这些情况下做正确的事情.示例:如果Apple(假设)想要为运行时显示尺寸缩小的游戏实现UI,如Safari的标签视图中的平铺网页,该怎么办?如果开发人员决定在其绘图代码中重置转换矩阵会发生什么?_它不会"只是工作",它看起来像扭曲的废话,那是什么._