
12.5 NURBS Rectangle Patches 583
Point BSplineSurface::X (float u, float v)
{
int i0 = Nu.Compute(u), i1 = Nv.Compute(v);
Point result = ZERO;
for (int j0 = i0 - d0; j0 <= i0; j0++)
{
for (int j1 = i1 - d1; j1 <= i1; j1++)
result += Nu.Basis(j0) * Nv.Basis(j1) * P[j0][j1];
}
return result;
}
12.5 NURBS Rectangle Patches
B-spline surface patches are piecewise polynomial functions of two variables. NURBS
surface patches are piecewise rational polynomial functions of two variables. Just as
for curves, the construction involves fitting homogeneous points in one higher di-
mension with a B-spline surface (Y(u, v), w(u, v)), then projecting back to your ap-
plication ...