I have a set of points on a map (given by x,y coordinates) and I want to find a path between these points. The goal is to have a ship sail this path, so the path can't just be straight lines.
I believe I can calculate the tangent direction or the curve at the given points by looking at the previous and next point, as illustrated below. Since going from point A to B is 100m at an angle of 90° and going from point B to C is 200m at angle 0°, the tangent direction in point B would be $$\frac{100}{100+200} * 90° + \frac{200}{100+200} * 0° = 30°$$ The tangent of the very first point and the very last point would simply be chosen in the direction of the next and previous point respectively. So if there are no other points than A, B and C then the tangent at A would be 90° and the tangent at C would be 0°.

I'm stuck at what to do next. Preferably I would get a piecewise spline so that the curve between each pair of points can be calculated independently and the entire path doesn't have to be calculated up front, but that is not a requirement.
The special requirement for the curve is that the turns in the curve can't be sharper than a given parameter. The ship has a maximum rate of turn, it can't rotate faster than this maximum. So short U-turns can't exist in the curve.
Is it possible to construct such a curve, given just the points and the maximum curvature (and the speed of the ship if needed)?
If yes, could someone provide the necessary math or at least point me in the right direction?
If not, what other data would I have to provide in order to calculate such a path? If a spline with the maximum curvature restraint can't be calculated then at least I need a method to detect that the curve is too sharp.
Suggestions for solutions where the curve does not go through the points exactly are also welcome, but there would have to be a parameter that controls the maximum distance between the points and the curve (e.g. the curve can't be more than 20 meter away from any point in the input).


"Pure" Bezier curves are sometimes not sufficient. Splines maybe a solution. But there is a less known, rather simple, intermediate family of curves, called Rational Bezier (RB) curves (a step towards more general "Non Uniform Rational Bezier Splines" = NURBS) deserving to be known. Here is an explanation about them.
Let us recall that the (so-called "quadratic") Bezier curve passing through $A$ and $C$ and "driven" by intermediate point $B$ is defined by :
$$\tag{1}M=s^2 A + 2 st B + t^2 C \ \ \ \ \ \ \text{where} \ \ \ \ s:=1-t, \ \ 0 \leq t \leq 1.$$
(these curves are parabolas).
Remarks :
The meaning of expression (1) is that either $M,A,B,C$ are considered as complex numbers or relationship (1) is projected onto $x$ and $y$ coordinates axes.
(1) uses barycentric notation ; it makes sense because the sum of the weights $s^2+2st+t^2=(s+t)^2$ is equal to $1$.
Consider now the following equation :
$$\tag{2}M=\dfrac{s^2 A + 2 wst B + t^2 C}{s^2 + 2 wst + t^2}$$
where $w$ is a scalar weight taking any real value. Note that (1) is a particular case of (2) for $w=1$.
Let $C_w$ denote the curve with equation (2). It can be established that any $C_w$ curve is a conic section ; see Fig. 1 and its legend for a global understanding of the influence of parameter $w$ on the shape of curves $C_w$.
Please note that the denominator in (2) is such that the sum of the weights :
$$\dfrac{s^2}{s^2 + 2 wst + t^2}+\dfrac{2 wst}{s^2 + 2 wst + t^2}+\dfrac{t^2}{s^2 + 2 wst + t^2}$$
is still $1$.
Now, we reach the important point for you : the higher the value of $w$, the more $C_w$ is attracted by point $I$ with an ever increasing value of the maximum curvature.
Fig. 1 : RB curves $C_w$ (some values of $w$ are displayed). If $-1<w<1$, we have elliptic arcs, with the notable exception of $w=0$ (straight line). If $w=1$ (red line), we have the usual Bezier curve. If $w>1$, we get hyperbola branches.
Remarks :
$$x=\dfrac{s^2 x_A + 2 wst x_B + t^2 x_C}{s^2 + 2 wst + t^2}, \ \ y=\dfrac{s^2 y_A + 2 wst y_B + t^2 y_C}{s^2 + 2 wst + t^2}$$
has a curvature that can be computed using classical formula :
$$k=\dfrac{y''x'-y'x''}{(x'^2+y'^2)^{3/2}}$$
as established for example in these lecture notes : (https://www.ima.umn.edu/~miller/1372curvature.pdf).
Any conic curve can be represented by a parametric equation of the form (2).
We have been working with RB curves having a single control point $B$ ; these are called quadratic RB curves. One can get more flexibility by using two control points, $B_1$ and $B_2$, with weights $w_1$ and $w_2$ (cubic RB curves) with the following definition :
$$M=\dfrac{s^3 A + 3 s^2t w_1 B_1 + 3 st^2 w_2 B_2 +t^3 C}{s^3 + 3 s^2t w_1 + 3 st^2 w_2 +t^3}.$$