Скачать книгу

alt="Schematic illustration of example of a hollow cylinder described with a quadratic NURBS volume."/>

      where R and x denote the matrix of the NURBS basis functions and the vector collecting the locations of the associated control points, respectively. Considering, for example, control points in 3D, R and x, formally read as:

      [1.24] images

      1.2.3. Design features and shape parameterization

      1.2.3.1. Refinement

      B-splines and NURBS can be refined while leaving the underlying geometry intact. There are different refinement mechanisms. The first possibility consists of inserting new knots into the knot-vectors. This process is called knot-insertion. More precisely, let us take the case of a p-degree B-spline curve, defined from knot-vector image with n1 control points Pi. Knot-insertion consists of adding k1 new (interior) knots image in the knot-vector. The new refined version of the B-spline curve takes the same degree p, but is built from the new knot-vector, which concatenates the initial knots image with the inserted ones image (in ascending order). The new knot-vector image counts n1 + k1 + p + 1 knots. Ultimately, the only input that remains to be able to define the refined spline object is the vector collecting the control points. In other words, we need to compute the coordinates of the n1 + k1 control points denoted here image Interestingly, it takes the form of a linear application:

      [1.25] images

      where Dp is the refinement matrix (size l(k1 + n1) × ln1, with l being the dimension of the physical space) and vectors image and x gather the control point positions associated with image and Pi, respectively (the same notation as in [1.23]). The refinement matrix is sparse and is obtained recursively (Cottrell et al. 2009), since it is based on formula [1.13]:

      [1.26] images

      [1.27] images

      The other refinement possibility is the degree elevation. As its name suggests, it consists of increasing the polynomial degree of the B-spline basis functions. Hence, it has to be noted that through the order-elevation, all values in the knot-vector are repeated to preserve the initial discontinuities of the derivatives of the functions (ensuring that the refined spline space includes the initial coarse spline space). As an illustration, let us take the example from Figure 1.11. The initial knot-vector Ξ is for quadratic B-spline functions while the refined knot-vector image is for quartic functions. More precisely, Ξ and image read:

      [1.28] images

      1 1) subdivide the curve into as many (C0) Bézier curves as there are elements by repeating p times the interior knots;

      2 2) elevate the polynomial degree on each of these segments;

      3 3) remove exceeding knots to combine the Bézier element curves into one B-spline curve.

      Steps 1 and 3 are performed using the knot-insertion procedure. The formula for the degree-elevation of a Bézier curve can be found for the example in Piegl and Tiller (1997). It is possible to elevate the degree from p to p + t in one step: