缩小形状保持边距 Swift

Shrink The Shape Keep Margin in Swift

我画了一个形状,我想用一个特定的值来缩小它,我使用了带有锚点的变换比例,但这不是我期望的结果。我希望原始形状和新形状的边缘之间的 space 具有相同的值。 这是代码:

 func drawShape(){
        
        let w = self.frame.width
        let h = self.frame.height
        let corner : CGFloat = 0
        let center = CGPoint(x: w / 2, y: h / 2)
        let disW = w / 3
        let disH = h / 3
        
 
        let point1 = CGPoint(x:  0, y: 2 * disH)
        let point2 = center
        let point3 = CGPoint(x: 2 * disW, y: h)
        let point4 = CGPoint(x: 0, y: h)
        
        let path = CGMutablePath()
        path.move(to: point1)
        
        path.addArc(tangent1End: point2, tangent2End: point3, radius: corner)
        path.addArc(tangent1End: point3, tangent2End: point4, radius: corner)
        path.addArc(tangent1End: point4, tangent2End: point1, radius: corner)
        path.addArc(tangent1End: point1, tangent2End: point2, radius: corner)
        
        let layer = CAShapeLayer()
        layer.strokeColor = UIColor.black.cgColor
        layer.fillColor = UIColor.lightGray.cgColor
        layer.lineWidth = 1
        layer.path = path
        layer.frame = self.frame
        layer.anchorPoint = CGPoint(x: 0, y: 1)
        layer.frame = self.frame
        layer.transform = CATransform3DMakeScale(0.9, 0.9, 1)
        self.layer.addSublayer(layer)
     
    }

终于,我找到了解决办法。我没有使用变换比例,而是改变了它的角点。