Ah, polynomials, of course, how can I be so stupid :S One question though, how do I calculate a polynomial from a set of points and tangets? I slightly remember how it could go by points, but tangents? Not a clue...
Well, given you have f(x) = ax3+bx2+cx+d you can start with your starting point and end point. Say you interpolate from 0 to 1 in a timespan from 0 to 1 (time is x) then for your starting point you know that a*0+b*0+c*0+d = 0. It follows that d = 0.
Same for the end point. For time x = 1 you know that a + b + c + d = 1
Now you can start using the tangents of your start and end point. For that you have to derive the polynomal, which results in g(x) = 3ax2+2bx+c
If you enter values for the start and end point you get two further equations. Now we have four equations and four unknown variables. All you need to do is add and subtract the equations from each other until you finally get all variables (if you're unfamiliar with it, take a look here).