# BSplineFunction

BSplineFunction[{pt1,pt2,}]

represents a B-spline function for a curve defined by the control points pti.

BSplineFunction[array]

represents a B-spline function for a surface or high-dimensional manifold.

# Details and Options  • BSplineFunction is also known as basis spline, nonuniform rational B-spline (NURBS).
• BSplineFunction[][u] gives the point on a B-spline curve corresponding to parameter u.
• BSplineFunction[][u,v,] gives the point on a general B-spline manifold corresponding to the parameters u, v, .
• The embedding dimension for the curve represented by BSplineFunction[{pt1,pt2,}] is given by the length of the lists pti.
• BSplineFunction[array] can handle arrays of any depth, representing manifolds of any dimension.
• The dimension of the manifold represented by BSplineFunction[array] is given by ArrayDepth[array]-1. The lengths of the lists that occur at the lowest level in the array define the embedding dimension.
• BSplineFunction[array,d] creates a B-spline function of d variables.
• The parameters u, v, by default run from 0 to 1 over the domain of the curve or other manifold.
• The following options can be given:
•  SplineDegree Automatic degree of polynomial basis SplineKnots Automatic knot sequence for spline SplineWeights Automatic control point weights SplineClosed False whether to make the spline closed
• By default, BSplineFunction gives 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 , all control points are chosen to have equal weights, corresponding to a polynomial B-spline function.
• With the setting SplineClosed->{c1,c2,}, the boundaries are connected in directions i for which ci is True.

# Examples

open allclose all

## Basic Examples(2)

Construct a B-spline curve using a list of control points:

Apply the function to find a point on the curve:

Plot the B-spline curve with the control points:

Construct a B-spline surface closed in the u-direction:

Show the surface with the control points:

## Scope(4)

Create a vector-valued function of dimension 2:

Create a vector-valued function of dimension 3:

Generate a two-variable function:

Generate a three-variable function:

## Generalizations & Extensions(1)

SparseArray can be used with BSplineFunction:

## Options(2)

### SplineDegree(2)

Make line segments: