1,cubic-bezier
vector start = point(0,"P",0); vector end = point(0,"P",@numpt-1); vector range_01 = fit(@ptnum,0,@numpt-1,0,1); float ix = range_01.x; float dx = end.x - start.x; float dy = end.y - start.y; vector p2 = set(start.x + dx * 0.5 , start.x + dy * 0.1, 0 ); vector p3 = set(start.x + dx * 0.5 , start.x + dy * 0.9, 0 ); float x= pow((1-ix),3) * start.x + 3* pow((1-ix),2) * ix * p2.x + 3*(1 - ix)* pow(ix,2) * p3.x + pow(ix,3) * end.x; float y= pow((1-ix),3) * start.y + 3* pow((1-ix),2) * ix * p2.y + 3*(1 - ix)* pow(ix,2) * p3.y + pow(ix,3) * end.y; @P.x = x; @P.y = y;