 
 extension CGAffineTransform {
     
-    // MARK: init
+    // MARK: creat
+    
+    init() {
+        self = .identity
+    }
     
     static func translate(x: CGFloat = 0, y: CGFloat = 0) -> CGAffineTransform {
         return CGAffineTransform(translationX: x, y: y)
     }
     
-    static func scale(x: CGFloat = 0, y: CGFloat = 0) -> CGAffineTransform {
+    static func scale(x: CGFloat = 1, y: CGFloat = 1) -> CGAffineTransform {
         return CGAffineTransform(scaleX: x, y: y)
     }
     

        return t2.concatenating(self)
    }
    
    mutating func transform(by t2: CGAffineTransform) {
        self = transformed(by: t2)
    }
    
    mutating func translateBy(x: CGFloat = 0, y: CGFloat = 0) {
        self = self.translatedBy(x: x, y: y)
    }
    
    mutating func scaleBy(x: CGFloat = 0, y: CGFloat = 0) {
        self = self.scaledBy(x: x, y: y)
    }
    
    mutating func rotate(by angle: CGFloat) {
        self = self.rotated(by: angle)
    }
    
    mutating func invert() {
        self = self.inverted()
    }
    
    // MARK: operator
    
    public static func * (lhs: CGAffineTransform, rhs: CGAffineTransform) -> CGAffineTransform {
        return lhs.concatenating(rhs)
    }
    
    public static func *= (lhs: inout CGAffineTransform, rhs: CGAffineTransform) {
        lhs = lhs * rhs
    }
    
    public static func / (lhs: CGAffineTransform, rhs: CGAffineTransform) -> CGAffineTransform {
        return lhs.concatenating(rhs.inverted())
    }
    
    public static func /= (lhs: inout CGAffineTransform, rhs: CGAffineTransform) {
        lhs = lhs / rhs
    }
}

//

import CoreGraphics
import QuartzCore

// swiftlint:disable shorthand_operator identifier_name operator_whitespace

