B-Spline Polynomial

B-Spline Polynomial

Lecture 5: Introduction to B-Spline Curves 1 The control in shape change is better achieved with B-spline curves than the B´eziercurves. The degree of the curve is not dependent on the total number of points. B-splines are made out several curve segments that are joined \smoothly". Each such curve segment is controlled by a couple of consecutive control points. Thus, a change in the position of a control point only proapagates upto a predictable range. B-spline Polynomial Let p0; :::; pn be the control points. The nonrational form of a B-spline is given by n p(u) = Σi=0piNi;D(u) For B´eziercurves the number of control points determine the degree of the basis functions. For a B-spline curve a number D determines its degree which is D − 1. The basis functions are defined recursively as follows: Ni;1(u) = 1 if ti ≤ u < ti+1 = 0 otherwise and (u − ti)Ni;d−1(u) (ti+d − u)Ni+1;d−1(u) Ni;d(u) = + ti+d−1 − ti ti+d − ti+1 If the denominator of any of the two terms on the RHS is zero, we take that term to be zero. The range of d is given by d : d = 2; ::; d = D. The tj are called knot values, and a set of knots form a knot vector. If we have n control points and we want a B-spline curve of degree D − 1 we need T = n + D + 1 knots. If we impose the condition that the curve go through the end points of the control polygon, the knot values will be: tj = 0 if j < D tj = j − D + 1 if D ≤ j ≤ n tj = n − D + 2 if n < j ≤ n + D The knots range from 0 to n + D, the index i of basis functions ranges from 0 to n. So, there are always n + 1 basis functions each of which depends on D knots. The knot vector takes the form T = fα; :::; α; tD; :::; tn; β; :::; βg where the end knots α and β are repeated with multiplicity D. We can parameterize the entire curve over [0; 1]. But, for simplicity we will use the interval [α = 0; β = n − D + 2]. If we space the knots uniformly we get uniform B-splines. Otherwise, we get nonuniform B-splines as is done in the previous discussion. 1Note by Tamal K. Dey 1 Basis functions Let us assume that we have six control points (n = 5). Then, Ni;1 will require 5 + 1 + 1 = 7 knots f0; 1; 2; 3; 4; 5; 6g. We obtain: N0;1(u) = 1 if 0 ≤ u < 1 = 0 otherwise N1;1(u) = 1 if 1 ≤ u < 2 = 0 otherwise · · N5;1(u) = 1 if 5 ≤ u ≤ 6 = 0 otherwise These are box functions and the corresponding B-spline is p(u) = pi for i ≤ u < i + 1, i.e., the control points itself. Now lets consider the basis functions Ni;2(u). This will need Ni;1's. N0;1(u) = 1 if u = 0 = 0 otherwise N1;1(u) = 1 if0 ≤ u < 1 = 0 otherwise · · N5;1(u) = 1 if 4 ≤ u ≤ 5 = 0 otherwise This gives: N0;2(u) = (1 − u)N1;1(u) N1;2(u) = uN1;1(u) + (2 − u)N2;1(u) N2;2(u) = (u − 1)N2;1(u) + (3 − u)N3;1(u) N3;2(u) = (u − 2)N3;1(u) + (4 − u)N4;1(u) N4;2(u) = (u − 3)N4;1(u) + (5 − u)N5;1(u) N5;2(u) = (u − 4)N5;1(u) We have the curve: p(u) = (1 − u)p0 + up1 0 ≤ u < 1 = (2 − u)p1 + (u − 1)p2 1 ≤ u < 2 = (3 − u)p2 + (u − 2)p3 2 ≤ u < 3 = (4 − u)p3 + (u − 3)p4 3 ≤ u < 4 = (5 − u)p4 + (u − 4)p5 4 ≤ u ≤ 5 These are the line segments joining the control points. 2.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    2 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us