【发布时间】:2018-04-18 22:37:10
【问题描述】:
我知道,每当我们想一次对一个点应用一系列变换时,我们必须指定与我们想要感知的方向相反的序列。如果我想平移(T)然后旋转(R)一个点x,我们需要以连接矩阵RT结束,那么每个点都被转换为(RT)x。
Apple Transform 文档显示 CGAffineTransform 作为上述表达式的转置版本工作。即不是将一个点转换为 Ax,因为 A 是任何变换矩阵,而是将其转换为 xB,因为 B 是A的转置。
另外,CGAffineTransform.concatenating(T2) 文档指出它向右堆叠变换,以 T1 * T2 形式的变换矩阵结束。
现在我有什么顾虑?如果想要translate(T) 和rotate(R) 的一系列转换,我可以调用T.concatenating(R) 导致转换 TR,然后将点转换为xTR,似乎必须尊重顺序,但实际上我得到了错误的结果(至少我是这样认为的),我希望图像 A 但得到 B,
它们似乎将点转换为 TRx,但这与文档相矛盾,并且当您将转换 TR 应用于@987654324 的点时,结果也不匹配@也符合xTR的顺序。
这是为什么呢?关于转换在 iOS 中的工作方式,我缺少什么?
【问题讨论】:
标签: ios swift cgaffinetransform