摘要: 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)
:矢量的矩阵变换。