This is the full internal representation of BSplineFunction
with all relevant parameters. You can fiddle around with the options, then open the information box and compare the values to find the correspondence.
pts = {{0, 100}, {200, 50}, {200, 0}, {300, 50}};
BSplineFunction[pts, SplineClosed -> True]
% // InputForm
The syntax is therefore:
BSplineFunction[Rank, ?, SplineDegree, SplineClosed,
{ControlPoints, SplineWeights}, SplineKnots, ?, WorkingPrecision, "Unevaluated"]
I don't know what the second argument means (it seems to always be a list with rank repeats of {0., 1.}
), and the last argument seems to always be "Unevaluated"
. It looks like changing any of them doesn't affect the spline. There is also an argument before WorkingPrecision
which I was unable to identify – it corresponds to DerivativeOrder
as shown in xzczd's answer.