bezierpath-length
bezierpath-length copied to clipboard
The points doesn't seem equals
let startPoint = CGPoint(x: 25, y: 100)
let width:CGFloat = SCREEN_WIDTH - 50
let preHeight:CGFloat = 150.0
let increment = 0
var lastPoint:CGPoint = CGPoint.zero
let count = 4
for index in 0...3 {
var point:CGPoint = CGPoint.zero
var point1:CGPoint = CGPoint.zero
var point2:CGPoint = CGPoint.zero
if index==0{
point = startPoint
bezierPath.move(to: startPoint)
} else {
point = CGPoint(x: startPoint.x+CGFloat(index%2)*width, y: CGFloat(index)*preHeight+startPoint.y)
point2 = CGPoint(x: point.x, y: startPoint.y+CGFloat(index-1)*preHeight)
if index == 1{
point1 = lastPoint
}else if index == count-1{
point1 = CGPoint(x: startPoint.x+CGFloat(1-index%2)*width, y: point.y)
point2 = CGPoint(x: startPoint.x+CGFloat(index%2)*width, y: point.y)
}else{
point1 = CGPoint(x: startPoint.x+CGFloat(1-index%2)*width, y: point.y)
}
bezierPath.addCurve(to: point, controlPoint1: point1, controlPoint2: point2)
}
lastPoint = point
}
color?.setStroke()
bezierPath.lineWidth = 3
context.saveGState()
context.setLineDash(phase: 0, lengths: [12, 6])
bezierPath.stroke()
context.restoreGState()
for index in 0...11 {
let point = bezierPath.point(at: CGFloat(index)/CGFloat(11))
print(point)
}
The points doesn't seem equals in my code. Thanks.