f(x) = a*x**3 + b*x**2 + c*x + d f'(x) = 3*a*x**2 + 2*b*x + 1*c f(0) = 0 # start at 0 f'(0) = 0 # want a flat slope f(1) = 1 # end at 1 f'(1) = 0 # but flat at this end, as well. solve: d = 0 # from f(0) c = 0 # from f'(0) b = 3, a=-2 # from f(1) and f'(1) #### f(x,y) = a*x**2 + b*y**2 + c*x*y + d*x + e*y + g f(0,0) = 0 f(1,1) = 1 df/dx(0,0) = 0 df/dy(0,0) = 0 df/dx(1,1) = 0 df/dy(1,1) = 0 #### p:0..1 H(p) = a*p**3 + b*p**2 + c*p**1 + d I would recommend corners like: H(0) = Hmin H'(0) = 0 H(1) = Hmax H'(1) = 0 to get a similar "s" shape to 3*x**2 - 2*x**3, but scaled so the output go from the min to the max you want S(p) = e*p**3 + f*p**2 + g*p**1 + h S(...) = Smin, 0, Smax, 0 V(p) = j*p**3 + k*p**2 + m*p**1 + n V(...) = Vmin, 0, Vmax, 0