B´zier- and B-spline techniques e

Hartmut Prautzsch Wolfgang Boehm Marco Paluszny March 26, 2002

2

To Paul de Faget de Casteljau

Preface

Computer-aided modeling techniques have been developed since the advent of NC milling machines in the late 40’s. Since the early 60’s B´zier and Be spline representations evolved as the major tool to handle curves and surfaces. These representations are geometrically intuitive and meaningful and they lead to constructive numerically robust algorithms. It is the purpose of this book to provide a solid and unified derivation of the various properties of B´zier and B-spline representations and to show the e beauty of the underlying rich mathematical structure. The book focuses on the core concepts of Computer-aided Geometric Design (CAGD) with the intent to provide a clear and illustrative presentation of the basic principles as well as a treatment of advanced material, including multivariate splines, some subdivision techniques and constructions of arbitrarily smooth free-form surfaces. In order to keep the book focused, many further CAGD methods are excluded. In particular, rational B´zier and B-spline techniques are not ade dressed since a rigorous treatment within the appropriate context of projective geometry would have been beyond the scope of this book. The book grew out of several courses taught repeatedly at the graduate and intermediate under-graduate levels by the authors at the Rensselaer Polytechnic Institute, USA, the Universities of Braunschweig and Karlsruhe, Germany, and the Universidad Central de Venezuela. These courses were taught as part of the curricula in mathematics and computer sciences, and they were regularly attended also by students from electrical and mechanical engineering, geophysics and other sciences. For the careful proofreading of parts of the manuscript, we like to thank Stefan Bischoff, Bernhard Garz, Georg Umlauf, Claudia Bangert and Norbert Luscher. Especially, we thank Christoph Pennekamp and Natalie Spinner for preparing the LaTeX file and Bernd Hamann for his critical, thorough and final proofreading. Wolfenb¨ttel, u Caracas, Karlsruhe, Wolfgang Boehm Marco Paluszny Hartmut Prautzsch

VII

.

6 Curve generation by forward differences 3.2 Affine combinations 1.8 The variation diminishing property 3.Contents I Curves 3 4 5 6 7 1 Geometric fundamentals 1.1 Bernstein polynomials 2.9 The symmetric polynomial of the derivative 9 11 13 15 17 17 19 20 22 22 25 27 27 29 30 32 32 34 35 IX .1 Affine spaces 1.3 Subdivision 3.4 Derivatives 2.5 Singular parametrization 2.4 Parametric curves and surfaces 1.3 The de Casteljau algorithm 2.2 B´zier representation e 2.6 A tetrahedral algorithm 2.4 Convergence under subdivision 3.3 Affine maps 1.8 Conversion to B´zier representation e 2.7 Intersections 3.1 Symmetric polynomials 3.2 The main theorem 3.7 Integration 2.10 Problems 3 B´zier techniques e 3.9 Conversion to monomial form 2.5 Curve generation by subdivision 3.5 Problems 2 B´zier representation e 2.

7 Interpolation 6.3 A recursive definition of B-splines 5.10 3.1 Knot insertion 6.2 Lagrange form 4.5 Piecewise cubic Hermite interpolation 4.10 Conversions between B´zier and B-spline representations e 5.11 B-splines as divided differences 5.4 The de Boor algorithm 5.8 Improving the parameter 4.6 Approximation 4.13 Simple C r joints Degree elevation Convergence under degree elevation Problems Contents 36 37 39 40 4 Interpolation and approximation 4.7 B-spline properties 5.3 Convergence under knot insertion 6.1 Splines 5.1 Interpolation 4.7 Least squares fitting 4.9 Problems 5 B-spline representation 5.6 Derivatives and smoothness 5.11 3.4 A degree elevation algorithm 6.12 Problems 6 B-spline techniques 6.9 The complete de Boor algorithm 5.12 3.8 Conversion to B-spline form 5.2 The Oslo algorithm 6.2 B-splines 5.8 Cubic spline interpolation 43 44 47 48 49 52 53 55 56 59 60 61 63 65 67 68 69 70 72 73 74 77 79 80 81 82 83 84 86 .5 A degree elevation formula 6.4 Hermite interpolation 4.5 The main theorem in its general form 5.X 3.6 Convergence under degree elevation 6.3 Newton form 4.

9 Problems XI 88 91 93 94 95 97 97 98 100 102 103 105 105 106 109 110 112 114 115 115 116 117 119 120 120 7 Smooth curves 7.1 Tensor products 9.3 Gamma-splines 7.7 Simple C r joints .5 Derivatives 8.7 Frenet frame continuity 7.9 The four-point scheme 8.13 Problems 8 Uniform subdivision 8.2 Uniform subdivision 8.9 Geometric meaning of the main theorem 7.10 Splines with arbitrary connection matrices 7.7 Convergence theorems 8.4 Conversion to and from monomial form 9.5 Nu-splines 7.11 Knot insertion 7.Contents 6.6 The Frenet frame 7.3 Repeated subdivision 8.11 Problems II Surfaces 125 127 130 131 132 133 135 9 Tensor product surfaces 9.12 Basis splines 7.6 Stationary subdivision 8.3 Tensor product polar forms 9.8 Osculants and symmetric polynomials 7.10 Analyzing the four-point scheme 8.5 The de Casteljau algorithm 9.4 The subdivision matrix 8.1 Contact of order r 7.6 Derivatives 9.2 Arc length parametrization 7.8 Computing the difference scheme 8.4 Gamma B-splines 7.2 Tensor product B´zier surfaces e 9.1 Uniform B-splines 8.

6 Convexity 10.5 Singular parametrization 12.8 Degree elevation 11.7 Simple C r joints 11.3 Linear precision 10.3 The Powell-Sabin interpolant 12.1 Triangular Hermite interpolation 12.8 9.9 9.6 The symmetric polynomial of the derivative 11.1 Symmetric polynomials 11.6 12.4 Surfaces of arbitrary topology 12.12 Piecewise bicubic C 1 interpolation Surfaces of arbitrary topology Singular parametrization Bicubic C 1 splines of arbitrary topology Notes and Problems Contents 135 136 138 139 139 10 B´zier representation of triangular patches e 10.2 The main theorem 11.1 Bernstein polynomials 10.5 Derivatives 10.12 Problems 12 Interpolation 12.2 B´zier simplices e 10.9 Convergence under degree elevation 11.4 The de Casteljau algorithm 10.5 Surface generation 11.8 Notes and Problems 11 B´zier techniques for triangular patches e 11.10 9.4 Convergence under subdivision 11.XII 9.7 Limitations of the convexity property 10.11 9.11 Conversion to triangular B´zier representation e 11.7 Quintic C 1 splines of arbitrary topology Notes and Problems 143 145 147 148 149 151 153 154 157 159 160 162 162 164 164 166 167 168 169 170 173 174 175 176 177 178 180 .3 Subdivision and reparametrization 11.10 Conversion to tensor product B´zier representation e 11.2 The Clough-Tocher interpolant 12.

1 Tensor product schemes 15.Contents 13 Constructing smooth surfaces 13.2 14.5 Continuity of subdivision surfaces 16.4 Increasing averages 15.6 Computing the averaging schemes 15.3 Convergence theorems 15.8 Triangular and hexagonal nets 207 209 211 213 214 216 217 220 221 223 224 227 229 230 232 233 234 235 236 .2 General stationary subdivision and masks 15.4 13.11 Problems 16 Stationary subdivision for arbitrary nets 16.6 The characteristic map 16.10 Half–box splines over triangular grids 15.3 The standard parametrization 16.7 Higher order smoothness 16.6 The general C 1 joint Joining two triangular cubic patches Piper’s G1 interpolant The vertex enclosure problem The parity phenomenon Problems XIII 181 183 185 186 187 188 14 Gk -constructions 14.6 14.1 13.2 13.5 14.5 13.3 13.9 Subdivision for hexagonal nets 15.3 14.2 The limiting surface 16.5 Computing the difference schemes 15.1 The midpoint scheme 16.7 Subdivision for triangular nets 15.8 Box splines over triangular grids 15.1 The general C k joint 14.4 The subdivision matrix 16.7 G joints by cross curves Gk joints by the chain rule Gk surfaces of arbitrary topology Smooth n-sided patches Multi-sided patches in the plane Problems k 191 192 194 195 200 203 205 15 Stationary subdivision for regular nets 15.4 14.

6 Linear combinations of B-splines 19.2 B-polynomials and B-patches 19.9 Problems 18 Simplex splines 18.3 Properties of box splines 17.6 Convergence under subdivision 17.4 Derivatives of a B-patch 19.1 Generalizing de Casteljau’s algorithm 19.4 Knot insertion 18.8 Half-box spline surfaces 17.8 Derivatives of a spline 19.3 Normalized simplex splines 18.7 A recurrence relation 19.9 The main theorem 19.3 Linear precision 19.2 Box splines as shadows 17.7 Problems 19 Multivariate splines 19.7 Half-box splines 17.4 Properties of box spline surfaces 17.9 Problems Contents 237 III Multivariate splines 241 242 244 246 248 251 252 254 257 17 Box splines 17.1 Shadows of simplices 18.10 Problems 261 262 264 265 267 269 270 273 275 276 277 279 281 282 284 285 286 .XIV 16.5 Subdivision for box spline surfaces 17.6 Derivatives 18.2 Properties of simplex splines 18.1 Definition of box splines 17.5 Multivariate B-splines 19.5 A recurrence relation 18.

Part I Curves 1 .

.

4 Derivatives — 2. The following properties of the Bernstein polynomials of degree n are important. Namely. n .6 A tetrahedral algorithm — 2. Furthermore.1 for n = 4. The curve and its B´zier polygon are closely related. .2 B´zier representation — 2. . . i i = 0.2 B´zier representation e 2. one of the fastest and numere ically most stable algorithm used to render a polynomial curve is based on the B´zier representation. They have e common end points and end tangents. which are illustrated in Figure 2.3 The de Casteljau e algorithm — 2.5 Singular parametrization — 2. the curve segment lies in the convex hull of its B´zier polygon. . • They are linearly independent.1 Bernstein polynomials n Computing the binomial expansion 1 = (u + (1 − u))n = i=0 n i u (1 − u)n−i i leads to the Bernstein polynomials of degree n.9 Conversion to monomial form — 2.7 Integration — 2.10 Problems Every polynomial curve segment can be represented by its so-called B´zier e polygon.8 Conversion to B´zier representation — e 2.1 Bernstein polynomials — 2. e 2. n Bi (u) = n i u (1 − u)n−i . and setting s = 9 . etc. dividing n i i=0 bi u (1 − u)n−i = 0 by (1 − u)n .

