What is a Knot Vector and How Do You Find Its Value?

  • Context: Graduate 
  • Thread starter Thread starter mymachine
  • Start date Start date
  • Tags Tags
    Vector
Click For Summary

Discussion Overview

The discussion revolves around the concept of the knot vector in the context of B-splines and NURBS (Non-Uniform Rational B-Splines). Participants seek to understand what a knot vector is, how to determine its values, and its role in defining piece-wise functions and curves.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant asks for clarification on the definition of a knot vector and how to find its value, expressing frustration over the lack of information in textbooks.
  • Another participant explains that knots are points where pieces of a piece-wise function join, and the knot vector is an array of these x-values.
  • A different participant asserts that the knot vector is only applicable to linear functions, questioning how one can determine the knots before knowing the graph of the function.
  • One participant describes the recursive nature of B-spline basis functions and how the knot vector influences their shapes, providing an example of how different knot vectors lead to different numbers of basis functions.
  • Another participant mentions the process of knot insertion and its effect on the number of control points needed for a cubic B-spline.
  • A reference to Dr. Lyle Ramshaw's "polar form" notation is made, suggesting it illustrates the impact of the knot vector on B-splines.

Areas of Agreement / Disagreement

Participants express varying levels of understanding regarding the knot vector, with some asserting its definition and role while others question its applicability and the process of determining its values. No consensus is reached on how to find the value of the knot vector or its necessity in understanding B-splines.

Contextual Notes

There are unresolved questions regarding the assumptions needed to determine the knot vector and the implications of its values on the B-spline functions. The discussion highlights a potential gap in educational resources on this topic.

mymachine
Messages
42
Reaction score
0
Could anybody tell me what is meant by the knot vector and how to find its value?

I read in the book, the value is 0,0,0,1,1,1,4,4,6,6.

Also, I think none of the curves-and-surfaces-for-CAGD related textbooks, most of them, I read from library, are not giving information, absolutely, of how to find the value of the knot vector.

Well, I read 7 books already.

How could I solve the basic B-spline and NURBS function if I couldn't find the value of the knot vector as them are required to solve the function?
 
Physics news on Phys.org
"Knots" occur in piece-wise defined functions. If, for example, you want want to approximate a complicated function by a "piece-wise linear fuction", a "piece-wise quadratic function", or a "cubic spline" (a particular type of piece-wise cubic function), then the points where the "pieces" join are the "knots". And the "knot vector" is an array having the x values of those knots as entries.
 
OK, I know the value of the knot vector is the value of the point in the x-axis of the cartesian coordinate, where the pieces are join.

Also, I know the knot vector is only available in the linear function, am I right?

However, I still do not understand.

What I had read in my book is, the knots and its value have to be determined at the beginning, before I couldn't even know how the graph of the linear function is looks like.

This is impossible.

This is like a wizard that could see what will happen in the future?

Now I would like trying to solve the B-spline function where the control points are:

c0 = (0,0)
c1 = (2,3)
c2 = (4,4)
c3 = (8,3)
c4 = (9,1)

By following the example in my book, what I need is the value of the degree d, and the sequence of the knots k0, k1, ..., kn.

And first I should solve the linear function.

Could you please tell me what is the value of the degree and the knots?

Thank you
 
The recursive B-spline basis functions use the knot vector to determine what their final shapes are. For example, the step functions that form the "base case" for the recursion (the "zeroth" order) are 1 over the interval from one knot value to the next, and 0 everywhere else. For example, a knot vector like [0 0 0 0 1 2 2 2 2] would consist of 8 step functions: 3 of which are 1 from [0,0) and 0 everywhere else, 1 of which are 1 from [0,1) and 0 everywhere else, 1 of which are 1 from [1,2) and 0 everywhere else, and 3 of which are 1 from [2,2) and 0 everywhere else. The next "set" of basis functions (the "1st" order) linearly interpolate between two of the basis functions over the interval, which makes them form triangular functions instead of step-wise functions. The interpolation yields 7 functions instead of 8. The next "set" of functions (the "2nd" order) linearly interpolate from those, yielding 6 functions. The last "set" of basis functions are "3rd" order linearly interpolate from the "2nd" order, yielding 5 basis functions. Since we have 5 basis functions, we need 5 control points to define this cubic B-spline.

Knot insertion just establishes 1 more step function at the "base case". In this example, if we added another knot at 1, we'd get the knot vector [0 0 0 0 1 1 2 2 2 2]. Thus, we'd add another step function that is 1 over the interval [1,1) and 0 everywhere else. Like above, we'd have 9 step functions, 8 "1st order" functions, 7 "2nd order" functions, and 6 "3rd order" functions. Thus, we'd need 6 control points for this cubic B-spline, but those can be determined from the existing 5 control points.

If you don't feel comfortable with the recursive nature of the B-spline functions, you can view a B-spline as a machine that generates Bezier curves of the same degree as the B-spline with a certain degree of continuity between them. In our above example, the cubic B-spline with knot vector [0 0 0 0 1 2 2 2 2] is really just 2 cubic Bezier curves with C2 continuity between them. The control points of those Bezier curves can be found by inserting multiple knots (Cox-de Boor algorithm) until we reach the knot vector [0 0 0 0 1 1 1 2 2 2 2].

If you're interested, Dr. Lyle Ramshaw's "polar form" notation helps show the effect the knot vector has on the underlying B-spline.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
Replies
1
Views
1K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 12 ·
Replies
12
Views
5K
Replies
1
Views
2K
Replies
26
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 0 ·
Replies
0
Views
1K