is a graphics primitive that represents a nonuniform rational B-spline curve with control points pti.

Details and Options

  • BSplineCurve is also known as basis spline curve or nonuniform rational B-spline (NURBS) curve.
  • BSplineCurve can be used in both Graphics and Graphics3D (two and threedimensional graphics).
  • The positions of control points can be specified either in ordinary coordinates as {x,y} or {x,y,z}, or in scaled coordinates as Scaled[{x,y}] or Scaled[{x,y,z}].
  • In two dimensions, Offset and ImageScaled can be used to specify coordinates.
  • The following options can be given:
  • SplineDegreeAutomaticdegree of polynomial basis
    SplineKnotsAutomaticknot sequence for spline
    SplineWeightsAutomaticcontrol point weights
    SplineClosedFalsewhether to make the spline closed
  • By default, BSplineCurve uses cubic splines.
  • The option setting SplineDegree->d specifies that the underlying polynomial basis should have maximal degree d.
  • By default, knots are chosen uniformly in parameter space, with additional knots added so that the curve starts at the first control point and ends at the last one.
  • With an explicit setting for SplineKnots, the degree of the polynomial basis is determined from the number of knots specified and the number of control points.
  • With the default setting SplineWeights->Automatic, all control points are chosen to have equal weights, corresponding to a polynomial B-spline curve.
  • Curve thickness can be specified using Thickness or AbsoluteThickness, as well as Thick and Thin.
  • Curve dashing can be specified using Dashing or AbsoluteDashing, as well as Dashed, Dotted, etc.
  • Curve shading or coloring can be specified using CMYKColor, GrayLevel, Hue, Opacity, or RGBColor.
  • Individual coordinates and lists of coordinates in BSplineCurve can be Dynamic objects.


open all close all

Basic Examples  (1)

A B-spline curve and its control points in 2D:

Click for copyable input
Click for copyable input

A B-spline curve and its control points in 3D:

Click for copyable input
Click for copyable input

Scope  (12)

Generalizations & Extensions  (4)

Applications  (5)

Properties & Relations  (6)

Introduced in 2008