Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
B-spline∗ CWoo† 2013-03-21 23:26:31 B-spline basis functions Let s := {si | i ∈ Z} be a sequence of nondecreasing real numbers (si ≤ si+1 ). For each i, we recursively define a set of real-valued functions Ni,j (for j = 0, 1, . . .) as follows: 1 if si ≤ t < si+1 Ni,0 (t) := 0 otherwise Ni,j+1 (t) := αi,j+1 (t)Ni,j (t) + [1 − αi+1,j+1 (t)]Ni+1,j (t) where αi,j (t) := t − si si+j − si 0 if si+j 6= si otherwise. Definitions. Using the notations above: 1. the sequence s is known as a knot sequence, and the individual term in the sequence is a knot; 2. the functions Ni,j are called the i-th B-spline basis functions of order j, and the recurrence relation is called the de Boor recurrence relation, after its discoverer Carl de Boor; 3. given any non-negative integer j, the vector space Vj (s) over R, generated by the set of all B-spline basis functions of order j is called the B-spline of order j. In other words, the B-spline Vj (s) := span{Ni,j (t) | i = 0, 1, . . .} over R. 4. Any element of Vj (s) is a B-spline function of order j. ∗ hBsplinei created: h2013-03-21i by: hCWooi version: h39721i Privacy setting: h1i hDefinitioni h51N05i h65D10i h65D07i † This text is available under the Creative Commons Attribution/Share-Alike License 3.0. You can reuse this document or portions thereof only if you do so under terms that are compatible with the CC-BY-SA license. 1 The 0th order B-spline basis functions are nothing more than characteristic functions on half-open intervals (or the zero function if si = si+1 ). When j = 1, 2, 3, the B-spline basis functions are said to be linear, quadratic, or cubic. The calculations of the higher order B-spline basis functions can be easily understood by use of triangular difference tables. For example, to calculate N53 , one would use @R = 1pt@C = 1.5cms5N5,0 @− >[rd]N5,1 @− >[rd]s6N6,0 @− >[rd]@− >[ru]N5,2 @− >[rd]N6,1 @− >[rd]@− >[r Remarks. • Each B-spline basis function Ni,j is completely defined by the finite set {si , . . . , si+j+1 } of knots. Furthermore, it is 1. non-zero in the open interval (si , si+j+1 ), 2. Ni,j restricted to each subinterval [sk , sk+1 ) is a polynomial function of degree j for k = i, . . . , i + j, and 3. identically 0 outside the interval [si , si+j+1 ). • In Vj (s), the non-zero B-spline basis functions of order j are linearly independent. In other words, the set of all non-zero Ni,j forms a basis for Vj (s) and hence the name B-spline basis functions. • Given a knot sequence s, a knot si is said to be knotted if si = si+1 . It is a double knot if si−1 < si = si+1 < si+2 . Triple knots and more generally n-multi knots are defined analogously. A knot sequence is knotted if it contains a knotted knot. • If a knot sequence is not knotted, then it can be shown that the B-spline basis function Ni,j is C j−1 but not of C j . For example, Ni,1 is continuous but not differentiable. • If a knot sequence s is finite and not knotted, then Vj (s) is finite dimensional. If s has n knots, then Vj (s) has dimension n − j for j < n, and 0 otherwise. B-spline curves In most applications of B-splines, finite knot sequences are considered. A finite knot sequence {s0 , . . . , sn } is also known as a knot vector. Let s = {s0 , . . . , sn } be a knot vector. Let P0 , . . . , Pm be m + 1 points in Rk (usually k = 2 or 3). Then we may form a linear combination P (t) = m X Pi Ni,j (t), i=0 where Pi Ni,j (t) is the scalar multiplication of the scalar Ni,j (t) by the vector Pi . This is possible only when there are at least as many Ni,j (there are n + 1 − j 2 of them) as there are Pi (there are m of them). In other words, m ≤ n + 1 − j. Set p = n + 1 − m. Then the function defined by P (t) = m X Pi Ni,p (t) i=0 is called a B-spline curve with control points P1 , . . . , Pm . Note that P (t) is completely determined by the control points and the knot vector s, and each coordinate of P (t) is a B-spline function in Vp (s). More to come... 3