Я пытаюсь использовать UIBezierPath
для создания линейного графика. Моя цель состоит в том, чтобы оживить этот график и сделать его «волнистым». Но я не могу найти путь для отражения своих данных.
Редактировать: добавленные точки данных
let dataPoints: [Double]
func wave(at elapsed: Double) -> UIBezierPath {
let amplitude = CGFloat(50) - abs(fmod(CGFloat(elapsed/2), 3) - 1.5) * 100
func f(_ x: Int) -> CGFloat {
return sin(((CGFloat(dataPoints[x]*100) / bounds.width) + CGFloat(elapsed/2)) * 4 * .pi) * amplitude + bounds.midY
}
let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: f(0)))
for x in 1..<dataPoints.count {
path.addLine(to: CGPoint(x: CGFloat(x), y: f(x)))
}
return path
}