Ios UIBezierPath和曲线到点,但仅使用一个CGPoint而不是两个CGPoint

Ios UIBezierPath和曲线到点,但仅使用一个CGPoint而不是两个CGPoint,ios,swift,cgpoint,Ios,Swift,Cgpoint,这是我的代码: private func bezierPathForSmile(fractionOfMaxSmile : Double) -> UIBezierPath { let mouthWidth = faceRadius / Scaling.FaceRadiusToMouthWidthRatio let mouthHeight = faceRadius / Scaling.FaceRadiusToMouthHeightRatio

这是我的代码:

private func bezierPathForSmile(fractionOfMaxSmile : Double) -> UIBezierPath
    {
        let mouthWidth = faceRadius / Scaling.FaceRadiusToMouthWidthRatio
        let mouthHeight = faceRadius / Scaling.FaceRadiusToMouthHeightRatio
        let mouthVerticalOffset = faceRadius / Scaling.FaceRadiusToMouthOffsetRatio

        let smileHeight = CGFloat(max(min(fractionOfMaxSmile, 1), -1)) * mouthHeight    //an einai pio megalo tou 1 krata to 1 an einai pio megalo apo -1 krata to pio megalo

        let start = CGPoint(x: faceCenter.x - mouthWidth / 2, y: faceCenter.y + mouthVerticalOffset)
        let end = CGPoint(x: start.x + mouthWidth, y: start.y)
        let cp1 = CGPoint(x: start.x + mouthWidth / 3, y: start.y + smileHeight)
        let cp2 = CGPoint(x: end.x - mouthWidth / 3, y: cp1.y)

        let path = UIBezierPath()
        path.moveToPoint(start)
        path.addCurveToPoint(end, controlPoint1: cp1, controlPoint2: cp2)
        path.lineWidth = lineWidth
        return path
    }
我想问一下,是否有一种方法可以通过只指定(start.x+end.x)/2的CGPoint以及它的y轴与start.y或end.y的偏差,而不是使用:

path.addCurveToPoint(end, controlPoint1: cp1, controlPoint2: cp2)
这有两个控制点。换句话说,我只想通过指定中心的GCPoint(开始+结束)/2来实现上面的精确操作
谢谢。

添加曲线点使用两个控制点,而
添加四曲线点
仅使用一个控制点


来自的图像。

它实际上是这样工作的(为什么要这样做?),但我正在寻找一种方法,即必须输入一次CGPoint参数,而不是输入两次。。感谢您的回答
addQuadCurveToPoint
先生,您完全正确!谢谢你的回答