代码之家  ›  专栏  ›  技术社区  ›  Roi Mulia

计算UIBezierPath曲线控制点

  •  0
  • Roi Mulia  · 技术社区  · 6 年前

    我很难理解如何实现以下组件:

    enter image description here

    enter image description here

    理论:

    我已经成功创建了4个可拖动的UIView’。当其中一个UIView更改位置时,我正在创建UIBezierPath,将每个UIView中心连接到一个长方体形状,并使用CAShapeLayer显示它。 我不明白如何计算“addQuadCurve”控制点以实现图中的曲线。

    当前代码:

    func updateLines() {
     let path = UIBezierPath()
     path.move(to: v.center)
     path.addLine(to: v2.center)
     path.addLine(to: v4.center)
     path.addLine(to: v3.center)
     path.close()
     line.path = path.cgPath
     line.strokeColor = UIColor.black.cgColor
     line.fillColor = UIColor.red.cgColor
    }
    

    我们将非常感谢您对正确方向的任何帮助或建议。 顺致敬意, 投资回报率

    1 回复  |  直到 6 年前
        1
  •  1
  •   Duncan C    6 年前

    在我看来,它就像一组连接的三次贝塞尔曲线,起点和终点是同一点。如果观看动画,则在拖动不同点时,曲线的起点/终点会发生变化。

    仔细观察,你会发现四个角中有三个是平滑的曲线,其中一个角有一个“扭结”。弯折的角点似乎不是正在移动的点。这可能是起点/终点。