From: Gianluca Gorni on

I am a total beginner with splines. Playing around BSplines and Bezier curves,
I noticed that while BSplineCurve and BSplineFunction seemed
to agree in all the examples I tried, there are differences between the
output of BezierCurve and BezierFunction. For example, the next two
graphs are different:

pts = {{0, 0}, {1, 1}, {2, -1}, {3, 0}, {5, 2}, {6, -1}, {7, 3}};
Graphics[{BezierCurve[pts]}, Axes -> True]
f = BezierFunction[pts];
ParametricPlot[f[t], {t, 0, 1}]

Does anybody know of some option settings that make BezierFunction give the
same curve as BezierCurve?

Moreover, it is nice that BSplineBasis can be expanded out with PiecewiseExpand.
But then, why don't BezierFunction and BSplineFunction expand out with either
PiecewiseExpand or FunctionExpand?

pts = {{0, 0}, {1, 1}, {2, -1}, {3, 0}, {4, -2}, {5, 1}};
f = BezierFunction[pts];
PiecewiseExpand[f[t]]
FunctionExpand[f[t]]

Best regards,
Gianluca Gorni