// // CurveAlgorithm.swift // // Ref: https://github.com/nhatminh12369/LineChart/blob/master/LineChart/CurveAlgorithm.swift import UIKit struct CurvedSegment { var controlPoint1: CGPoint var controlPoint2: CGPoint } class CurveAlgorithm { static let shared = CurveAlgorithm() private func controlPointsFrom(points: [CGPoint]) -> [CurvedSegment] { var result: [CurvedSegment] = [] let delta: CGFloat = 0.2 // only use horizontal control point for i in 1.. UIBezierPath? { let path = UIBezierPath() path.move(to: dataPoints[0]) var curveSegments: [CurvedSegment] = [] curveSegments = controlPointsFrom(points: dataPoints) for i in 1..