B-spline: Difference between revisions
MathMartin (talk | contribs) fixed ==Notes== |
MathMartin (talk | contribs) added ==Examples== |
||
Line 70: | Line 70: | ||
In other words if we manipulate one control point we only change the local behaviour of the curve and not the global behaviour as with Bézier curves. |
In other words if we manipulate one control point we only change the local behaviour of the curve and not the global behaviour as with Bézier curves. |
||
== |
==Examples== |
||
===Constant B-spline=== |
|||
The constant B-spline is the most simple spline. |
|||
:<math>b_{j,0}(t) = \left\{\begin{matrix} |
|||
1 & \mathrm{if} \quad t_j < t < t_{j+1} \\ |
|||
0 & \mathrm{otherwise} |
|||
\end{matrix} |
|||
\right. |
|||
</math> |
|||
===Cubic B-Spline=== |
|||
A B-spline formulation for a single segment can be written as: |
A B-spline formulation for a single segment can be written as: |
Revision as of 12:22, 24 September 2004
In the mathematical subfield of numerical analysis a B-spline is a special spline curve. It is a linear combination of B-splines basis curves. B-splines are a generalization of the Bézier curves and can be further generalized to NURBS, allowing the accurate modelling of more general classes of geometry.
The De Boor algorithm is a numerical stable way to evalute B-splines.
The term B-spline was coined by Isaac Jacob Schoenberg and is short for basis spline.
Definition
Given m+1 knots ti in [0,1] with
a B-spline of degree n is a parametric curve
composed of basis B-splines of degree n
- .
The Pi are called control points or de Boor points. A polygon can be constructed by connecting the de Boor points with lines, starting with P0 and finishing with Pn. This polygon is called the de Boor polygon.
The m+1 basis B-splines of degree n can be defined using the Cox-de Boor recursion formula
When the knots are equidistant we say the B-spline is uniform otherwise we call it non-uniform.
Uniform B-spline
When the B-spline is uniform the basis B-Splines for a given degree n are just shifted copies of each other. An alternative non recursive definition for the m+1 basis B-splines is
with
with
where
is the truncated power function
Notes
When the number of knots is the same as the degree, the B-Spline degenerates into a Bezier curve. The shape of the basis functions is determined by the position of the knots. Scaling or translating the knot vector does not alter the basis functions.
The spline is contained in the convex hull of its control points.
A basis B spline of degree n
is non-zero only in the interval [ti, ti+n+1] that is
In other words if we manipulate one control point we only change the local behaviour of the curve and not the global behaviour as with Bézier curves.
Examples
Constant B-spline
The constant B-spline is the most simple spline.
Cubic B-Spline
A B-spline formulation for a single segment can be written as:
where is the ith B-spline segment and P is the set of control points, segment i and k is the local control point index. The value of u is as a local parameter to define a single curve segment. A set of control points would be where the is weight, pulling the curve towards control point as it increases or moving the curve away as it decreases.
An entire set of segments, m-2 curves () defined by m+1 control points (), as one B-spline in u would be defined as:
where i is the control point number and u is a global parameter giving knot values. This formulation expresses a B-spline curve as a linear combination of B-spline basis functions, hence the name.
There are two types of B-spline - uniform and non-uniform. A non-uniform B-spline is a curve where the intervals between successive control points is not, or not necessarily, equal (the knot vector of interior knot spans are not equal). A common form is where intervals are successively reduced to zero, interpolating control points.
See also
- Spline (mathematics)
- Parametric patch
- Beta-spline (Beta spline)
- Curve interpolation
- De Boor algorithm
References
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.