摘要: SwiftGraphics使用说明(变换矩阵)。
CGAffineTransform 有六个元素:a、b、c、d、tx、ty,可表达放缩、旋转、位移等变换矩阵。
1. 构造函数
为注明参数类型的都为 CGFloat。
CGAffineTransform():构造为单位矩阵。CGAffineTransform(a, b, c, d, tx, ty):直接指定矩阵的所有元素构造。CGAffineTransform([a, b, c, d, tx, ty]):直接指定矩阵的所有元素构造。CGAffineTransform(transform: CGAffineTransform):拷贝构造。CGAffineTransform(translation: CGPoint):位移矩阵。CGAffineTransform(tx, ty):位移矩阵。CGAffineTransform(scale: CGSize):放缩矩阵。CGAffineTransform(sx, sy)、`CGAffineTransform(scale):放缩矩阵。CGAffineTransform(scale, origin:CGPoint):以一点为中心放缩的矩阵。CGAffineTransform(rotation):旋转矩阵。CGAffineTransform(rotation, origin:CGPoint)::以一点为中心旋转的矩阵。CGAffineTransform(transforms:[CGAffineTransform]):对多个矩阵级联变换构造。CGAffineTransform(from1:CGPoint, from2:CGPoint, to1:CGPoint, to2:CGPoint):为双指触摸构造复合变换矩阵,可实现捏合、旋转、双指拖动等几何变换。
2. 级联变换函数(相当于表达式:本矩阵 * 另一矩阵)
translated(translation:CGPoint):右乘以一个位移矩阵。translated(tx, ty):右乘以一个位移矩阵。scaled(scale:CGSize):右乘以一个放缩矩阵。scaled(sx, sy):右乘以一个放缩矩阵。scaled(scale:CGFloat):右乘以一个放缩矩阵。scaled(scale, origin:CGPoint):右乘以一个以一点为中心放缩的矩阵。rotated(angle):右乘以一个旋转矩阵。rotated(angle, origin:CGPoint):右乘以一个以一点为中心旋转的矩阵。concated(CGAffineTransform):右乘以一个矩阵。inverted():返回逆矩阵。矩阵 + 矩阵:相当于concated。CGAffineTransform(transforms:[CGAffineTransform]):对多个矩阵级联变换。
3. 设置为新的矩阵(相当于表达式:本矩阵 *= 另一矩阵)
translate(translation:CGPoint):右乘一个位移矩阵。translate(tx, ty):右乘一个位移矩阵。scale(scale:CGSize):右乘一个放缩矩阵。scale(sx, sy):右乘一个放缩矩阵。scale(scale:CGFloat):右乘一个放缩矩阵。scale(scale, origin:CGPoint):右乘一个以一点为中心放缩的矩阵。rotate(angle):右乘一个旋转矩阵。rotate(angle, origin:CGPoint):右乘一个以一点为中心旋转的矩阵。concat(CGAffineTransform):右乘一个矩阵。invert():设置为逆矩阵。矩阵 += 矩阵:相当于concat。
4. 矩阵变换应用
CGPoint * 矩阵、CGPoint *= 矩阵:点的矩阵变换。CGSize * 矩阵、CGSize *= 矩阵:大小的矩阵变换。CGRect * 矩阵、CGRect *= 矩阵:矩形的矩阵变换。transformVector(vec:CGPoint):矢量的矩阵变换。