Is it a reasonable to have the following in the BSpline?

153 views Asked by At

I have a closed 3-order(degree 2) BSpline which has the following parameters

9 control points 14 knot points

why the relation is 9 + 3 + 2 = 14?

2

There are 2 answers

1
Dale Lear On

The relationship between a b-spline's order (N), number of control points (C) and number of knots (K) is either

K = C + O - 2

or

K = C + O

The choice depends on the convention used for the initial and final knots.

Some libraries, OpenGL's old auxiliary library being an important example, store an extra duplicate of the initial and final knot value. These implementations will have K = C + O. If you examine the algorithms used for evaluating b-spilnes, the duplicate initial and final knot values values are not required. For this reason other libraries, opennurbs and Rhino 3d's SDK being notable examples, have K = C + O -2.

More information is available at http://wiki.mcneel.com/developer/onsuperfluousknot

0
fang On

Your B-spline could be a degree 2 perioidc B-spline, which will have two duplicated control points at the end, which are identical to the first two control points. For such cases, when displaying all the 11 control points, it will look like there are only 9. It is also possible that the software you are using decides not to store the two identical control points in runtime data structure or C++ class and you will end up seeing 9 control points with 14 knots.