R • They are positive in (0. 1) . • They are symmetric. n Bi (u) > 0 . n n Bi (0) = Bn−i (1) = 1 0 for i=0 i>0 . n n 0 where B−1 = Bn+1 = 0 and B0 = 1. u/(1 − u). This recursion formula follows directly from the identity n+1 i = n n + i−1 i . which implies b0 = . . • They have roots at 0 and 1 only. i=0 for all u∈I . = bn = 0. B´zier representation e Figure 2. 1). • They satisfy the recursion formula n+1 n n Bi (u) = uBi−1 (u) + (1 − u)Bi (u) . . n n Bi (u) = 1 . • They form a partition of unity. n n Bi (u) = Bn−i (1 − u) . 1]. gives n i i=0 bi s = 0. . for u ∈ (0.10 2.1: The Bernstein polynomials of degree 4 over [0.

. .2. . e • The symmetry of the Bernstein polynomials implies that n n n bi Bi (t) = i=0 i=0 n bn−i Bi (s) .2. B´zier representation e 11 Remark 1: The computation of the Bernstein polynomials up to degree n can be arranged in a triangular scheme. a=b . e n b(u(t)) = i=0 n bi Bi (t) . n B0 n B1 n B2 . They R e are the vertices of the B´zier polygon of b(u) over the interval [a. .1 are passed on to the B´zier representation of a curve. b(u(t)) has also an nth degree B´zier representation. Consequently. Hence. where the recursion is represented by the “key” on the right: 1= 0 B0 1 B0 1 B1 2 B0 2 B1 2 B2 ··· ··· ··· . The coefficients bi are elements of I d and are called B´zier points.2. The e parameter t is called the local and u the global parameter of b. The properties of Bernstein polynomials summarized in 2. leaves the degree of the curve b unchanged. every polynomial curve b(u) of degree ≤ n has a unique nth degree B´zier e representation n b(u) = i=0 n ci Bi (u) . Any affine parameter transformation u = a(1 − t) + bt . see Figure 2. as shown below. b(u) = . n Bn key ∗ u Z ~ Z ∗ .∗ 1−u 2.2 B´zier representation e A dimension count shows that the n + 1 (linearly independent) Bernstein n polynomials Bi form a basis for all polynomials of degree ≤ n. b].

• one has for every u ∈ [a. max bi ] . respectively. Thus. b[a. b] that b(u) is a convex combination of the bi .4 for a planar curve. the image curve Φ(b) has the B´zier points Φ(bi ) over [a. b]. B´zier representation e Figure 2. b] . b]. e • the B´zier representation is affinely invariant. • any point b(u) is an affine combination of the B´zier points.12 2. . Since the Bernstein polynomials sum to one. i=0 i=0 n n u ∈ [a. we can distinguish the two different parameter orientations of a polynomial curve. a]. e where u = a(1 − t) + bt = b(1 − s) + as. b] ⊂ [min bi . b]. a]. This is illustrated in Figure 2. given any affine map Φ. b] and [b..3.e. b] lies in the convex hull of its B´zier e points. Hence. Remark 2: Using the convex hull property separately for each coordinate function of the curve b(u). e As a consequence. These two sums define the B´zier representations of b over [a. b] and e [b. • For the end points of the curve segment b[a. b]. i. the curve segment b[a. as illustrated in Figure 2. by using the oriented intervals [a. a bounding box is obtained for the curve segment b[a. one has b(a) = b0 and b(b) = bn . e Since the Bernstein polynomials are non-negative on [0.2: A cubic curve segment with its B´zier polygon over [a. 1].

The intermediate points bk of the de Casteljau algorithm can be arranged in i a triangular array. one obtains n n−1 n b0 Bi (t) = i i=0 i=0 n−1 b1 Bi (t) = · · · = i i=0 0 0 bn Bi (t) = bn .4 on the left and t = 1. 2.4: Bounding box. The de Casteljau algorithm 13 Figure 2. Repeatedly using the recurrence relation of the Bernstein polynomials and collecting terms. e Figure 2. where each element is computed according to the “key” . can be evaluated easily by the so called de Casteljau algorithm [Casteljau ’59]. i 0 b(u) = where bk+1 = (1 − t)bk + t bk .4 on the right side.3 A curve The de Casteljau algorithm n b(u) = i=0 n b0 Bi (t).3: The convex hull of a B´zier polygon.2. i with u = a(1 − t) + bt. i i+1 i Two examples are shown in Figure 2.3. with t = 0.5.

1]. on the right: b0 0 b0 1 b0 2 . key ∗ 1−t Z Z ~ ∗ . This method fails.∗ t 2 n b1 n−1 bn−2 · · · b0 Remark 3: If t lies in [0. if t is close to 1. b0 n b1 0 b1 1 b2 0 .. In this. case one can use the relationship n b(t) = tn i=0 bn−i n i 1−t t i . B´zier representation e Figure 2.5: The de Casteljau construction. which accounts for the numerical stability of this algorithm. . It can also be used for a curve b(t) = bi Bi (t) in B´zier form. then the de Casteljau algorithm consists only of convex combinations. After writing b(t) as e n b(t) = (1 − t)n i=0 bi n i t 1−t i .14 2. one first evaluates the sum in parentheses by Horner’s scheme for the value t/(1 − t) and then multiplies the result by (1 − t)n . . Remark 4: Horner’s scheme is a very effective method to evaluate a polyn nomial in monomial form. . .

Figure 2. Applying the derivative formula above repeatedly. . o + b (u) is called the (first) hodograph of b.4 Derivatives The derivative of a Bernstein polynomial of degree n is simple to compute. n−1 n−1 where B−1 = Bn = 0 as before. b−a one obtains for its derivative b (u) d n b(u) = du b−a n−1 n−1 ∆bi Bi (t) . n . As above one obtains the second and further hodographs. (n − r)!(b − a)r i=0 where ∆r bi = ∆r−1 bi+1 − ∆r−1 bi denotes the rth forward difference of bi . Using the derivative formulas and the endpoint interpolation property of B´zier curves. i=0 where ∆bi = bi+1 − bi This is illustrated in Figure 2. n−r n! (r) n−r b (u) = ∆r bi Bi (t) . . Thus. From the definition of the Bernstein polynomials one gets d n n−1 n−1 B (t) = n(Bi−1 (t) − Bi (t)) dt i for i = 0. Derivatives 15 2. then b (u) is a vector. One obtains a point again if b (u) is added to a point. e If the column b(u) is viewed as a point. .4.6. In particular. given a curve n n bi Bi (t) .6: B´zier curve and its hodograph (1:3). we obtain a result that was fundamental for B´zier’s first e e . one obtains any rth derivative of b.2. . i=0 b(u) = t= u−a .

b]. b2 and bn−2 . This is illustrated in Figure 2. Figure 2. respectively. one gets that the derivative p (u) of the B´zier polygon consists of the B´zier e e points of b (u). where u = (1 − t)a + t b. as a piecewise linear function p(u) over [a. this means that. and so forth.7 gives an illustration. n Remark 5: Viewing the B´zier polygon of a curve b(u) = e bi Bi (t). bn . and that the osculating planes of b at t = 0 and 1 are spanned by b0 . 2. e Geometrically. respectively.8: The derivative of a B´zier polygon. B´zier representation e The derivatives of b at t = 0 (or t = 1) up to order r depend only on the first (or last) r + 1 B´zier points.7: Tangents and osculating planes. and vice versa. Figure 2.16 development. b1 . b1 and bn−1 . bn . the tangents of b at t = 0 and 1 are spanned by b0 . e . Figure 2. bn−1 .8 for a functional curve. in general.

˙ If b0 = o. one gets d b(t(0)) = n · ds b1 . the rth derivative of a curve b(u) = n b0 Bi (t) . However. i=0 where the dot indicates differentiation with respect to the parameter t.5 Singular parametrization n Consider a polynomial curve b(t) = i=0 n bi Bi (t) and its derivative ˙ b(t) = n n−1 n−1 bi Bi (t) . b−a . Thus. then b(t) is zero at t = 0. with the singular reparametri√ zation t = s.6 A tetrahedral algorithm Computing differences and the affine combinations of de Casteljau’s algorithm can be combined. then the tangent of b(t) at 2. then the curve b(t) has a tangent at t = 0 that is directed towards b2 . etc. as illustrated in Figure 2. Figure 2. Remark 6: If b0 = b1 = o and t = 0 is directed towards b2 . Singular parametrization 17 2.9.2. i t= u−a . b2 = o. if b0 = o and b1 = o. Namely.9: Singular parametrization.5.

. B´zier representation e at any u can be computed with de Casteljau’s algorithm applied to multiples of the differences ∆k bi . as illustrated 1 2 0 0 1 in Figure 2. i All these points can be arranged conveniently in a tetrahedral array. . This is not the only possible way to compute the tetrahedral array. n−k Computing the points ∆r b0 for all k by successive de Casteljau and differencing steps. bn−2 . a multiplication by the factor n · · · (n − r + 1)/(b − a)r . one obtains c = b + d(t − 1) respectively. one also gets the intermediate points ∆k bj . and c = a + dt . i. i + j + k ≤ n. where the key represents the recursion c = a(1 − t) + bt and d=b−a . this formula says that the tangent and osculating plane of b at u are spanned by bn−1 . Hence. the forward difference operator ∆ commutes with the steps of de Casteljau’s algorithm.10 for a cubic.18 2. respectively. αi βj pij = βj αi pij . one can compute the rth derivative also by first computing n − r steps of de Casteljau’s algorithm. finally. it follows b(r) (u) = n · · · (n − r + 1) (b − a)r ∆r bn−r . bn−1 and bn−2 . Eliminating a or b.11 for n = 2.e.10: Osculating plane and tangent and the de Casteljau scheme. 0 In particular. then r differencing steps and. bn−2 . as illustrated in Figure 2. Figure 2. Since the computation of affine combinations of affine combinations is commutative. Thus.

n+1 ci−1 + i = n + 1. . it suffices to compute only the points of the two triangular schemes given by the points on the left and bottom (or right) side of the tetrahedron.11: Tetrahedral algorithm. in general. 2. Integration 19 Figure 2. Remark 7: It should be noted that differencing is not a numerically stable process. . b−a bi−1 n+1 b−a c0 + (b0 + · · · + bi−1 ) . . instead of the differencing step.7. computing derivatives is not a numerically stable process either. Consequently. . When we use one of these rules. b−a has the B´zier representation e n+1 c(u) = where ci = = b(u)du = i=0 n+1 ci Bi (t) . . 1 . t= u−a .2.7 Integration n The integral of a polynomial curve in B´zier representation e b(u) = i=0 n bi Bi (t).

20 2. independently of i. Thus. This is verified by differentiating c(u). one obtains e b b(u)du = a b−a (b0 + · · · + bn ) n+1 and. As a consequence of the integration formula and the endpoint interpolation property of the B´zier representation. in particular. n+1 2. Since n i t (1 − t + t)n−i i n−i = k=0 n−i n i n−i ti+k (1 − t)n−i−k n−i−k = k=0 n i+k n Bi+k i j n Bj . i = j=0 one obtains the conversion formula n b(t) = j=0 n bj Bj (t) . . where bj = n i=0 j ai i and j i = 0 for j < i. B´zier representation e and c0 is an arbitrary integration constant.8 Conversion to B´zier representation e Some older CAD data formats represent curves by monomials. e Let n n i b(t) = ai t i i=0 be a curve in monomial form with binomial factors as in the B´zier represene tation. 1 0 n Bi (t)dt = 1 . data conversion between different CAD systems is an application where it is necessary to convert the monomial to the B´zier representation and vice versa.

In Section 2. then b(t) is a linear polynomial. and i/n as the B´zier e e abscissae. which can be written as b(t) = (1 − t)b0 + tbn . This property is referred to as the linear precision of the B´zier represene tation. the functional curve b(t) = t .13. e .12: Equidistant B´zier points on a line. The coefficients e bi are referred to as the B´zier ordinates of b(t). has the B´zier points [i/n bi ]t .9.12. then b(t) is a linear polynomial represented over [0.2. as illustrated in Figure 2. Figure 2. Remark 10: As a consequence of Remark 9. we present a different derivation of it. Figure 2. if the n + 1 B´zier points bi lie equidistantly on a e line.13: B´zier representation of a functional curve. b(t) b(t) = n bi Bi (t) . Conversion to B´zier representation e 21 The formula for the conversion to monomial form can be derived similarly by multiplying out the Bernstein polynomials. e Remark 9: Conversely.8. Remark 8: If a2 = · · · = an = o and a1 = o. see Problem 4. as illustrated in Figure 2. 1] by the B´zier points e bj = a0 + ja1 .

3 Show that ∆i b 0 = k=0 i i (−1)i−k bk . one can write this explicn i b(u) = (−1)i−k i=0 k=0 n i i b k ti . k Remark 11: Using the tetrahedral algorithm in 2.22 2.9 Conversion to monomial form n Given a polynomial curve in B´zier representation. B´zier representation e 2. see Problem 3. e b(u) = i=0 n bi Bi u−a b−a .13. namely at t = i/n. i (b − a)i Since ∆i b0 = itly as i i k=0 k (−1)i−k bk . one can compute the Taylor expansion at u. 0 (b − a)i i 2. Show that this is true. 2 The Bernstein operator B assigns to a function f on [0. then B[f ] is also a polynomial of degree m. If f is a polynomial of degree m ≤ n. 1] the polynomial n B[f ] = i=0 n f (i/n)Bi (t) .10 Problems n 1 Show that the Bernstein polynomial Bi (t) has only one maximum in [0. n b(u + h) = i=0 1 n i ∆i bn−i h .6. see also Problem 2 in 3. k . one can obtain its monomial form simply by a Taylor expansion. 1]. n b(u) = i=0 n b(i) (a) (u − a)i i! = i=0 n (u − a)i ∆i b0 .

6 Show that a planar cubic b(t) has a cusp at t = 0.10. bn ] ∆ . Problems 23 4 Derive the conversion formula in 2.) 3 7 Show that a planar cubic b(t) = i=0 bi Bi (t) has a cusp if b3 lies on 2 2 2 the parabola p(t) = (b0 + b1 − b2 )B0 (t) + b1 B1 (t) + b2 B2 (t) [Pottmann & DeRose ’91]. 5 Show that n n . if b(0) = o and both coordinates of b(0) are non-zero.9 to monomial form by elementary algebraic manipulations similar to what is done in 2. one obtains [a0 . (i − k) Bi (t) . i j . (The dots indicate differentiation with respect to t.. where ∆ = (−1)j−i j and ∆−1 = i upper-triangular matrices.2. a point where ˙ ¨ it changes its direction. (n − k) tk+1 = i=0 n i . The matrices ∆ and ∆−1 are . 3 8 For which choices of b3 does the cubic b(t) have a loop? 9 Let n i=0 ai n i ti = n i=0 n bi Bi (t). i. . . . . an ] = [b0 .8. .e. in matrix notation. . . Then. .

.

.1 Splines A curve s(u) is called a spline of degree n with the knots a0 .6 Derivatives — 5.4 The de Boor algorithm — 5.7 B-spline properties — 5. .8 Conversion to B-spline form — 5. ai+1 ].1 and 5.12 Problems Splines are piecewise polynomial curves that are differentiable up to a prescribed order. . these physical splines assume a shape that minimizes the strain energy. as constructed in 4. am . where ai ≤ ai+1 and ai < ai+n+1 for all possible i. This property is approximately shared by the mathematical cubic C 2 splines.3 A recursive definition of B-splines — 5.11 B-splines as divided differences — 5.2 B-splines — 5. . The simplest example is a piecewise linear C 0 spline.2 show examples of splines with simple knots obtained by 1A knot ai+1 is called r-fold if ai < ai+1 = · · · = ai+r < ai+r+1 . 59 .5 B-spline representation 5. a polygonal curve.9 The complete de Boor algorithm — 5. so-called splines.e. 5.5 The main theorem — 5. .10 Conversions between B´zier and B-spline representations — e 5.1 Splines — 5. . . Held in place by a number of heavy weights. It is also common to refer to a spline of degree n as a spline of order n + 1. for i = 0. The name spline is derived from elastic beams. used by draftsmen to lay out broad sweeping curves in ship design. .. if s(u) is n − r times differentiable at any r-fold knot1 . and s(u) is a polynomial of degree ≤ n over each knot interval [ai . i. m − 1. Other examples are the piecewise cubic C 1 splines.5. Figures 5.

where the Nin (u) are basis spline functions with minimal support and certain continuity properties. 5. St¨rk’s theorem is only a needed for the B´zier ordinates. Schoenberg introduced the name B-splines for these functions [Schoenberg ’67]. a Figure 5.8 and 3.1: Spline functions of degree 1. Figure 5. namely s(u) = ci Nin (u) . it is desirable to write e a spline s(u) as an affine combination of some control points ci .9. B-spline representation St¨rk’s construction.2 B-splines As with the B´zier representation of polynomial curves. The inner and end B´zier points a e are marked by hollow and solid dots. Their B´zier polygons can be constructed by e St¨rk’s theorem.3 shows a piecewise cubic C 2 B-spline. 2 and 3. while the abscissae are given by Remark 8 e in 2. see Figures 3.3.60 5. . respectively.

For higher degree this construction. for all i. which was found independently by de Boor and Mansfield [de Boor ’72] in 1970 and Cox [Cox ’72] in 1971. which means ai < ai+1 . .3.3 A recursive definition of B-splines To define B-splines. Therefore. We define B-splines from that relation and derive all important properties from that relation. 5. see [Prautzsch ’89]. we use a recurrence relation. biinfinite and strictly increasing sequence of knots. and 3. albeit possible.2: Parametric splines of degree 1. A recursive definition of B-splines 61 Figure 5.5. ai+1 ) otherwise n−1 n−1 n−1 Nin (u) = αi Nin−1 (u) + (1 − αi+1 )Ni+1 (u) . We define the B-splines Nin with these knots by the recursion formula Ni0 (u) = and 1 0 if u ∈ [ai . 2. becomes much less obvious and more complicated. for simplicity. let (ai ) be a.

.4: B-splines of degree 0. • Nin (u) is positive in (ai .62 5.4 shows B-splines of degree 0. From the definition above. ai+n+1 ).3: B´zier points of the B-spline N0 (u). 1 and 2. • Nin (u) is zero outside of [ai . ai = ai+r . B-spline representation 3 Figure 5. • Nin (u) is piecewise polynomial of degree n. e where n−1 αi = (u − ai )/(ai+n − ai ) is the local parameter with respect to the support of Nin−1 . Figure 5.5 shows B-splines with multiple knots. ai+n+1 ]. In case of multiple knots. 1 and 2. the B-splines Nin (u) are defined by the same recursion formula and the convention Nir−1 = Nir−1 /(ai+r − ai ) = 0 if Figure 5. the following properties of B-splines are evident. Figure 5.

. we will see that the B-splines are n − r times differentiable at r-fold knots. 1) coincides with the recursion formula of the Bernstein polynomials. 1) . The de Boor algorithm 63 Figure 5. . . in particular.5 and 5. . .4 The de Boor algorithm c0 Nin (u) i i Consider a linear combination s(u) = of the nth degree B-splines over some knot sequence (ai ). 5. • Nin (u) is right side continuous. an+1 ). we assume. . In particular. hence. .6. a1 = . then s(u) can be written as n s(u) = i=0 c0 Nin (u) . In Sections 5. i . the sum above are biinfinite. Hence. Since any finite sum can be converted to a formally biinfinite sum by adjunction of zero terms. . n and u ∈ [0. . . . n n then the above recursion formula for N0 . this sum is actually finite for any given u.4. and that every spline is a unique combination of B-splines. Nn and u ∈ [0. that the knot sequence and. Remark 1: If. let u ∈ [an . we have n Nin (u) = Bi (u) for i = 0. = a2n = 1. . Since the Nin (u) have local supports. without loss of generality. = an = 0 and an+1 = .5: Some B-splines with multiple knots.5.

as described R. n = i=n cn Ni0 (u) = cn . where i the recursion formula is represented by the key on the right.2 . c0 n c1 1 c1 2 c1 n c2 2 c2 n . Remark 2: For arbitrary u ∈ I de Boor’s algorithm applied.e. For this reason. · · · cn n . . 1] since u ∈ [an . i n where the cr are given by the affine combinations i cr = (1 − α)cr−1 + α cr−1 . .e. The points cr are conveniently arranged in a triangular array. to c0 . Further.. above. c0 does not compute s(u) in general. . i i−1 i n−r α = αi = u − ai . the affine combinations are actually convex. . we refer to the ci as the control points of s(u). . if the ci represent points of some affine space. c0 0 c0 1 c0 . an+1 ) .64 5. i. This algorithm was developed by de Boor in 1972 [de Boor ’72]. ai+n+1−r − ai Note that α ∈ [0.. i. but the polynomial n 0 sn (u) that agrees with s(u) over [an . the B-splines form a partition of unity. an+1 ).∗ α (α depending on key position) An important consequence of de Boor’s algorithm is that the spline s(u) over each knot interval is an affine and actually convex combination of n + 1 consecutive coefficients ci . B-spline representation Using the B-spline recursion repeatedly and collecting terms. Figure 5. an+1 ). the spline lies in the affine hull of its control points. which was first given in [Gordon & Riesenfeld ’74]. then s(u) is also a point.6 illustrates the geometric interpretation of de Boor’s algorithm. one obtains n s(u) = i=1 c1 Nin−1 (u) i . which implies that n 1 · Nin (u) = 1 i=0 for u ∈ [an . . as illustrated below. Hence.. . key ∗ 1−α Z ~ Z ∗ . .

. . .6: The convex combinations of de Boor’s algorithm for n = 3.5. u] . . .5. For a proof. The main theorem in its general form 65 Figure 5. . the control points of s are given by ci = sj [ai+1 .2. . . let and u = (1 − α)ai + αai+n−r+1 . un ] be the polar form that agrees on its diagonal with s(u) over [ai . ai+n−r u . Then we have the following general form of the main theorem 3. and let si [u1 . ai+n ] . i = j − n. ai+1 ). j . pr = sj [ai+1 . let s(u) = ci Nin (u) i be an nth degree spline with knots ai . As before. . 5.5 The main theorem in its general form Symmetric polynomials will help to see de Boor’s algorithm in a wider context. As illustrated in Figure 5. i .7. r . .

.e. . A dimension count shows that this linear combination is unique whence the assertion follows. p0 = sj [ai+1 . over [an . . i. . it follows that pr = (1 − α)pr−1 + α pr−1 .66 5.. ci . ai+n ] and pn = sj (u) . . . . . every polynomial of degree n can be written over [aj . . every point cj is determined by any “segment” sj . . . . This result is due to [Curry & Schoenberg ’66]. since sj is multiaffine and symmetric. Hence. . un ] can be computed by a generalization of de Boor’s algorithm. sj+n . . . . is to replace α = α(u) in the recursion formula by α(ur ) = ur − ai . . this construction agrees with de Boor’s algorithm and can be used to compute any polynomial sj [u . Conversely. Remark 4: The spline “segment” si determines the control points ci−n . we showed that. ci = si [ai+1 . u] of degree n. . i i−1 i and. . the B-splines n n N0 (u). aj+1 ) as a linear combination n n of the B-splines Nj−n (u). Then. ai+n ] = · · · = si+n [ai+1 . ai+n−r+1 − ai . All one has to do. i j For u ∈ [aj . . . ai+n ] . n−r α = αi = u − ai . Nj (u). 3 Remark 3: In the proof. . . Nn (u) form a basis for the space of all polynomial up to degree n.7: The main theorem for a cubic spline. in particular. . aj+1 ). B-spline representation Figure 5. . . an+1 ]. ai+n−r+1 − ai Remark 5: The proof above shows that the symmetric polynomial sn [u1 .

. This is also useful in showing that the B-splines have the desired smoothness properties: An nth degree spline s is continuous at any n-fold knot. . Then.6 Derivatives and smoothness Because of the basis property of B-splines. Let sn [u2 . . . un are knots.9 that di = sn [ai+1 . a B-spline satisfies the smoothness criteria of a spline given in 5. One can differentiate further so as to obtain the B-spline representation of higher derivatives. 5. it follows from the main theorem and 3. . . . if ai is an r-fold knot.5. u ∈ [an . and let the direction ∆ = ai+n − ai be given by the support of the B-spline Nin−1 (u).5 that s0 (a1 ) = = = s0 [a1 . an ] sn (an ) . the derivative of the polynomial spline segment sn can be written as n sn (u) = i=1 di Nin−1 (u) . an ] = c0 sn [a1 . . . ci = ci − ci−1 denotes the first backward difference. un ]. the derivative of the spline s can be written for all u ∈ I as R (1) where s (u) = i n ai+n − ai ci Nin−1 (u) .6. . ai+n−1 ] ∆ n = (ci − ci−1 ) . . ai+n−1 ] n = sn [∆ ai+1 . an+1 ) . see Remark 3. The computation can be arranged in a triangular array consisting of 1 + 2 + · · · + (n − m + 1) points. then only n − m recursion steps are needed to compute sj [u1 . where the unknown vectors di can easily be expressed in terms of the ci . then it follows from Remark 4 in 5. In other words. . un ] be the symmetric polynomial of sn (u). Thus. . . . Derivatives and smoothness 67 If m of the n variables u1 .1. . an+1 ). . ai+n − ai Since the di do not depend on the knot interval [an . Namely if a0 < a1 = · · · = an < an+1 . then the (n − r)th derivative of s is continuous at ai .

. . am+n+1 restricted to the interval [an . . • The derivative of a single B-spline is given by n n d n N (u) = N n−1 (u) − N n−1 (u) . m Nin (u) = 1. n n • A dimension count shows that the B-splines N0 . am+n+1 ] and the same knots. . . .. n−1 where αi = (u − ai )/(ai+n − ai ) represents the local parameter over the support of Nin−1 .7 B-spline properties We summarize the basic properties of B-splines. . . . Mansfield. . . suppNin = [ai . Cox recursion formula n−1 n−1 n−1 Nin (u) = αi Nin−1 (u) + (1 − αi+1 )Ni+1 (u) . . = am+n (= am+n+1 ) has the same end points and end tangents as its control polygon.68 5. • The B-splines have compact support. i. the B-splines N0 . • The B-splines satisfy the de Boor. . am+n+1 form a basis for all splines of degree n with support [a0 . . am+1 ) form a basis for all splines of degree n restricted to the same interval. am+1 ) . ai+n+1 ) . i=0 for u ∈ [an . • A spline s[an . = an and am+1 = . Nin (u) > 0 for u ∈ (ai . • The B-splines of degree n with a given knot sequence that do not vanish over some knot interval are linearly independent over this interval. . ai+n+1 ] . • The B-splines of degree n form a partition of unity. Nm with the knots a0 . Nm over the knots a0 . (a0 =)a1 = . am+1 ] of degree n with n-fold end knots. du i ui+n − ui i ui+n+1 − ui+1 i+1 .e. . . n n • The end knots a0 and am+n+1 have no influence on N0 and Nm over the interval [an . n n • Similarly. . . . • The B-splines are positive over the interior of their support. am+1 ]. B-spline representation 5.

The γi are the so-called Greville abscissae [Greville ’67]. Fig- . recall from 3. <k ui . . the graph s(u) = [u s(u)]t has the control points ci = [γi ci ]t . To do so. aj+1 ) of an nth degree spline lies in the convex hull of its n + 1 control points cj−n . . . . In particular.8 Conversion to B-spline form Since any polynomial of degree n can be viewed as a spline of degree n or higher with an arbitrary sequence of knots. cj . . it follows from the main theorem 5. Remark 6: The Greville abscissae show up naturally in the control points of the graph of a spline function s(u) = i ci Nin . Namely. i where γi = α1i /n = (ai+1 + · · · + ai+n )/n. • A degree elevation formula is given in 6.. where αji = An [ai+1 . Conversion to B-spline form 69 • The B-spline representation of a spline curve is invariant under affine maps. un ] = j i< . .8.5. uk . . . • Any segment sj [aj . which generalizes Marsden’s identity given in Problem 4 below. and. . j a(u) = = i a0 An (u) + · · · + an An (u) 0 n (a0 α0i + · · · an αni )Nin (u) . one obtains u = = 1 n A (u) n 1 γi Nin (u) ..5. 5. one can express the monomials as linear combinations of B-splines over any knot sequence (ai ). j . ai+n ]. consequently.5 that An (u) = j i αji Nin (u) . Thus.1 that the monomials An (u) = n uj have the polar forms j j An [u1 .

Let sn [u1 . .8 shows the example s(u) = N2 (u). . 3 Figure 5. .k = sn [ε . 5. first considered by Sablonniere in 1978 [Sablonniere ’78].i.n. B-spline representation 3 ure 5. . ai+n−r−k u . (n − r)! sn (u + h) = r=0 cr. an+1 ) .70 5.6 for B´zier R e curves. is com- . r . . for i = r + k.n. n.n−r . u ∈ [an .9 The complete de Boor algorithm n The Taylor expansion of a polynomial spline segment sn (u) = i=0 ci Nin (u) .9. .1. where n = 2 and ε4 stands for sn [ε a4 ]. It follows that dr sn (u) = dur and the Taylor expansion is given by n n! cr. r The points and vectors crik can again be arranged conveniently in a tetrahedral array. etc. . . ε ai . . u]. see Figure 5. . where ε denotes the direction 1 − 0. Other examples are shown in Figure 5. un ] be the polar form of sn and consider the points and vectors cr.n−r n r h .8: Control points of the cubic B-spline N2 (u). k . can be computed at any u ∈ I following the ideas presented in 2. This array.

i.k+1 + (ai − u)cr+1.i−1. α= u − ai .i.k .k+1 + (ai+n−r−k − u)cr+1.i−1. on the “rear” face.k ) ai+n−r−k − ai on the “bottom” face.i. For example.9: The complete de Boor algorithm.k = on the “left” face. Any two of the four points of a subtetrahedron can be computed from the two other points. and (3) on the “top” face.k .k .0 3 on the “left” edge and the multiples (n − r)! (r) sn (u) n! of the derivatives on the opposite edge.i. (2) cr.k = cr. cr.i. ai+n−r−k − ai 1 (cr. one has cr+1.5.9. The complete de Boor algorithm 71 Figure 5.i. posed of n+2 subtetrahedra and contains the given control points ci = c0.k − cr.i.i.i−1. cr.k + α cr.k+1 = (1 − α)cr. Remark 7: One can use the above formulae to convert a B-spline representation to monomial representation and vice versa.i. The computation rules follow directly from the properties of multiaffine symmetric polynomials.i.k = cr.

k + γ qr. ab.i. where a3.i. First. . . see [Lee ’82. Boehm ’84b].i−1.k = (1 − α)qr. q101 . .i.k (or cr.9.10 Conversions between B´zier and B-spline representations e There is also a tetrahedral algorithm to convert a B-spline representation into a B´zier representation and vice versa [Boehm ’77.k ).i. a ai+1 .10 for n = 2.k + α qr. one needs to solve formula (2) above (or (3)) for cr+1. it suffices to compute. and the bottom face according to the rule qr.i. The left face is computed according to the rule qr+1. the control points of the spline are given by ci = q0i0 . b] are given by e bj = qn−j.n.9 and let qrik = sn [a . for example. Let the notations be as in 5. a2n (or u = a0 . r . It e can be derived similarly as the algorithm in 5. .j . ai+n−r−k − ai Conversely.k+1 = (1 − γ)qr+1. one solves the two formulae above for qr. for i = r + k. α= a − ai . Remark 9: If one first computes the rear face and then the bottom (or top) face of the tetrahedral array. Sablonniere ’78]. . This is impossible if u = ai+n−r−k (or u = ai ). as illustrated below in Figure 5. Hence.i−1. Again. . b] . one can compute the B-spline control points from the B´zier e points. the derivatives of the polynomial sn cannot be computed in this fashion for u = an+1 . . . n. .k .i. . only the left and top faces of the tetrahedral array. . and the B´zier points of the polynomial sn over [a. etc. . 5.k .i−1. γ= b−a ai+n−r−k − a . Thus. . ai+n−r−k b . . . . one applies the formulae to compute the bottom and then the left face.72 5. etc. B-spline representation Remark 8: In order to obtain the derivatives from the control points or vice versa. an−1 ). the points qrik are conveniently arranged in a tetrahedral array. k . stand for q120 .k and qrik . Second.

e 5. With the divided differences given in 4.11. B-splines as divided differences 73 Figure 5. shown in Figure 5.10: Conversion between B´zier and B-spline representations. divided differences were used by de Boor.11: A truncated power function.11. Cox. we show that B-splines are divided differences of the truncated power function f (a) = (a − u)n := + (a − u)n 0 if a > u otherwise .3. Note that f is a function of a while u is some fixed parameter. one obtains that .11 B-splines as divided differences The standard definition of B-splines uses divided differences.5. Figure 5. In particular. and the calculus of divided differences has been heavily used in developing the univariate spline theory [de Boor ’78]. and Mansfield to derive the recurrence relation. Using the derivative formula (1) in 5.6.

show . . . pp. an ](a − u)n−1 − [a1 . . . an+1 ](a − u)n−1 ) + + n n n−1 n−1 N − N an − a0 0 an+1 − a1 1 d n N (u) . . an+1 ](a − u)n−1 + = = = n([a0 . This shows that the identity above holds for u < a0 and u ≥ an+1 . it suffices to show that the derivative of the claimed identity holds. . i.12 Problems 1 Consider a cubic C 2 spline s(u) with the single knots a0 . . Hence. B-spline representation n the B-spline N0 with the knots a0 . a0 a0 For a solution. an+1 ](a − u)n + du = −n(an+1 − a0 )[a0 . am |f (u)|2 du > am |s (u)|2 du . Thus.. except at an (n + 1)-fold knot. . the induction hypothesis and the derivative formula for B-splines. .3 that [a0 .e. .74 5. . . Note that the divided difference is a linear combination of possibly differentiated power functions. . am+n+1 . . . am . we recall from 4. du 0 which proves the assertion. . Hence. . an+1 ]f (a) is the leading coefficient of the (n + 1)th degree polynomial interpolating f (a) at a0 . . + One can prove this fact by induction over n. for example. . . an+1 ](a − u)n . . 2 Given a spline s(u) = m n i=0 ci Ni (u) with the knots a0 . 125 f]. . For the induction step from n − 1 to n. . . Using the recursive definition of divided differences. . Show that every C 2 function f (u) = s(u) which interpolates s at all knots and also the derivative of s(u) at u = a0 and am has greater strain energy than s. one can substitute f (a) by the monomial (a − u)n of degree n in a if u < a0 and by the zero function if u ≥ an+1 . This causes no problem since there is at most one (n + 1)-fold knot. an+1 can be written as n N0 (u) = (an+1 − a0 )[a0 . 3 5. we obtain d (an+1 − a0 )[a0 . we refer to literature in numerical analysis. an+1 . . For n = 0. the identity is easily checked. the divided difference is differentiable in u. . . [Boehm & Prautzsch ’93.

. 1. by affine combinations as in de Boor’s algorithm. 2. 1. . . . . d) Compute the B´zier representation of s(u) over [3. 4 with their B´zier polygons. 1. . Problems that 75 am+n+1 m s(u)du = a0 i=0 ai+n+1 − ai ci . . 1. 0. . s and s at u = 3. . . ai+k ]h) . −2. 7 be given by c0 . i. c3 = a) Sketch s[3. 2.5. b) Compute s.12. n. 4]. n+1 3 Sketch the cubic B-splines with the knots 0. 3 3 i=0 ci Ni with the knots 0. e 8 Show that if a multiaffine symmetric polynomial can be computed from n + 1 points p[ai. . ar ]g)([ar . then there are real numbers a1 . Mansfield and Cox. c) Compute the monomial representation of s(u) over [3.j = ai+j . ai. 1. to derive[de Boor ’72] the recursion formula of de Boor. . . 3 and 0. i+k [ai . 3. 4] with its control polygon. 0. ai+k ]f = r=i ([ai .n ]. . .. a2n such that ai. . 0. 0. . . .1 . . 7 Let s(u) = 4. . Compute the e values of their B´zier ordinates. . 6 Use Leibniz’s identity for the product f = gh of two functions. . 7. . 5 Use the derivative formula of B-splines to derive the recursion formula of de Boor. 0. . s . e 4 Use symmetric polynomials to prove Marsden’s identity (u − a)n = i (ai+1 − a) . Mansfield and Cox by induction. . 2. 1. 0. see also [de Boor ’72]. 4]. (ai+n − a)Nin (u) . i = 0. 2. 0.e. . 0.

.

y) for all y ∈ [0.or four-sided.7 is too restrictive for modelling smooth regular surfaces of arbitrary shape.6 Notes and Problems The simple C 1 joint discussed in 11. i. y) = q(0.3 The parity phenomenon — 13.e.. 13. 1]. 181 . p(0. Here.1 The general C 1 joint — 13. The patches p and q neither need to be polynomial.13 Constructing smooth surfaces 13.4 Joining two triangular cubic patches — 13.5 Piper’s G1 interpolant — 13.1: Two patches with a common boundary curve. nor three.2 The vertex enclosure problem — 13. Figure 13.1 gives an illustration. Figure 13. y) be two regular C 1 surface patches with a common boundary at x = 0. we present general C 1 -conditions and a interpolation scheme that allows to design regular surfaces of arbitrary topology with triangular patches.1 The general C1 joint Let p(x. y) and q(x.

For a proof. Hence. at least one coordinate. then a(x. if p and q have a G1 joint and are polynomials. y) + degree qy (0.. say the first of [qx × qy ]. denoted by [qx × qy ]1 .7 and 11. Since equation (1) can be multiplied by a factor. we have degree λ ≤ degree µ ≤ degree ν ≤ degree qx (0. in general. Namely. y) and b(x. y) + degree qy (0. This implies µ = [px × qy ]1 which proves the assertion. y) = q(µx. degree px (0. if px × py qx × qy = for x = 0 . one sets λ = 1. and ν = −[px × qx ]1 . y) . px × py qx × qy Equivalently. νx + y) have a simple C 1 joint. Then µ and ν are rational. then the connection functions are also polynomials. In particular. y) + degree qx (0. Then. if p and q satisfy the G1 -condition (1). y) . except for isolated zeros. and. Constructing smooth surfaces One says that p and q have a general C1 or geometric C1 . . G1 joint in x = 0 if they have equal normals along this parameter line.182 13. we compute the vector product of equation (1) with qx and qy . the functions λ. and Recall that q is regular. 3 Remark 1: Often. see 9.or. we may assume that λ = [qx × qy ]1 . y) .7. up to a common factor. i. is non-zero. y) = p(λx. in short.e. µ(y) and ν(y) such that for x = 0 and all y (1) λpx = µqx + νqy and λµ < 0 . one can characterize G1 -continuity by requiring that there are connection functions λ(y). = µqx × qy . Remark 2: The proof given above also holds for rational polynomials p and q. µ and ν are rational up to a common factor with the same degree estimates as above. degree px (0. This gives λpx × qx λpx × qy = νqy × qx . Remark 3: Any G1 joint is a simple C 1 joint after a suitable parameter transformation.

2 Joining two triangular cubic patches p(u) = pi Bi3 (u) and q(u) = qi Bi3 (u) . 0) and e2 = (0. The maximum degree of the connection function is invariant under affine reparametrization.13. 1. 0. µ0 = µ(0) and ν0 = ν(0). µ(v) and ν(v). q0 and q1 . this cubic equation is λp0 + µq0 = νq1 . Hence.2: Moving interior B´zier points so as to achieve a G1 joint. Figure 13. λµ > 0 . respectively. we show how to obtain such a smooth joint with linear connection functions λ(v) . In particular. Denoting the partial derivatives with respect to the directions e0 − e2 and e2 − e1 by subindices 0 and 1. 1). k) and |i| = i + j + k = 3 and pi = qi for i = 0 such that p and q join continuously at n = 0 and have common tangent planes at e1 = (0. The shaded quadrilaterals are planar but not necessarily affine. Then.2. j. e In general. this equation establishes a linear system for λ0 = λ(0).2. However. we know the derivatives p0 . 13. we can move both interior points p111 and q111 so that p and q join G1 -continuously along u = 0. This configuration is illustrated in Figure 13. the G1 -condition for p and q along u = 0 becomes a cubic equation in w = 1 − v. Joining two triangular cubic patches 183 Remark 4: Whether two patches have a G1 joint does not depend on their parametrization. At v = 0. with a . the connection functions do depend on the parametrization. Consider two triangular cubic patches where 0 ≤ i = (i.

where w0 and w1 are combinations of known B´zier points pi and qi . e1 the and similar expressions for p01 .3: Critical configuration. Thus. q0 . therefore. q01 . q1 . we obtain λp01 + µq01 = νq11 + ν q1 − λ p0 + µ q0 . Hence. The points q11 . here v = 0 and v = 1. etc. a solution might not exist. there is a one parameter family of solutions λ1 . which determine the linear functions λ. at e2 .3. Figure 13. in terms of the B´zier points. a solution exists.184 13. q01 etc. Similarly. We choose arbitrary solutions at v = 0 and v = 1. Substituting these expressions into the differentiated G1 -condition leads to a linear system for p111 and q111 given by [p111 q111 ] λ0 µ0 λ1 µ1 = [w0 w1 ] . Constructing smooth surfaces one parameter family of solutions. we are also interested in the derivative and. except e p111 and q111 . Since a cubic is determined by its values and derivatives at two points. Expressing p01 . This system has a solution if the matrix λ0 µ0 λ1 µ1 is invertible. unless λ(y) : µ(y) = constant. and p0 do not depend on p111 and q111 for v = 0 and v = 1. differentiate the G1 -condition along u = 0. Only for the configuration illustrated in Figure 13. µ and ν. we obtain at e equations p01 q01 = 6(p003 + p111 − p012 − p102 ) . . µ1 and ν1 at v = 1. = 6(q021 + q111 − q012 − q120 ) etc.

13. If q(0. it follows that ν/λ must be constant. see Problem 3.3. i. rewriting the G1 -condition as px − µ ν q = qy λ x λ results in a quadratic on the left. there is no solution if λ(y) : µ(y) is constant.13..3. as described below. but rule out critical situations so that cubic patches suffice. if both quadrilaterals are not affine and if the common boundary p(0. y) is a quadratic not passing through the origin. y) = q(0.5 shows the B´zier points of such a macro patch schematically. Piper’s G1 interpolant 185 In fact. Then. if qy (0. Bruce Piper [Piper ’87] presented a scheme to construct a piecewise quartic G1 surface interpolating a triangular network of cubic curves. finally. y) is a regular cubic. y) is quadratic or non-regular. Figure 13. any “triangle” can be interpolated by a macro patch consisting of three cubic patches.4. a solution exists with linear functions λ. Figure 13. we assume that there are no critical configurations as in Figure 13. µ and ν. We review the basic construction. Adjacent “triangles” of a cubic net exhibit the configurations discussed in 13.e. Since qy is also quadratic without real root.3 are not affine. For simplicity. contradicts the assumption that the two quadrilaterals shown in Figure 13. e . This.2.4: A triangular G1 -net of cubic curves.3 Piper’s G1 interpolant In 1985. Namely. as illustrated in Figure 13.

The G1 conditions for adjacent patches sharing a common vertex form a cyclic system. . 13. Whether this problem is solvable or not.2 such that adjacent macro patches e have a G1 joint. . µi (z) and νi (z). where pn+1 = p1 . see 12. The B´zier points are the centroids of the three neighbors c c cwith which e they form a planar quadrilateral (shaded in the Figure). as illustrated in Figure 13. x y x with any 3n connection functions λi (z). . is referred to as the vertex enclosure problem. z) = pi+1 (z. such that pi (0. and (2) λi pi (0.4 The vertex enclosure problem Piper implicitly solves with his construction a special G1 -problem. Hence. . To discuss this problem. Constructing smooth surfaces The B´zier points c on the boundary are given by the cubic net. .6.2. The B´zier e e points c are the centroids of their three neighbors c with which they form a planar quadrilateral which is shaded in the Figure. we consider n trilateral or quadrilateral patches pi (x. y). 0) . 0) . z) = µi pi+1 (z. The B´zier point e is the centroid of the shaded triangle 1 .186 13. Figure 13. adjacent patches of the macro patch have simple C joints in analogy to the Clough-Tocher element. 0) + νi pi+1 (z. The B´zier points care computed as in 13. n.5: Piper’s macro patch. i = 1.

pn ]   = [r1 . Thus. .5 The parity phenomenon The cyclic matrix A of the twist constraints exhibits the following phenomenon. In order to verify this surprising fact. For z = 0. . the twist constraints are solvable if the number n of patches is odd. rn ] . . 13. these equations form the cyclic linear system   λ1 −µ1  −µ2 λ2    [p1 . . λn − µ1 . A is non-singular only for odd n. where n = 6. . −µn λn where ri = −λi pi + µi pi + νi pi+1 + νi pi+1 . . xy xy   . More difficult are the twist constraints. there is no solution if the number is even.13.5. x xy y xy x xx For z = 0. The rank of A is n if n is odd. these equations form constraints on the derivatives pi and the x connection functions. . µn = Πλi − Πµi . in general. we observe that det A = λ1 . . . Consequently. which can easily be satisfied.6: A vertex enclosed by n patches. x y x xx We abbreviate this system by T A = R. and it is n − 1 if n is even. while.. . The parity phenomenon 187 Figure 13. λi pi + λi pi = µi pi+1 + µi pi+1 + νi pi+1 + νi pi+1 . which we obtain by differentiating the G1 -conditions (2).

4. 13. which concludes the proof. the vector product of 13. . Remark 5: The twist constraints AT = R are solvable if the data originates from patches p1 .188 Computing. pn forming a G1 surface. Figure 13. for i = 1. Constructing smooth surfaces λi pi = µi pi+1 + νi pi+1 . since all λi = 0. as illustrated in Figure 13.7: Equal opposite tangents. A has at least rank n − 1. . 3.7. In particular. this is the case when the pi form a piecewise polynomial reparametrization of a polynomial patch. det A =0 =0 if n is even if n is odd . . then the twist constraints are solvable. Remark 7: One obtains always solvable twist constraints by splitting each patch pi as in Piper’s construction described in 13. Πλi : Πµi = (−1)n Since the submatrix of A obtained by deleting the first row and column has full rank. x x x x which implies that and.3. see [Peters ’91]. 2.2 can always be solved if p and q are quartic patches.7. Remark 6: If n = 4 and λi (0) = µi (0) = νi (0) = νi (0) = 0.6 Problems 1 Show that the problem from Section 13. see 9. . x y x with pi+1 = pi gives x y λi : µi = [pi+2 × pi+1 ] : [pi+1 × pi ] . .

3. Hint: If q(0. y) 44 qij Bij (x. 0) + νqx (x. v. 4 Show that the twist constraints in 13.6. 1 − v) = o for v = v0 . y) = 44 pij Bij (x. where  p201 p300 q300 q201 p210 q210 q111 p111 p120 q120 q012 p012 p030 q030  189  1  1  0     p111   6  1  1   6  0  1  0 =  0  0   2  0  0   4  0  1    1  −1  0 q111  5 −1/2 .4 have a solution if and only if s = t1 1 − can be solved for t1 . where the constants c1 and c2 are chosen so that the G1 -condition is satisfied at v = 1. see Figure 13. λ1 · · · λn λ1 λ2 λ1 µ1 · · · µn λ1 · · · λn 5 The equation s = o can be viewed as a linear system for ν1 (0). It has a (unique) solution unless p2 = o. 1 3 Show that the problem stated in 13.2. ν2 (0) and ν1 (0). 0) and q(x. where s= µ1 · · · µn−1 µ1 1 rn + · · · + r2 + r1 . Problems 2 Solve the problem from Section 13. v. 1 − v) is quadratic. 1 and 3. 1 − v) is quadratic or non-regular. Let λ. µ and ν be any connection functions of degree 1. see Figure 13. 0) and its derivative with respect to x hold at x = 0 and x = 1.2. y) = q(x. has a solution with linear functions λ = µ and ν if q(0. v. choose λ = µ = 1. If q1 (0.13.8. set λ = µ = (v − v0 )c1 and ν = vc2 . such that the G1 -condition λpy (x. 0) = µqy (x. xx 6 Consider two biquartic patches p(x. 0) agree and are cubic. respectively. Show that . y) and such that the boundary curves p(x.

190 13. e one can change p21 and q21 . so that the G1 -condition holds for all x. . in general.8: Moving two B´zier points so as to obtain a G1 joint. Constructing smooth surfaces Figure 13.

Sign up to vote on this title
UsefulNot useful