Matrix methods of computing B-spline curves and surfaces have been, considered in the work of several authors. Here we propose a new, more general matrix formulation and respective upgraded notation. The new approach is based on non-commutative operator splitting, where the domain and range of every factoring operator differ by one dimension, and the factoring operators are represented by a product of sparse rectangular matrices with expanding dimensions differing by 1, so that these matrices are d × (d + l)-dimensional (with d increasing with an increment of 1) and have nonzero values only on their two main diagonals (a_(i,i)) and (a_(i, i+1)), i = l..., d. In this new matrix formulation it is possible to obtain the generation of the B-spline basis and the algorithms of de Casteljau and Cox-de Boor in a very lucid unified form, based on a single matrix product formula. This matrix formula also provides an intuitively clear and straightforward unified approach to corner cutting, degree elevation, knot insertion, computing derivatives and integrals in matrix form, interpolation, and so on. For example, computing the matrix product in the formula from left to right results in the successive iterations of the de Casteljau algorithm, while computing it from right to left is equivalent to the successive iterations in the Cox-de Boor algorithm., Although the new matrix factorization is essentially non-commutative, in Theorem 1 we formulate and prove an important commutativity relation between this matrix factorization and the operator of differentiation. We use this relation further to propose a new, considerably more concise form of matrix notation for B-splines, with respective efficient computation based on sparse-matrix multiplication.
展开▼