B-splines Functions:
We will look at B-Splines, which are a general form of Bezier. B-splines provide functions of the form are following:
where Pi are the control points, and the {fi (u), i = 0, . . . , n} are piecewise polynomial functions that compose a basis for the vector space of all piecewise polynomial functions of some given degree and continuity at a given set of breakpoints {ui, i = 1, . . . , m}. Note down that continuity (at least w.r.t. the parameter u) is dictated purely by the basic functions fi (u) - the control points may be modified without affecting the continuity. Furthermore, we would like C (u) to possess the convex hull property, in addition to the coordinate frame invariance property. Another property we desire our fi (u)'s to have is that of local support - each fi (u) is non-zero in just a (given) small number of intervals, but not over the overall domain [u0, um]. Since Pi is multiplied by fi (u), moving Pi shall only affect the curve shape in the range where fi (u) is non-zero.
All of these, and other beautiful properties are possessed by B-splines. To understand B-splines, we ought to first study the B-spline basis functions. Let U = {u0, . . ., um} be a non-reducing sequence of real numbers, that is, u0 î_ X1 î_ X2 ... î_ Xm. The ui are called as knot points, or simply knots, and U is the knot vector. After that the i-th B-spline basis function of degree-p (order p + 1), indicated Ni, p (u), is described as:
Ni, p (u) = (u- ui / ui + p - ui )Ni, p -1 (u) = ( ui + p +1 - u / ui + p +1 - ui +1 )Ni +1, p -1 (u)