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

  • Thread starter mymachine
  • Start date
  • Tags
    Vector
In summary, the knot vector is an array of the x values of the points where the "pieces" of a piece-wise defined function join. It is used to determine the shape of the B-spline basis functions and can be modified through knot insertion to create different B-splines. The degree and sequence of knots can be found by analyzing the knot vector and understanding its recursive nature.
  • #1
mymachine
42
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?
 
Mathematics news on Phys.org
  • #2
"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.
 
  • #3
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
 
  • #4
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.
 
  • #5


The knot vector is a set of values that are used in the mathematical equations for B-splines and NURBS (Non-Uniform Rational B-splines) curves. They determine the shape and control points of the curve and are essential in calculating the curve's position and shape.

In the given example, the knot vector has values of 0,0,0,1,1,1,4,4,6,6. This means that the curve will have a knot at 0, 1, 4, and 6, with multiple knots at 0 and 1. The values in between the knots are used to calculate the curve's position and shape.

To find the value of the knot vector, you need to have a clear understanding of the mathematical equations used in B-splines and NURBS curves. It is not something that can be easily explained without prior knowledge of these equations. I would suggest consulting with a mathematician or reading more specialized textbooks on this topic to gain a better understanding of how to find the value of the knot vector.
 

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

1. What is the knot vector in mathematical terms?

The knot vector is a set of non-decreasing real numbers that represent the locations of the knots in a spline curve or surface. It serves as a parameterization of the curve or surface and determines the shape of the spline.

2. How is the knot vector used in spline interpolation?

The knot vector is used to define the control points and their corresponding weights in a spline interpolation. It determines the overall shape of the curve or surface by controlling the tension and curvature at each knot point.

3. What is the significance of the knot vector in computer graphics?

The knot vector is essential in computer graphics because it allows for smooth and precise representation of curves and surfaces. It is commonly used in computer-aided design (CAD), computer animation, and computer-aided manufacturing (CAM).

4. Can the knot vector be modified after it has been created?

Yes, the knot vector can be modified by adding or removing knots. This can change the shape and behavior of the spline curve or surface. However, care must be taken to maintain the non-decreasing property of the knot vector.

5. Are there different types of knot vectors?

Yes, there are different types of knot vectors, such as uniform, non-uniform, and open. Uniform knot vectors have a constant distance between each knot, while non-uniform knot vectors have varying distances. Open knot vectors do not have repeated knots at the ends, allowing for more control over the shape of the spline.

Back
Top