Well, it turns out it's not really possible.
The following Processing code shows my results for a 4th order polynomial. The equations of the parameters are from Maple.
float x1 = 10;
float y1 = 20;
float x3 = 90;
float y3 = 50;
float d1 = 3;
float d3 = 1;
float f = 40;
float x2 = 30;
float y2 = mouseY;
void draw(){
background(100);
x2 = mouseX;
y2 = mouseY;
noFill();
stroke(0, 0, 0);
bezier(x1, y1, x1+f, y1+f*d1, x3-f, y3-f*d3, x3,y3);
stroke(255, 102, 0);
for (float i=x1; i<x3;i++){
point(i, approx(i));
}
}
float approx(float time){
float a,b,c,d,e;
a = -(8*x1*pow(x3,2)*x2*y1-2*pow(x1,4)*y3+2*pow(x3,4)*y1-pow(x1,2)*d3*pow(x3,3)+2*pow(x1,4)*d3*x3-pow(x1,3)*d3*pow(x3,2)+pow(x1,2)*d1*pow(x3,3)+pow(x1,3)*d1*pow(x3,2)-2*x1*pow(x3,4)*d1-8*x1*pow(x3,2)*x2*y3-8*x3*pow(x1,2)*x2*y3+8*x3*pow(x1,2)*x2*y1-2*pow(x1,3)*x3*x2*d1-2*pow(x3,2)*pow(x1,2)*x2*d1+x3*pow(x1,2)*pow(x2,2)*d1-x3*pow(x1,2)*pow(x2,2)*d3-2*x3*pow(x1,3)*x2*d3+2*x1*pow(x3,3)*x2*d1+x1*pow(x3,2)*pow(x2,2)*d1-x1*pow(x3,2)*pow(x2,2)*d3+2*pow(x1,2)*pow(x3,2)*x2*d3+2*pow(x3,3)*x2*x1*d3+3*pow(x1,3)*pow(x2,2)*d3-2*pow(x1,4)*x2*d3+pow(x1,3)*pow(x2,2)*d1+4*pow(x1,3)*x3*y3+2*pow(x1,4)*y2-2*pow(x3,4)*y2-2*pow(x2,4)*y3+2*pow(x2,4)*y1+4*x1*y3*x3*pow(x2,2)-4*x1*y1*x3*pow(x2,2)+2*pow(x3,4)*x2*d1-3*pow(x3,3)*pow(x2,2)*d1-pow(x3,3)*pow(x2,2)*d3+pow(x2,4)*x3*d3-pow(x2,4)*x1*d3-pow(x2,4)*x1*d1+pow(x2,4)*x3*d1-4*pow(x3,3)*x1*y1+4*pow(x3,3)*x1*y2-4*pow(x3,2)*pow(x1,2)*y1-4*x3*pow(x1,3)*y2-4*pow(x1,2)*pow(x2,2)*y1+4*pow(x1,2)*pow(x2,2)*y3-4*pow(x3,2)*pow(x2,2)*y1+4*pow(x3,2)*pow(x2,2)*y3+4*pow(x3,2)*pow(x1,2)*y3)/((-pow(x3,3)-3*x3*pow(x1,2)+pow(x1,3)+3*x1*pow(x3,2))*(pow(x3,2)*pow(x1,2)-2*x3*pow(x1,2)*x2+pow(x1,2)*pow(x2,2)+4*x1*x3*pow(x2,2)-2*x1*pow(x3,2)*x2-2*x1*pow(x2,3)+pow(x2,4)-2*x3*pow(x2,3)+pow(x3,2)*pow(x2,2)));
b = (y1*pow(x3,5)-pow(x1,2)*pow(x3,4)*d1+2*pow(x1,3)*pow(x3,3)*d1-2*pow(x1,3)*pow(x3,3)*d3+pow(x1,4)*pow(x3,2)*d3+pow(x1,5)*x3*d3-pow(x1,4)*x3*y3-x1*pow(x3,5)*d1+x1*pow(x3,4)*y1-pow(x1,5)*y3-pow(x3,3)*d3*pow(x2,3)+pow(x3,5)*x2*d1-pow(x3,5)*y2-3*pow(x3,3)*d1*pow(x2,3)+pow(x3,2)*pow(x2,4)*d3-3*y3*x3*pow(x2,4)-3*pow(x1,3)*pow(x3,2)*x2*d1-pow(x1,3)*pow(x3,2)*x2*d3-pow(x1,4)*x3*x2*d3+pow(x1,2)*x3*d1*pow(x2,3)+3*pow(x1,2)*pow(x3,3)*x2*d3+pow(x1,2)*pow(x3,3)*x2*d1-pow(x1,2)*x3*d3*pow(x2,3)+x1*pow(x2,4)*x3*d3-x1*pow(x2,4)*x3*d1+2*pow(x2,4)*pow(x3,2)*d1+pow(x1,5)*y2+3*x3*pow(x2,4)*y1-pow(x1,5)*x2*d3+pow(x1,4)*x3*y2+3*pow(x1,3)*d3*pow(x2,3)+pow(x1,3)*d1*pow(x2,3)-2*pow(x1,2)*pow(x2,4)*d3-pow(x1,2)*pow(x2,4)*d1-3*x1*pow(x2,4)*y3-x1*pow(x3,4)*y2+3*x1*pow(x2,4)*y1+x1*pow(x3,4)*x2*d1-x1*pow(x3,2)*d3*pow(x2,3)+x1*pow(x3,2)*d1*pow(x2,3)+4*pow(x3,2)*y3*pow(x2,3)-12*pow(x1,2)*y3*pow(x3,2)*x2+12*pow(x1,2)*y1*pow(x3,2)*x2+4*x1*x3*pow(x2,3)*y3-4*x1*x3*pow(x2,3)*y1+8*pow(x1,3)*y3*pow(x3,2)-8*pow(x1,3)*pow(x3,2)*y2+4*pow(x1,2)*y3*pow(x2,3)-4*pow(x1,2)*y1*pow(x2,3)-8*pow(x1,2)*pow(x3,3)*y1+8*pow(x1,2)*pow(x3,3)*y2-4*pow(x3,2)*pow(x2,3)*y1)/((-x3+x1)*(pow(x3,2)*pow(x1,4)-2*pow(x1,4)*x3*x2+pow(x1,4)*pow(x2,2)-2*pow(x3,3)*pow(x1,3)+2*pow(x1,3)*x3*pow(x2,2)+2*pow(x1,3)*pow(x3,2)*x2-2*pow(x1,3)*pow(x2,3)+pow(x1,2)*pow(x2,4)+2*pow(x1,2)*x3*pow(x2,3)+pow(x3,4)*pow(x1,2)-6*pow(x1,2)*pow(x2,2)*pow(x3,2)+2*pow(x1,2)*pow(x3,3)*x2+2*x1*pow(x3,3)*pow(x2,2)-2*x1*x3*pow(x2,4)-2*x1*pow(x3,4)*x2+2*x1*pow(x3,2)*pow(x2,3)+pow(x2,4)*pow(x3,2)-2*pow(x3,3)*pow(x2,3)+pow(x3,4)*pow(x2,2)));
c = -(pow(x1,3)*pow(x3,4)*d1-pow(x1,4)*pow(x3,3)*d3+pow(x1,5)*pow(x3,2)*d3-2*pow(x1,5)*x3*y3-pow(x1,2)*pow(x3,5)*d1+2*pow(x1,4)*d3*pow(x2,3)+2*y1*pow(x3,5)*x1-2*x1*pow(x3,5)*y2+pow(x3,5)*pow(x2,2)*d1-2*d1*pow(x3,4)*pow(x2,3)-2*pow(x1,2)*pow(x2,4)*x3*d1-pow(x1,2)*pow(x2,4)*x3*d3-pow(x1,4)*x3*pow(x2,2)*d3+x1*pow(x3,4)*pow(x2,2)*d1+pow(x3,3)*pow(x1,2)*pow(x2,2)*d1+3*pow(x3,3)*pow(x1,2)*pow(x2,2)*d3-pow(x3,2)*pow(x1,3)*pow(x2,2)*d3-3*pow(x3,2)*pow(x1,3)*pow(x2,2)*d1+2*pow(x3,2)*pow(x2,4)*x1*d3+pow(x3,2)*pow(x2,4)*x1*d1+pow(x3,3)*pow(x2,4)*d1-pow(x1,3)*pow(x2,4)*d3-pow(x1,5)*pow(x2,2)*d3+2*pow(x1,5)*x3*y2-6*x3*x1*pow(x2,4)*y3+6*x3*x1*pow(x2,4)*y1+2*pow(x1,3)*x3*d1*pow(x2,3)+2*pow(x1,3)*x3*d3*pow(x2,3)+2*pow(x1,2)*pow(x3,2)*d1*pow(x2,3)-2*pow(x1,2)*pow(x3,2)*d3*pow(x2,3)-2*x1*pow(x3,3)*d3*pow(x2,3)-2*x1*pow(x3,3)*d1*pow(x2,3)+8*y3*pow(x2,3)*x3*pow(x1,2)+8*y3*pow(x2,3)*x1*pow(x3,2)-8*y1*pow(x2,3)*x3*pow(x1,2)-8*y1*pow(x2,3)*x1*pow(x3,2)-12*pow(x1,2)*pow(x3,2)*pow(x2,2)*y3+12*pow(x1,2)*pow(x3,2)*pow(x2,2)*y1+4*pow(x1,4)*pow(x3,2)*y3-4*pow(x1,4)*pow(x3,2)*y2-4*pow(x1,2)*pow(x3,4)*y1+4*pow(x1,2)*pow(x3,4)*y2)/((-x3+x1)*(pow(x3,2)*pow(x1,4)-2*pow(x1,4)*x3*x2+pow(x1,4)*pow(x2,2)-2*pow(x3,3)*pow(x1,3)+2*pow(x1,3)*x3*pow(x2,2)+2*pow(x1,3)*pow(x3,2)*x2-2*pow(x1,3)*pow(x2,3)+pow(x1,2)*pow(x2,4)+2*pow(x1,2)*x3*pow(x2,3)+pow(x3,4)*pow(x1,2)-6*pow(x1,2)*pow(x2,2)*pow(x3,2)+2*pow(x1,2)*pow(x3,3)*x2+2*x1*pow(x3,3)*pow(x2,2)-2*x1*x3*pow(x2,4)-2*x1*pow(x3,4)*x2+2*x1*pow(x3,2)*pow(x2,3)+pow(x2,4)*pow(x3,2)-2*pow(x3,3)*pow(x2,3)+pow(x3,4)*pow(x2,2)));
d = (3*x1*pow(x3,2)*pow(x2,4)*y1+2*x3*d3*pow(x1,4)*pow(x2,3)-pow(x3,5)*pow(x1,2)*x2*d1+pow(x3,4)*pow(x1,3)*x2*d1+pow(x3,4)*pow(x1,2)*pow(x2,2)*d1+pow(x3,5)*x1*pow(x2,2)*d1+2*pow(x3,3)*pow(x1,3)*pow(x2,2)*d3-pow(x3,3)*pow(x1,4)*x2*d3-2*pow(x3,3)*pow(x1,3)*pow(x2,2)*d1+pow(x3,3)*pow(x2,4)*x1*d1-pow(x3,2)*pow(x1,4)*pow(x2,2)*d3+pow(x3,2)*pow(x1,5)*x2*d3-x3*pow(x1,5)*pow(x2,2)*d3-3*x3*pow(x1,2)*pow(x2,4)*y3+pow(x3,2)*pow(x1,2)*pow(x2,4)*d3-x3*pow(x1,3)*pow(x2,4)*d3-pow(x3,2)*pow(x1,2)*pow(x2,4)*d1-3*pow(x3,3)*pow(x1,4)*y2-pow(x3,3)*pow(x2,4)*y1-pow(x3,5)*pow(x1,2)*y2+3*pow(x1,3)*pow(x3,4)*y2+pow(x1,3)*pow(x2,4)*y3+pow(x1,5)*pow(x3,2)*y2-2*y3*pow(x1,4)*pow(x2,3)+y3*pow(x1,5)*pow(x2,2)+2*y1*pow(x3,4)*pow(x2,3)-y1*pow(x3,5)*pow(x2,2)-2*y3*pow(x1,5)*x3*x2+y3*x3*pow(x1,4)*pow(x2,2)-2*x1*d1*pow(x3,4)*pow(x2,3)-y1*x1*pow(x3,4)*pow(x2,2)+2*y1*pow(x3,5)*x2*x1+pow(x1,3)*pow(x3,2)*d1*pow(x2,3)-pow(x1,3)*pow(x3,2)*d3*pow(x2,3)+pow(x1,2)*pow(x3,3)*d1*pow(x2,3)-pow(x1,2)*pow(x3,3)*d3*pow(x2,3)+4*pow(x1,4)*pow(x3,2)*y3*x2-4*pow(x1,2)*pow(x3,4)*y1*x2-4*pow(x1,2)*pow(x3,2)*pow(x2,3)*y1+4*pow(x1,2)*pow(x3,2)*y3*pow(x2,3)-4*pow(x3,3)*x1*pow(x2,3)*y1+8*pow(x3,3)*pow(x1,2)*pow(x2,2)*y1+4*pow(x1,3)*x3*pow(x2,3)*y3-8*pow(x1,3)*pow(x3,2)*pow(x2,2)*y3)/((-x3+x1)*(pow(x3,2)*pow(x1,4)-2*pow(x1,4)*x3*x2+pow(x1,4)*pow(x2,2)-2*pow(x3,3)*pow(x1,3)+2*pow(x1,3)*x3*pow(x2,2)+2*pow(x1,3)*pow(x3,2)*x2-2*pow(x1,3)*pow(x2,3)+pow(x1,2)*pow(x2,4)+2*pow(x1,2)*x3*pow(x2,3)+pow(x3,4)*pow(x1,2)-6*pow(x1,2)*pow(x2,2)*pow(x3,2)+2*pow(x1,2)*pow(x3,3)*x2+2*x1*pow(x3,3)*pow(x2,2)-2*x1*x3*pow(x2,4)-2*x1*pow(x3,4)*x2+2*x1*pow(x3,2)*pow(x2,3)+pow(x2,4)*pow(x3,2)-2*pow(x3,3)*pow(x2,3)+pow(x3,4)*pow(x2,2)));
e = (pow(x3,3)*y1-pow(x1,3)*y3-x1*pow(x3,3)*d1+pow(x1,2)*pow(x3,2)*d1-3*pow(x3,2)*y1*x1-pow(x3,2)*d3*pow(x1,2)+pow(x1,3)*x3*d3+3*x3*y3*pow(x1,2)+x3*d3*pow(x2,3)+pow(x3,3)*x2*d1-2*pow(x3,2)*pow(x2,2)*d1-pow(x3,2)*pow(x2,2)*d3+3*y3*x3*pow(x2,2)-3*y1*x3*pow(x2,2)+x3*d1*pow(x2,3)-pow(x3,3)*y2-2*y3*pow(x2,3)+2*y1*pow(x2,3)-2*pow(x1,2)*x3*x2*d1-pow(x1,2)*x3*x2*d3+x1*pow(x3,2)*x2*d1+2*x1*pow(x3,2)*x2*d3-x1*x3*pow(x2,2)*d3+6*x1*y1*x3*x2-6*x1*y3*x3*x2+x1*x3*pow(x2,2)*d1-x1*d1*pow(x2,3)+3*x1*y3*pow(x2,2)-3*x1*y1*pow(x2,2)+3*x1*pow(x3,2)*y2-pow(x1,3)*x2*d3+2*pow(x1,2)*pow(x2,2)*d3+pow(x1,2)*pow(x2,2)*d1-3*pow(x1,2)*x3*y2-x1*d3*pow(x2,3)+pow(x1,3)*y2)/(-pow(x2,4)*pow(x3,3)+pow(x1,5)*pow(x3,2)-3*pow(x1,4)*pow(x3,3)-pow(x3,5)*pow(x2,2)-pow(x1,2)*pow(x3,5)+3*pow(x1,3)*pow(x3,4)+pow(x2,4)*pow(x1,3)+pow(x1,5)*pow(x2,2)+2*pow(x3,4)*pow(x2,3)-2*pow(x1,4)*pow(x2,3)+3*pow(x2,4)*x1*pow(x3,2)-8*pow(x1,3)*pow(x3,2)*pow(x2,2)+2*pow(x3,5)*x2*x1-3*pow(x2,4)*x3*pow(x1,2)-x1*pow(x3,4)*pow(x2,2)+x3*pow(x1,4)*pow(x2,2)+4*pow(x1,4)*pow(x3,2)*x2-4*pow(x1,2)*pow(x3,4)*x2+8*pow(x3,3)*pow(x1,2)*pow(x2,2)-2*pow(x1,5)*x3*x2+4*pow(x1,3)*x3*pow(x2,3)-4*pow(x3,3)*x1*pow(x2,3));
return
e*time*time*time*time+
a*time*time*time+
b*time*time+
c*time+
d;
}
I'll try with adding the derivative of x2 and adding another point in the middle (with a 5rth order polynomial) but I'm not sure it'll appropriate for my use.