Practical solution for B)
* Split the whole curve into 4 pieces that all have about the same amount of total absolute turning in them
(better than splitting by arc-length!).
* Place the control points that correspond to the joined ends of two consecutive Bezier segments at these splitting points.
* Take the tangent directions at these points from the given curve.
* Place the inner control points for each Bezier segment onto these tangent lines,
at a distance that observes the convex hull property
and leads to eaqual velocities on both sides of the junction (some compromising may be necessary).
Practical solution for C)
* Put a Bezier segments between every pair of subsequent data points.
The given data points thus are the endpoints of the Bezier segments,
and the subdivision of the curve is implicitly given.
* Now we need to choose good tangent directions at all the data points (to place the inner Bezier control points):
o Heuristic 1 (based on Catmull-Rom spline):
Make tangent parallel to the chord between the two nearest neighbor data points.
o Heuristic 2:
Make tangent perpendicular to the angle divider in the (red-dashed) connectivity polygon at this point.
* Now we need to pick a good distance from the data points for all the inner control points:
o Heuristic 1 (based on Catmull-Rom spline):
1/6 of chord length between the two neighbor points (this gives actually C1 continuity).
o Heuristic 2:
Place the control points individually 1/3 of the length of the associated chord away from the data point
(gives only G1 continuity, but may produce rounder, "fair" curves with less extreme lobes).