NURBS Surface
The NURBS (nonuniform rational B-spline) surface is defined by basis functions (in u and v), expandable arrays of knots, weights, and control points.
Figure 243. NURBS Surface
Data Format:
deg[2] Degree of the basis
functions (in u and v)
u_par_arr[] Array of knots on the
parameter line u
v_par_arr[] Array of knots on the
parameter line v
wghts[] Array of weights for
rational NURBS, otherwise
NULL
c_point_arr[][3] Array of control points
Definition:
k = degree in u
l = degree in v
N1 = (number of knots in u) - (degree in u) - 2
N2 = (number of knots in v) - (degree in v) - 2
B = basis function in u
B = basis function in v
w = weights
C = control points (x,y,z) * w
Engineering Notes:
The weights and f arrays represent matrices of size wghts[N1+1][N2+1] and c_points_arr [N1+1] [N2+1]. Elements of the matrices are packed into arrays in row-major order.