Generating a B-Spline Curve by the Cox-De Boor Algorithm
Requires a Wolfram Notebook System
Interact on desktop, mobile and cloud with the free Wolfram Player or other Wolfram Language products.
This Demonstration shows how to generate a B-spline curve by the Cox–De Boor algorithm. The implementation is fully described in the Details.
Contributed by: Shutao Tang (February 2015)
(Northwestern Polytechnical University, Xi'an City, China)
Open content licensed under CC BY-NC-SA
Snapshots
Details
As described in [1], a degree B-spline curve is defined by
, ,
where are the control points and the are the degree B-spline basis functions (see [Related Links]) defined on the nondecreasing knot vector , where and .
For this Demonstration, the initial control points are (but you can drag them, except for the last two), the degree is , and the knot vector is .
The functions, depending only on the knots , given by the knot vector , are defined recursively by
Let ; there is an index such that . From the recursive definition of , the only nonzero functions are . Then
;
Distributing over the sum,
.
However, the support of is , and for , when , and when
So
.
Changing the second index of summation yields
.
Define
,
,
to obtain
.
Finally, iterating the calculations, it follows that
where
.
References
[1] L. Piegl and W. Tiller, The NURBS Book, 2nd ed., Berlin: Springer–Verlag, 1997 pp. 50, 55, 68, 81.
[2] 施法中. 计算机辅助几何设计与非均匀有理B样条 CAGD&NURBS[M].北京:高等教育出版社. 1994 pp. 239–242.
[3] Michael E2. "Answer to 'Drawing the Schematic Diagram of Algorithm'." Mathematica Stack Exchange. (Feb 10, 2015) mathematica.stackexchange.com/questions/63471/drawing-the-schematic-diagram-of-algorithm/63536#63536.
Permanent Citation