Fast evaluation of B-spline functions and rendering of multiple B-spline curves using linear-time algorithm for computing the Bernstein-Bézier coefficients of B-spline functio

04/11/2022
by   Filip Chudy, et al.
0

A new differential-recurrence relation for the B-spline functions of the same degree is proved. From this relation, a recursive method of computing the coefficients of B-spline functions of degree m in the Bernstein-Bézier form is derived. Its complexity is proportional to the number of coefficients in the case of coincident boundary knots. This means that, asymptotically, the algorithm is optimal. In other cases, the complexity is increased by at most O(m^3). When the Bernstein-Bézier coefficients of B-spline basis functions are known, it is possible to compute any B-spline function in linear time with respect to its degree by performing the geometric algorithm proposed recently by the authors. Using a similar approach, one can also convert a d-dimensional B-spline curve of degree m over one knot span to a Bézier curve in O(m^2) time and then evaluate it in O(md) time. Since one only needs to convert each knot span once, this algorithm scales well when evaluating the B-spline curve at multiple points, e.g., in order to render it. When evaluating many B-spline curves at multiple points, such approach has lower computational complexity than using the de Boor-Cox algorithm. The problem of finding the coefficients of the B-spline functions in the power basis can be solved similarly.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset