Let $x(t)$ and $y(t)$ be unknown polynomials (of maximum order 3) defining a parametric curve
$$ \mathbf{r}(t)=\begin{bmatrix}x(t)\\y(t)\end{bmatrix} $$
that fits known tangential end-points:
$$ \mathbf{r}(0)=\begin{bmatrix}x_0\\y_0\end{bmatrix} $$ $$ \mathbf{r}(1)=\begin{bmatrix}x_1\\y_1\end{bmatrix} $$ $$ \mathbf{r}'(0)=k_0\begin{bmatrix}x'_0\\y'_0\end{bmatrix} $$ $$ \mathbf{r}'(1)=k_1\begin{bmatrix}x'_1\\y'_1\end{bmatrix} $$
where $x_0$, $y_0$, $x_1$, $y_1$, $x'_0$, $y'_0$, $x'_1$, $y'_1$ are known constants specifying the end-point locations and directions, and $k_0$, $k_1$ are scaling factors we don't care about.
To find $\mathbf{r}(t)$ it is possible to set $k_1=k_2=1$, and then split the problem into two independent cubic Hermite interpolations in x and in y. The resulting $\mathbf{r}(t)$ technically satisfies all constraints above, but when I tested this by interpolating between tangential points drawn from the unit-circle, I got the following result.
Is there an approach that would give a more reasonable result than the above?
My problem specifically concerns data points with pre-determined directions at each data point.






Try clamped spline interpolation. You'll get a piecewise cubic curve interpolating the given points for which you can prescribe the tangent directions at the endpoints.