is an option for B-spline functions and graphics primitives that specifies the positions of knots.
SplineKnots
is an option for B-spline functions and graphics primitives that specifies the positions of knots.
Details
- The following settings can be given:
-
Automatic knots arranged uniformly (with clamping) {u1,u2,…} knots at positions u1, u2, … {list1,list2,…} knot positions in several dimensions "Clamped" uniform with clamping "Unclamped" uniform without clamping - Knots indicate breakpoints in the piecewise parametrization of B-spline functions.
- For a B-spline function with n control points in a particular dimension and a polynomial basis of degree d, n+d+1 knots must be specified.
- SplineKnots->Automatic specifies that knots should be chosen uniformly, but with additional knots added so that the function spans from the first control point to the last.
- SplineKnots->"Unclamped" yields knots that are uniform, but do not necessarily span from the first control point to the last.
Examples
open all close allBasic Examples (2)
SplineKnots->Automatic generates knots in such a way that the curve is smooth overall:
pts = {{0, 0}, {0, 2}, {2, 3}, {4, 0}, {6, 3}, {8, 2}, {8, 0}};Graphics[{Green, Line[pts], Red, Point[pts], Orange, BSplineCurve[pts, SplineKnots -> Automatic]}]By repeating knots, one can decrease the smoothness of the curve:
pts = {{0, 0}, {0, 2}, {2, 3}, {4, 0}, {6, 3}, {8, 2}, {8, 0}};Graphics[{Green, Line[pts], Red, Point[pts], Orange, BSplineCurve[pts, SplineKnots -> {0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2}]}]Scope (1)
Generalizations & Extensions (1)
Unclamped knots combined with SplineClosed will make a uniform periodic B-spline curve:
pts = {{0, 0}, {1, 0}, {1, 1}, {0, 1}};Graphics[{FaceForm[], EdgeForm[Green], Polygon[pts], Red, Point[pts], Orange, BSplineCurve[pts, SplineClosed -> True, SplineKnots -> "Unclamped"]}]Properties & Relations (2)
Using clamped knots will force interpolation of the first and last control points:
cpts = {{0, 0}, {1, 1}, {2, -1}, {3, 0}, {4, -2}, {5, 1}};Graphics[{Point[cpts], BSplineCurve[cpts, SplineKnots -> "Clamped"]}]Explicit knots corresponding to clamped knots:
{Graphics[{BSplineCurve[cpts, SplineKnots -> "Clamped"]}], Graphics[{BSplineCurve[cpts, SplineKnots -> {0, 0, 0, 0, 1, 2, 3, 3, 3, 3}]}]}Using unclamped knots, typically used for closed curves:
cpts = {{0, 0}, {1, 1}, {2, -1}, {3, 0}, {4, -2}, {5, 1}};Graphics[{Point[cpts], BSplineCurve[cpts, SplineKnots -> "Unclamped"]}]Explicit knots corresponding to unclamped knots:
{Graphics[{BSplineCurve[cpts, SplineKnots -> "Unclamped"]}], Graphics[{BSplineCurve[cpts, SplineKnots -> Range[10]]}]}See Also
SplineDegree BSplineCurve BSplineSurface BSplineFunction SplineWeights BSplineBasis
Function Repository: FullBSplineCurve
Related Guides
-
▪
- Splines
History
Text
Wolfram Research (2008), SplineKnots, Wolfram Language function, https://reference.wolfram.com/language/ref/SplineKnots.html.
CMS
Wolfram Language. 2008. "SplineKnots." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SplineKnots.html.
APA
Wolfram Language. (2008). SplineKnots. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SplineKnots.html
BibTeX
@misc{reference.wolfram_2026_splineknots, author="Wolfram Research", title="{SplineKnots}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/SplineKnots.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_splineknots, organization={Wolfram Research}, title={SplineKnots}, year={2008}, url={https://reference.wolfram.com/language/ref/SplineKnots.html}, note=[Accessed: 13-June-2026]}