你需要知道一个特定的点来自一个特定百分比。
您可以尝试此算法:
func quadBezierForPercent(t:Float, startPoint:Float, controlPoint:Float, endPoint:Float) ->Float {
let mutablet = (1.0-t)
let mutablett = mutablet*2
let tt = t*2
let start = startPoint * mutablett
let middle = 2.0 * controlPoint * mutablet * t
let end = endPoint * tt
return start + middle + end
}
用法
:
let percentage = 25.0
let xPos = quadBezierForPercent(percentage, startpoint.x,controlPoint.x,endPoint.x)
let yPos = quadBezierForPercent(percentage, startpoint.y,controlPoint.y,endPoint.y)
let point = CGPointMake(xPos,yPos)