CGAffineTransform的定义中只有6个数据,可为什么背后的矩阵有第三列,且是固定值 0, 0, 1
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
CGAffineTransform实际上是通过矩阵来计算的,而矩阵背后的数学就是矩阵的相乘.
如果第三列去掉,公式和结果是没有什么影响的,那为什么还要第三列呢?
但是如果多种平移和缩放的矩阵相结合,那就不一样了,如果同样是3行2列的矩阵,就无法相乘,为了能够使不同的transform矩阵相乘,那就需要第三列,把他们都变成3*3矩阵来计算,本来第三列的数值就没什么用,那就给个固定值0,0,1。