This action might not be possible to undo. Are you sure you want to continue?

**Curves and Surfaces In Geometric Modeling: Theory And Algorithms
**

Jean Gallier Department of Computer and Information Science University of Pennsylvania Philadelphia, PA 19104, USA e-mail: jean@cis.upenn.edu c Jean Gallier Please, do not reproduce without permission of the author March 9, 2011

ii

iii

To my new daughter Mia, my wife Anne, my son Philippe, and my daughter Sylvie.

iv

Contents

1 Introduction 1.1 Geometric Methods in Engineering . . . . . . . . . . . . . . . . . . . . . . . 1.2 Examples of Problems Using Geometric Modeling . . . . . . . . . . . . . . . 7 7 8

**Part I Basics of Aﬃne Geometry
**

2 Basics of Aﬃne Geometry 2.1 Aﬃne Spaces . . . . . . . . . . . . . . 2.2 Examples of Aﬃne Spaces . . . . . . . 2.3 Chasles’ Identity . . . . . . . . . . . . 2.4 Aﬃne Combinations, Barycenters . . . 2.5 Aﬃne Subspaces . . . . . . . . . . . . 2.6 Aﬃne Independence and Aﬃne Frames 2.7 Aﬃne Maps . . . . . . . . . . . . . . . 2.8 Aﬃne Groups . . . . . . . . . . . . . . 2.9 Aﬃne Hyperplanes . . . . . . . . . . . 2.10 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

13 13 20 22 22 27 32 37 44 46 48

**Part II Polynomial Curves and Spline Curves
**

3 Introduction to Polynomial Curves 3.1 Why Parameterized Polynomial Curves? . . . . . . 3.2 Polynomial Curves of degree 1 and 2 . . . . . . . . 3.3 First Encounter with Polar Forms (Blossoming) . . 3.4 First Encounter with the de Casteljau Algorithm . 3.5 Polynomial Curves of Degree 3 . . . . . . . . . . . . 3.6 Classiﬁcation of the Polynomial Cubics . . . . . . . 3.7 Second Encounter with Polar Forms (Blossoming) . 3.8 Second Encounter with the de Casteljau Algorithm 3.9 Examples of Cubics Deﬁned by Control Points . . . 3.10 Problems . . . . . . . . . . . . . . . . . . . . . . . . v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

63 63 74 77 81 86 93 98 101 106 116

vi 4 Multiaﬃne Maps and Polar Forms 4.1 Multiaﬃne Maps . . . . . . . . . . . . . . . . . . . . 4.2 Aﬃne Polynomials and Polar Forms . . . . . . . . . . 4.3 Polynomial Curves and Control Points . . . . . . . . 4.4 Uniqueness of the Polar Form of an Aﬃne Polynomial 4.5 Polarizing Polynomials in One or Several Variables . 4.6 Problems . . . . . . . . . . . . . . . . . . . . . . . . .

CONTENTS 119 119 125 131 133 134 139 143 143 156 169 174 176 182 187 187 196 209 214 230 233 237 245 252

. . . . . . . . . Map . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

5 Polynomial Curves as B´zier Curves e 5.1 The de Casteljau Algorithm . . . . . . . . . . . . . . . 5.2 Subdivision Algorithms for Polynomial Curves . . . . . 5.3 The Progressive Version of the de Casteljau Algorithm 5.4 Derivatives of Polynomial Curves . . . . . . . . . . . . 5.5 Joining Aﬃne Polynomial Functions . . . . . . . . . . . 5.6 Problems . . . . . . . . . . . . . . . . . . . . . . . . . .

6 B-Spline Curves 6.1 Introduction: Knot Sequences, de Boor Control Points . 6.2 Inﬁnite Knot Sequences, Open B-Spline Curves . . . . . 6.3 Finite Knot Sequences, Finite B-Spline Curves . . . . . . 6.4 Cyclic Knot Sequences, Closed (Cyclic) B-Spline Curves 6.5 The de Boor Algorithm . . . . . . . . . . . . . . . . . . . 6.6 The de Boor Algorithm and Knot Insertion . . . . . . . . 6.7 Polar forms of B-Splines . . . . . . . . . . . . . . . . . . 6.8 Cubic Spline Interpolation . . . . . . . . . . . . . . . . . 6.9 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . .

**Part III Polynomial Surfaces and Spline Surfaces
**

7 Polynomial Surfaces 7.1 Polarizing Polynomial Surfaces . . . . . . . . . . . . . . . . 7.2 Bipolynomial Surfaces in Polar Form . . . . . . . . . . . . 7.3 The de Casteljau Algorithm; Rectangular Surface Patches 7.4 Total Degree Surfaces in Polar Form . . . . . . . . . . . . 7.5 The de Casteljau Algorithm for Triangular Surface Patches 7.6 Directional Derivatives of Polynomial Surfaces . . . . . . . 7.7 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

259

261 261 270 275 279 282 285 290 295 295 323 333

8 Subdivision Algorithms for Polynomial Surfaces 8.1 Subdivision Algorithms for Triangular Patches . . . . . . . . . . . . . . . . . 8.2 Subdivision Algorithms for Rectangular Patches . . . . . . . . . . . . . . . . 8.3 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

CONTENTS 9 Polynomial Spline Surfaces and Subdivision 9.1 Joining Polynomial Surfaces . . . . . . . . . 9.2 Spline Surfaces with Triangular Patches . . . 9.3 Spline Surfaces with Rectangular Patches . . 9.4 Subdivision Surfaces . . . . . . . . . . . . . 9.5 Problems . . . . . . . . . . . . . . . . . . . . Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vii 337 337 343 349 352 368 371 371 379 381 385 388 396 397 397 404 407 409 412 419

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

10 Embedding an Aﬃne Space in a Vector Space 10.1 The “Hat Construction”, or Homogenizing . . . 10.2 Aﬃne Frames of E and Bases of E . . . . . . . 10.3 Extending Aﬃne Maps to Linear Maps . . . . . 10.4 From Multiaﬃne Maps to Multilinear Maps . . 10.5 Diﬀerentiating Aﬃne Polynomial Functions . . . 10.6 Problems . . . . . . . . . . . . . . . . . . . . . .

11 Tensor Products and Symmetric Tensor Products 11.1 Tensor Products . . . . . . . . . . . . . . . . . . . . 11.2 Symmetric Tensor Products . . . . . . . . . . . . . 11.3 Aﬃne Symmetric Tensor Products . . . . . . . . . 11.4 Properties of Symmetric Tensor Products . . . . . . 11.5 Polar Forms Revisited . . . . . . . . . . . . . . . . 11.6 Problems . . . . . . . . . . . . . . . . . . . . . . . .

Part IV Appendices

A Linear Algebra A.1 Vector Spaces . . . . . . . . . . A.2 Linear Maps . . . . . . . . . . . A.3 Quotient Spaces . . . . . . . . . A.4 Direct Sums . . . . . . . . . . . A.5 Hyperplanes and Linear Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

423

425 425 432 436 437 445 447 447 453 456 460 467 467 471 472

B Complements of Aﬃne Geometry B.1 Aﬃne and Multiaﬃne Maps . . . . . . . . . . B.2 Homogenizing Multiaﬃne Maps . . . . . . . . B.3 Intersection and Direct Sums of Aﬃne Spaces B.4 Osculating Flats Revisited . . . . . . . . . . .

C Topology C.1 Metric Spaces and Normed Vector Spaces . . . . . . . . . . . . . . . . . . . . C.2 Continuous Functions, Limits . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Normed Aﬃne Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

viii

CONTENTS

D Diﬀerential Calculus 475 D.1 Directional Derivatives, Total Derivatives . . . . . . . . . . . . . . . . . . . . 475 D.2 Jacobian Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

This is also useful to establish the notation and terminology. Our main goal is to provide an introduction to the mathematical concepts needed in tackling problems arising notably in computer graphics. Although we will touch some of the topics covered in computational geometry (for example. but in our opinion.Preface This book is primarily an introduction to geometric concepts and tools needed for solving problems of a geometric nature with a computer. This book is an attempt to ﬁll this gap. We present some of the main tools used in computer aided geometric design (CAGD). which is a main theme of this book. but our goal is not to write another text on CAGD. In this respect. This book consists of four parts. triangulations). we are ﬂirting with the intuitionist’s ideal of doing mathematics from a “constructive” point of view. mechanical engineers). or else rather specialized and application-oriented. Readers 1 . Such a point of view if of course very relevant to computer science. Many problems in the above areas require some geometric knowledge. books dealing with the relevant geometric material are either too theoretical. • Part I provides an introduction to aﬃne geometry. This ensures that readers are on ﬁrm grounds to proceed with the rest of the book. and motion planning. We present a coherent view of geometric methods applicable to many engineering problems at a level that can be understood by a senior undergraduate with a good math background. and engineers interested in geometric methods (for example. In particular. we provide an introduction to aﬃne geometry. geometric modeling. we are writing about Geometric Modeling Methods in Engineering We refrained from using the expression “computational geometry” because it has a well established meaning which does not correspond to what we have in mind. this book should be of interest to a wide audience including computer scientists (both students and professionals). Thus. we are more interested in dealing with curves and surfaces from an algorithmic point of view . computer vision. just to mention some key areas. In brief. in particular the study of curves and surfaces. This material provides the foundations for the algorithmic treatment of polynomial curves and surfaces. mathematicians.

Beatty. and Veblen e and Young [85. we highly recommend Berger [5. we only provide a cursory coverage of CAGD methods.2 CONTENTS proﬁcient in geometry may omit this section. Fiorot and Jeannin [35. computer vision. Pedoe [59]. do Carmo [26]. we are more explicit . Dieudonn´ [25]. We also include a section on subdivision surfaces. and we are happy to thank the authors for providing such inspiration. and Barsky [4]. Hoschek and Lasser [45]. Tisseron [83]. one of the most spectacular application of these concepts is the treatment of curves and surfaces in terms of control points. and Tisseron [83]. For example. • Part III deals with an algorithmic treatment of polynomial surfaces (B´zier rectangular e or triangular surfaces). we are far from giving a comprehensive treatments of these topics. This is in complete agreement with de Casteljau’s original spirit. as attested by several papers in SIGGRAPH’98. especially the paper by DeRose et al [24] on the animated character Geri. including Bartels. Samuel [69]. Lyle Ramshaw’s remarkably elegant and inspirational DEC-SRC Report. an exciting and active area of research in geometric modeling and animation. readers totally unfamiliar with this material will probably have a hard time with the rest of the book. This is why many pages are devoted to an algorithmic treatment of curves and surfaces. Farin [32. “Blossoming: A connect–the–dots approach to splines” [65]. We have happily and irrevocably adopted the view that the most transparent manner for presenting much of the theory of polynomial curves and surfaces is to stress the multilinear nature (really multiaﬃne) of these curves and surfaces. certain technical proofs that were omitted earlier. or use it by need . we highly recommend Berger [5. a tool extensively used in CAGD. • Part II deals with an algorithmic treatment of polynomial curves (B´zier curves) and e spline curves. there are excellent texts on CAGD. and spline surfaces. As it turns out. On the other hand. a great classic. from the short movie Geri’s game. and differential calculus. 6]. Samuel [69]. However. complements of aﬃne geometry. Similarly. Riesler [68]. These readers are advised do some extra reading in order to assimilate some basic knowledge of geometry. geometric modeling. Boehm and Prautzsch [11]. although we cover aﬃne geometry in some detail. Sidler [76]. radically changed our perspective on polynomial curves and surfaces. but as Ramshaw. and Piegl and Tiller [62]. 6]. Several sections of this book are inspired by the treatment in one of several of the above texts. 86]. Our advice is to use it by need ! Our goal is not to write a text on the many specialized and practical CAGD methods. Our main goal is to provide an introduction to the concepts needed in tackling problems arising in computer graphics. Luckily. 31]. 36]. For such a treatment. just to mention some key areas. Berger and Gostiaux [7]. analysis. • Part IV consists of appendices consisting of basics of linear algebra. This part has been included to make the material of parts I–III self-contained. Pedoe [59]. and motion planning. Hilbert and Cohn-Vossen [42].

Hoﬀman [43] for solid modeling. Novelties As far as we know. Some great references are Koenderink [46] and Faugeras [33] for computer vision. Thus. • Drawing a curve or a surface. we will see how this can be done using spline curves or spline surfaces. background material or rather technical proofs are relegated to appendices. spline curves or surfaces. • Interpolating a set of points. Loop). and Metaxas [53] for physics-based deformable models. For further information on these topics. and to numerical methods in matrix analysis. it is very helpful to be aware of eﬃcient methods for numerical matrix analysis. There are other interesting applications of geometry to computer vision. The material presented in this book is related to the classical diﬀerential geometry of curves and surfaces. We will see how this can be done using polynomial curves or surfaces (also called B´zier e curves or surfaces). by a curve or a surface. readers are referred to the excellent texts by Gray [39]. homogenize. Strang [81]. computer graphics. . much of the algorithmic theory of polynomial curves and surfaces is captured by the three words: Polarize. there is no fully developed modern exposition integrating the basic concepts of aﬃne geometry as well as a presentation of curves and surfaces from the algorithmic point of view in terms of control points (in the polynomial case). tensorize! We will be dealing primarily with the following kinds of problems: • Approximating a shape (curve or surface). and solid modeling. New Results This books provides an introduction to aﬃne geometry. Again. and Ciarlet [19]. it is often possible to reduce problems involving certain splines to solving systems of linear equations. As the reader will discover. Catmull-Clark. Strang’s beautiful book on applied mathematics is also highly recommended as a general reference [80]. New Treatment. In fact. There is also no reasonably thorough textbook presentation of the main surface subdivision schemes (DooSabin. The tools and techniques developed for solving the approximation problem will be very useful for solving the other two problems. and a technical discussion of convergence and smoothness.CONTENTS 3 in our use of multilinear tools. Generally.

and we propose many challenging programming projects. These algorithms were used to prepare most of the illustrations of this book. Subdivision surfaces are the topic of Chapter 9 (section 9. 29. The approach (sometimes called blossoming) consists in multilinearizing everything in sight (getting polar forms). not just triangles or rectangles. 28]. Subdivision surfaces are also brieﬂy covered in Stollnitz. We even include an optional chapter (chapter 11) covering tensors and symmetric tensors to provide an in-depth understanding of the foundations of blossoming and a more conceptual view of the computational material on curves and surfaces. Thus. we devote a great deal of eﬀorts to the development and implemention of algorithms to manipulate curves. some are (very) diﬃcult. we provide Mathematica code for most of the geometric algorithms presented in this book. Open Problems . A clean and elegant presentation of control points is obtained by using a construction for embedding an aﬃne space into a vector space (the so-called “hat construction”. this is the ﬁrst textbook presentation of three popular methods due to Doo and Sabin [27. which leads very naturally to a presentation of polynomial curves and surfaces in terms of control points (B´zier curves and surfaces). but in the context of wavelets and multiresolution representation. A a general rule. They provide an attractive alternative to spline surfaces in modeling applications where the topology of surfaces is rather complex. etc. As a matter of fact. Catmull and Clark [17]. We discuss Loop’s convergence proof in some detail. we are primarily interested in the repesentation and the implementation of concepts and tools used to solve geometric problems. Many problems and programming projects are proposed (over 200). Many algorithms and their implementation Although one of our main concerns is to be mathematically rigorous. all implemented in Mathematica. We e present many algorithms for subdividing and drawing curves and surfaces. originating in Berger [5]).4 CONTENTS We give an in-depth presentation of polynomial curves and surfaces from an algorithmic point of view. triangulations. and Charles Loop [50]. Some are routine. We also urge the reader to write his own algorithms. and for this. we give a crash course on discrete Fourier transforms and (circular) discrete convolutions. The continuity conditions for spline curves and spline surfaces are expressed in terms of polar forms. As far as we know. but we always keep the algorithmic nature of the mathematical objects under consideration in the forefront. Subdivision surfaces form an active and promising area of research. and where the initial control polyhedron consists of various kinds of faces.4). which implies that we give precise deﬁnitions and prove almost all of the results in this book. and Salesin [79]. DeRose. we try to be rigorous. which yields both geometric and computational insights into the subtle interaction of knots and de Boor control points. A glimpse at subdivision surfaces is given in a new Section added to Farin’s Fourth edition [32]. surfaces.

who screened half of the manuscript with a ﬁne tooth comb. Andy Hicks. Ron Donagi.CONTENTS 5 Not only do we present standard material (although sometimes from a fresh point of view). Rich Pito. . I wish to thank some students and colleagues for their comments. and projective geometry. but whenever possible. David Jelinek. Ken Shoemake. We also have omitted solid modeling techniques. Herman Gluck. we describe very clearly the problem of ﬁnding an eﬃcient way to compute control points for C k -continuous triangular surface splines. We are also writing a text covering these topics rather extensively (and more). Will Dickinson. and most of all Raj Iyer. Acknowledgement This book grew out of lectures notes that I wrote as I have been teaching CIS510. and a more mathematical presentation in Strang [82]. A good reference on these topics is [31]. including Doug DeCarlo. What’s not covered in this book Since this book is already quite long. and wavelets. Dimitris Metaxas. DeRose. and to Marcel Berger. and Salesin [79]. Hany Farid. Steve Frye. For example. methods for rendering implicit curves and surfaces. We also discuss some of the problems with the convergence and smoothness of subdivision surface methods. Chris Croke. Charles Erignac. we have omitted rational curves and rational surfaces. we state some open problems. Also thanks to Norm Badler for triggering my interest in geometric modeling. and the ﬁnite element method is the subject of so many books that we will not even attempt to mention any references. Introduction to Geometric Methods in Computer Science. Hartmut Liefke. a remarkably clear presentation of wavelets is given in Stollnitz. Edith Haber. Dianna Xu. many thanks to Eugenio Calabi for teaching me what I know about diﬀerential geometry (and much more!). thus taking the reader to the cutting edge of the ﬁeld. for the past four years. Bond-Jay Ting. for sharing some of their geometric secrets with me. Finally. The ﬁrst two topics are nicely covered in Hoﬀman [43]. Jeﬀ Nimeroﬀ. Ioannis Kakadiaris. Jaydev Desai. the ﬁnite elements method. Deepak Tolani. and David Harbater. Gerald Farin.

6 CONTENTS .

automobile and aircraft manufacturing. and Ferguson. architecture. computer vision. but even when the objects are higher-dimensional and very abstract. Thus. balistics. One might say that this is only true of geometry up to the end of the nineteenth century. Paradoxically. in order to put it on ﬁrmer grounds and to obtain more rigorous proofs. B´zier. there seems to be an interesting turn of events.Chapter 1 Introduction 1. the intuitions behind these fancy concepts almost always come from shapes that can somehow be visualized. with the advent of faster computers. These methods pioneered by de Casteljau. civil and mechanical engineering. it is a branch of aﬃne geometry. geometry has played a crucial role in the development of many scientiﬁc and engineering disciplines such as astronomy. Beginning with the ﬁfties. It is interesting to observe that most College textbooks of mathematics included a fair amount of geometry up to the fourties. automobile and plane manufacturers realized that it was possible to design cars and planes using computer-aided methods. just to mention some key areas. among others. What happened then is that mathematicians started using more algebra and analysis in geometry. Although not very advanced. what a glorious subject! For centuries. What makes geometry a unique and particularly exciting branch of mathematics is that it is primarily visual . ship building. starting in the early sixties. After being neglected for decades. stimulated by computer science. and it is very useful from the point of view of applications. On the other hand. it was discovered at the end of the nineteenth century that there was a danger in relying too much on visual intuition. mechanics. the amount of geometry decreases to basically disappear in the seventies. computer graphics. except for the initiated. the type of geometry used is very elegant. geometry seems to be making a come-back as a fundamental tool used in manufacturing. The consequence of the strive for more rigor and the injection of more algebra in geometry is that mathematicians of the beginning of the twentieth century began suppressing geometric intuitions from their proofs. geodesy. Geometry lost some of its charm and became a rather inpenetrable discipline. and motion planning. and that this could lead to wrong results or fallacious arguments. 7 .1 Geometric Methods in Engineering Geometry. e used geometric methods. Basically. and in this century.

We concentrate on methods for discretizing curves and surfaces in order to store them and display them eﬃciently.8 CHAPTER 1. The demand for technology using 3D graphics. aﬃne geometry.2 Examples of Problems Using Geometric Modeling The following is a nonexhaustive listing of several diﬀerent areas in which geometric methods (using curves and surfaces) play a crucial role. We will need to understand better how to discretize geometric objects such as curves. in order to make the book entirely self-contained. This book represents an attempt at presenting a coherent view of geometric methods used to tackle problems of a geometric nature with a computer. and it is clear that storing and processing complex images and complex geometric models of shapes (face. we focus on polynomial curves deﬁned in terms of control points. We believe that this can be a great way of learning about curves and surfaces. we list some problems arising in computer graphics and computer vision that can be tackled using the geometric tools and concepts presented in this book. in order to gain a deeper understanding of this theory of curves and surfaces. INTRODUCTION We are convinced that geometry will play an important role in computer science and engineering in the years to come. we present the underlying geometric concepts in some detail. is increasing fast. In turn. there are plenty of opportunities for applying these methods to real-world problems. Furthermore. virtual reality. etc) will be required. while having fun. In the next section. animation techniques. directional derivatives. etc). Our main focus is on curves and surfaces. However. • Manufacturing • Medical imaging • Molecular modeling • Computational ﬂuid dynamics • Physical simulation in applied mechanics • Oceanography. virtual oceans • Shape reconstruction • Weather analysis . 1. in particular. surfaces. but our point of view is algorithmic. limbs. etc. and volumes. Thus. we provide some appendices where this background material is presented. since they are the most eﬃcient class of curves and surfaces from the point of view of design and representation. organs. since this material relies on some algebra and analysis (linear algebra.

and a C 2 -continuous spline curve F passing through these points. 0 ≤ i ≤ N. . . The next ﬁgure shows N + 1 = 8 data points. the problem is no longer underdetermined if we specify some “end conditions”.2. dN +1 called de Boor control points (with d−1 = x0 and dN +1 = xN ). . However. dN ) by solving a system of linear equations of the form r0 d0 1 d 1 r1 α1 β1 γ1 d 2 r2 α2 β2 γ2 0 .8). . d8 are also shown. EXAMPLES OF PROBLEMS USING GEOMETRIC MODELING • Computer graphics (rendering smooth curved shapes) • Computer animation • Data compression • Architecture • Art (sculpture. . . . for example in manufacturing problems or in medical imaging. . γi are easily computed from the uj . .) 9 A speciﬁc subproblem that often needs to be solved. . with ui < ui+1 for all i. . . xN and a sequence of N + 1 reals u0 . xN (and d0 . . it turns out that d1 . etc). βi . the problem is still underdetermined. Then. Instead of specifying the tangents at x0 and xN . . and we need to be more speciﬁc as to what kind of curve we would like to use. . . . . dN −2 rN −2 0 αN −2 βN −2 γN −2 αN −1 βN −1 γN −1 dN −1 rN −1 rN dN 1 where r0 and rN may be chosen arbitrarily. Lagrange interpolants.. . . Even then. the coeﬃcients αi . and ri = (ui+1 − ui−1 ) xi for 1 ≤ i ≤ N − 1 (see section 6. . . . For simplicity.8). the problem is actually underdetermined. Indeed. for instance the tangents at x0 and xN . we can specify the control points d0 and dN .. dN −1 can be computed from x0 . Problem: Given N + 1 data points x0 . uN . . In most cases. = . for a uniform sequence of reals ui . . As stated above. for all i. . ﬁnd a C 2 -continuous curve F . there are many different types of curves that solve the above problem (deﬁned by Fourier series. 0 ≤ i ≤ N − 1. 3D images. is to ﬁt a curve or a surface through a set of data points.1. eﬃciency is the dominant factor. In this case. .. . such that F (ui ) = xi . . let us discuss brieﬂy a curve ﬁtting problem. . Other points d−1 . and it turns out that piecewise polynomial curves are usually the best choice. . . What happens is that the interpolating B-spline curve is really determined by some sequence of points d−1 . it can be shown that there is a unique B-spline curve solving the above problem (see section 6.

Indeed. ship hulls. x3 . plane design. engine parts. x4 . ski boots. in medical imaging. x5 . Let us mention automobile design. fuselage. INTRODUCTION d7 d6 x6 x4 d4 x5 d5 x0 = d−1 x7 = d8 Figure 1. One may do this by ﬁtting a Bspline curve through the data points.10 d2 d1 x1 x3 d0 d3 x2 CHAPTER 1. (wings. etc). this problem can be solved using B-splines.1: A C 2 interpolation spline curve passing through the points x0 . For example. We could go on and on with many other examples. say the heart. Many manufacturing problems involve ﬁtting a surface through some data points. one may want to ﬁnd the contour of some organ. In computer animation. in a smooth manner. one may want to have a person move from one location to another. specifying curves and surfaces in terms of control points is one of the major techniques used in geometric design. x1 . given some discrete data. etc. x7 The previous example suggests that curves can be deﬁned in terms of control points. x2 . x6 . Again. but it is now time to review some basics of aﬃne geometry! . passing through some intermediate locations.

Part I Basics of Aﬃne Geometry 11 .

12 .

independently of any speciﬁc choice of a coordinate system. But the deeper reason is that vector spaces and aﬃne spaces really have diﬀerent geometries. whereas the geometric properties of an aﬃne space are invariant under the group of bijective aﬃne maps. but one should learn to resist the temptation to resort to coordinate systems until it is really necessary. such as parallelism. The geometric properties of a vector space are invariant under the group of bijective linear maps. but this is not very satisfactory for a number of reasons. aﬃne geometry is crucial to a clean presentation of kinematics. surfaces.Chapter 2 Basics of Aﬃne Geometry 2. when there is really no reason to have a privileged origin. Aﬃne spaces provide a better framework for doing geometry. the set U = {x ∈ Rn | Ax = b} of solutions of the system Ax = b is an aﬃne space. Of course. one is also interested in geometric properties invariant under certain transformations. but not a linear map in general. One could model the space of points as a vector space. Roughly speaking. this is highly desirable to really understand what’s going on. for example. a rigid motion is an aﬃne map. In particular. and other parts of physics (for example. dynamics. given an m × n matrix A and a vector b ∈ Rm . Another reason is that certain notions. translations. called the origin. Aﬃne spaces are the right framework for dealing with motions. are handled in an akward manner. 13 . living in a space consisting of “points. curves and surfaces are usually considered to be sets of points with some special properties.” Typically. and physical forces. elasticity). After all. plays a special role.1 Aﬃne Spaces Geometrically. in an intrinsic manner. projections. it is possible to deal with points. etc. among other things. rotations. One reason is that the point corresponding to the zero vector (0). Thus. etc. there are more aﬃne maps than linear maps. Also. trajectories. coordinate systems have to be chosen to ﬁnally carry out computations. but not a vector space (linear space) in general. that is. As in physics. and these two groups are not isomorphic. curves.

−2 . x2 . 0. and Hilbert and Cohn-Vossen [42]. Corresponding to linear combinations of vectors. Samuel [69]. Then. points and vectors are identiﬁed. in the standard frame. Next. the translations and the central dilatations. If so. but it is easy to infer that a frame is a pair (O. the standard frame in R3 has origin O = (0. the vector ab = (b1 − a1 . We take advantage of the fact that almost every aﬃne concept is the counterpart of some concept in linear algebra. the reader is referred to Pedoe [59]. b3 − a3 ). Corresponding to linear subspaces. Our presentation of aﬃne geometry is far from being comprehensive. − = (0. BASICS OF AFFINE GEOMETRY Use coordinate systems only when needed! This chapter proceeds as follows. The position of a point x is then deﬁned by → → → e1 e2 e3 the “unique vector” from O to x. stressing the physical interpretation of the deﬁnition in terms of points (particles) and vectors (forces). Corresponding to linear maps. x2 . which coincides with the point itself.14 CHAPTER 2. Suppose we have a particle moving in 3-space and that we want to describe the trajectory of this particle. 1). Curiously. 6]. Note that → − b = a + ab. a2 . addition being understood as addition in R3 . we introduce aﬃne subspaces as subsets closed under aﬃne combinations. e ). we deﬁne aﬃne independence and aﬃne frames. there is a unique free vector denoted → − → − ab from a to b. If one looks up a good textbook on dynamics. − )) e e e3 → → → − consisting of an origin O (which is a point) together with a basis of three vectors (− . Berger [5. realizing that we are forced to restrict our attention to families of scalars adding up to 1. a3 ) and b = (b1 . 0). We also deﬁne convexity. But wait a minute. Snapper and Troyer [77]. one ﬁnds out that the particle is modeled as a point. Certain technical proofs and some complementary material on aﬃne geometry are relegated to an appendix (see Chapter B). b2 − a2 . and it is biased towards the algorithmic geometry of curves and surfaces. let us identify points with elements of R3 . given any two points a = (a1 . − . Then. and − = (0. e e 1 2 3 For example. and that the position of this point x is determined with respect to a “frame” in R3 by a vector. b2 . We show that every aﬃne map is completely deﬁned by the image of one point and a linear map. x3 ). such as Greenwood [40]. we characterize aﬃne subspaces in terms of certain vector spaces called their directions. x3 ). We investigate brieﬂy some simple aﬃne maps. b3 ). given a point − → x = (x1 . the position of x is the vector Ox = (x1 . 1. 0. Tisseron [83]. we deﬁne aﬃne combinations of points (barycenters). we deﬁne aﬃne maps as maps preserving aﬃne combinations. this deﬁnition seems to be deﬁning frames and the position of a point without deﬁning what a point is! Well. corresponding to linear independence and bases. In the standard frame. We begin by deﬁning aﬃne spaces. 0) and the basis of three vectors − = (1. This allows us to deﬁne a clean notion of parallelism. (−1 . the notion of a → → → frame is rarely deﬁned precisely. 0. . 0). For more details.

− )). we e e2 e → → can deﬁne the linear combination λ− + µ− as the vector of coordinates u v (λu1 + µv1 . v3 ) with respect to the basis (−1 . −3 )). An undesirable side-eﬀect of the present approach shows up if we attempt to deﬁne linear combinations of points. u3) and (v1 . but such a treatment is not frame invariant. u2 . −2 . let us review → → the notion of linear combination of vectors. a3 b3 c3 . x3 ) is deﬁned by two position vectors: e e − → → → → Ox = (x . λu3 + µv3 ). ω2 . ω2 . −3 ) is e e e a1 b1 c1 P = a2 b2 c2 . say Ω = (ω1 . −2 . µ. First. It may be computationally convenient to deal with points using position vectors. x2 − ω2 . This gives us evidence that points are not vectors. AFFINE SPACES b → − ab a O 15 Figure 2. − . → → → We note that in the second frame (Ω. points and position vectors are no e e2 e longer identiﬁed. (− . x2 . −′ → → → → e3 ) over the basis (−1 . e′3 ) and if the matrix P expressing the vectors ( e′1 .1: Points and free vectors What if we pick a frame with a diﬀerent origin.1. (−1 . but the same basis → → → − vectors (−1 . it is important to deﬁne points and properties of points that are frame invariant. − − − → → → − − → → If we choose a diﬀerent basis ( e′1 . −2 . e e e This is because − → − → − → − → Ox = OΩ + Ωx and OΩ = (ω1 . v2 . − . −3 )). λu2 + µv2 . the point x = (x1 .2. ω3 ). x ) in the frame (O. Given two vectors − and − of coordinates u v → → → (u1 . (−1 . e′2 . which has undesirable eﬀets. x . x3 − ω3 ) in the frame (Ω. −3 ). e′2 . and e e e 1 2 3 1 2 3 − → → → → Ωx = (x1 − ω1 . ω3 ). − . e3 )? This time. Inspired by physics. for any two scalars λ.

− ) are given in terms of the coordinates (u′ . λu′2 + µv2 . − . u3 ) and (v1 . ( e1 e2 e3 (a′1 . u′ . the coordinates ′ ′ ′ (λu′1 + µv1 . − . −2 . a′2 . − . b2 . we get ′ u1 u1 u′2 = P −1 u2 u3 u′3 and ′ v1 v1 ′ v2 = P v2 . v2 . given two points a and b of coordinates → → → the frame (Ω. v ′ ) of − → → → → the basis ( e1 e2 e3 u 1 2 3 1 2 3 −′ −′ − → → → → and − with respect to the basis ( e . −2 . −3 )) and of coordinates e e e − . (−1 . a3 ) and (b1 . b3 ) with respect to the frame (O. − )). b3 − ω3 ). where OΩ = (ω . b′3 ) = (b1 − ω1 . a′3 ) = (a1 − ω1 . a2 − ω2 . b2 − ω2 . → → → the coordinates of λa + µb with respect to the frame (O. λa2 + µb2 . e′ ) by the matrix equations v 1 2 3 ′ u1 u1 u2 = P u′2 u′3 u3 From the above. ω ). λa′2 + µb′2 . − )) to e e e3 − → − . − )). a2 . − ). − . e′3 ) are given by u v ′ ′ u1 v1 λu1 + µv1 λu1 + µv1 ′ λu′2 + µv2 = λP −1 u2 + µP −1 v2 = P −1 λu2 + µv2 . BASICS OF AFFINE GEOMETRY − → → → → which means that the columns of P are the coordinates of the e′j over the basis (−1 . ω . λa′3 + µb′3 ) . ( e1 e2 e3 1 2 3 → → → (a1 . λa3 + µb3 ). e e e3 since − → − → − → − → − → − → → → → → → → ′ ′ ′ u1 −1 + u2 −2 + u3−3 = u′1 e′1 + u′2 e′2 + u′3 e′3 and v1 −1 + v2 −2 + v3 −3 = v1 e′1 + v2 e′2 + v3 e′3 . −2 . → → → On the other hand. a3 ) and (b1 . if we consider the change of frame from the frame (O. b′2 . u′ ) and (v ′ . a3 − ω3 ) and (b′1 . e′2 . −3 )) are e e2 e (λa1 + µb1 . ′ u3 v3 λu3 + µv3 λu′3 + µv3 Everything worked out because the change of basis does not involve a change of origin. v ′ . but the coordinates (λa′1 + µb′1 . v3 ) of − and − with respect to u v − . a2 . ′ v3 v3 and and by linearity. λu′3 + µv3 ) − − − → → → → → of λ− + µ− with respect to the basis ( e′1 . (−1 .16 CHAPTER 2. b3 ) of with respect to the frame (Ω. e e e e e e → → it is easy to see that the coordinates (u1. e . ′ v3 v3 ′ v1 v1 ′ v2 = P −1 v2 . since → → → ′ ′ ′ ′ ′ ′ (a1 . (−1 . b2 . u2 .

where E is a set of points (with no structure) and − → E is a vector space (of free vectors) acting on the set E. we mean − → that for every force u ∈ E . u v u v → − and for any two points a.1. the ﬁrst copy corresponding to points. a3 + v3 ). unless λ + µ = 1. A clean way to handle the problem of frame invariance and to deal with points in a more intrinsic manner is to make a clearer distinction between points and vectors. b. we make explicit the important fact that the vector space R3 acts → on the set of points R3 : given any point a = (a1 . are all that is needed to deﬁne the abstract notion of aﬃne space (or aﬃne structure). − . λa2 + µb2 − ω2 . For example. the action of the force u is to “move” every point a ∈ E to the point a + u ∈ E obtained by the translation corresponding to u viewed as a vector. 17 Thus. we can think of the − → elements of E as forces moving the points in E. We can v − is placed such that its origin coincides with a and that its tip coincides with → imagine that v b. λa3 + µb3 − ω3 ). a3 ) and any vector − = (v1 . . AFFINE SPACES → → → of λa + µb with respect to the frame (Ω.2. Furthermore. a2 . v3 ). it is natural that E is a vector space. The eﬀect − → of applying a force (free vector) u ∈ E to a point a ∈ E is a translation. where we forget the vector space structure. and the second copy corresponding to free vectors. we discovered a major diﬀerence between vectors and points: the notion of linear combination of vectors is basis independent. v2 . there is a unique free vector ab such that → − b = a + ab. Since − → translations can be composed. λa3 + µb3 − (λ + µ)ω3 ) which are diﬀerent from (λa1 + µb1 − ω1 . It turns out that the above properties. This action + : R3 × R3 → R3 satisﬁes some crucial properties. some restriction is needed: the scalar coeﬃcients must add up to 1. We duplicate R3 into two copies. By this. although trivial in the case of R3 . − → a + 0 = a. v → which can be thought of as the result of translating a to b using the vector − . λa2 + µb2 − (λ + µ)ω2. (−1 . The basic idea is − → to consider two (distinct) sets E and E . v we obtain the point → a + − = (a1 + v1 . −3 )) are e e2 e (λa1 + µb1 − (λ + µ)ω1 . Intuitively. In order to salvage the notion of linear combination of points. a2 + v2 . considered as physical particles. where the vector space structure is important. but the notion of linear combination of points is frame dependent. → → → → (a + − ) + − = a + (− + − ).

The formal deﬁnition of an aﬃne space is as follows. and an − → action + : E × E → E. we also write → − b = a + ab (or even b = a + (b − a)). we can choose to look at the points in E. a vector space E (of translations. − → (AF2) (a + u) + v = a + (u + v). An aﬃne space is either the empty set. there is a unique u ∈ E such that a + u = b. It is also assumed that all families of vectors and scalars are ﬁnite. The unique → − − → vector u ∈ E such that a + u = b is denoted by ab. − → E . E . but wearing diﬀerent sets of glasses. − → This can be formalized by deﬁning two maps between E and E . for every a ∈ E. the null vector. Furthermore. forgetting that every pair (a. Thus. − → The axioms deﬁning an aﬃne space E. if we also pick any point a in E. Indeed. b = a + v is equivalent to ab = v. for every a ∈ E. Did you say “A ﬁne space”? − → Deﬁnition 2. b) of points deﬁnes a − → − → unique vector ab in E . . E . satisfying the following conditions. forgetting the points in E. The following diagram gives an intuitive picture of an aﬃne space. since a(a + v) is the unique vector such that a+v = a+ a(a + v).1.1. b ∈ E. (AF1) a + 0 = a. it is assumed that all vector spaces under consideration are deﬁned over the ﬁeld R of real numbers. + consisting − → of a nonempty set E (of points). + can be interpreted intuitively as saying − → that E and E are two diﬀerent ways of looking at the same object. or we can choose to look at the vectors u in E . or sometimes by b − a. → − Thus. For simplicity. or free vectors). + is the dimension dim( E ) of the vector space −− − − −→ a(a + v) = v −− − − −→ −− − − −→ − → for all a ∈ E and all v ∈ E . or a triple E. BASICS OF AFFINE GEOMETRY For simplicity. E . − → (AF3) For any two points a. It is natural to think of all vectors as having the same origin.18 CHAPTER 2. the second set of glasses depending on the choice of an “origin” in E. Note that − → − → The dimension of the aﬃne space E. then we can recover all the points in E as the translated points a + u for all u ∈ E . v ∈ E . point that can be viewed as an origin − → in E. and every u. it is denoted as dim(E).

yields u. consider the mapping from E to E: u → a + u. and not vectors! For − → − → notational simplicity. yields b. + as (E. E . which.2: Intuitive picture of an aﬃne space − → For every a ∈ E. Thus. AFFINE SPACES E b=a+u u a c=a+w v w − → E 19 Figure 2. − → − → where u ∈ E . .2. and consider the mapping from E to E : → − b → ab.1. and we denote it as Ea . + is a way of deﬁning a vector space structure on a set of points E. in view of (AF3). where b ∈ E. we will often denote an aﬃne space E. an − → aﬃne space E. The composition of the ﬁrst mapping with the second is −− − − −→ u → a + u → a(a + u). E . After all. and the mappings are both bijections. The composition of the second with the ﬁrst mapping is → − → − b → ab → a + ab. Thus. However. we can view E as the vector space Ea . in view of (AF3). as soon as we commit to an origin a in E. Nevertheless. − → − → which. points are points. The vector space E is called the vector space associated with E. or even as − → E. → − − → When we identify E to E via the mapping b → ab. we urge the reader to − → think of E as a physical set of points and of E as a set of forces acting on E. rather than reducing E to some isomorphic copy of Rn . E ). we say that we consider E as the vector space obtained by taking a as the origin in E. without making a commitment to a ﬁxed origin in E. these compositions are the identity from E to E and the identity from E to E.

. the action of the vector space Rn over the set Rn simply viewed as a set of points. 0) and (0. 3. 1). and − → letting + be addition in the vector space E . . we will denote points as row vectors. the notation b − a for the unique vector u such that b = a + u. In this respect. . un The aﬃne space An is called the real aﬃne space of dimension n. In most cases. an + un ). BASICS OF AFFINE GEOMETRY One should be careful about the overloading of the addition symbol +. Addition is well− → deﬁned on vectors. points and vectors. Thus. − → − → Any vector space E has an aﬃne space structure speciﬁed by choosing E = E . and vectors as column vectors. an ) + . we will consider n = 1. y) satisfying the equation x + y − 1 = 0. for any two points a = (a1 . . = (a1 + u1 . 1 − a1 ) and b = (b1 . as in u + v. . is given by u1 . we will see in section 10. but addition of points a + b does not make sense. the unique (vector) u ∈ R such that b = a + u is u = b1 − a1 . since it suggests that points can be substracted (but not added!).1 that it is possible to make sense of linear combinations of points. (x. 2. . . not in an obvious fashion). 1 − x) + u = (x + u. (a1 . It immediately veriﬁed that this action makes L into an aﬃne space. . 1 − x) on L and any u ∈ R. Consider the subset L of A2 consisting of all points (x. Yet. is somewhat confusing. the vector space Rn can be viewed as an aﬃne space denoted as An . In particular. For example. the translate a + u of a point a ∈ E by a vector u ∈ E is also well-deﬁned. Note that the vector space R is isomorphic to the line of equation x + y = 0 passing through the origin. The set L is the line of slope −1 passing through the points (1. In order to distinguish between the double role played by members of Rn . We will refer to this aﬃne structure on a vector − → space as the canonical (or natural) aﬃne structure on E .2 Examples of Aﬃne Spaces Let us now give an example of an aﬃne space which is not given as a vector space (at least.20 CHAPTER 2. 2. The line L can be made into an oﬃcial aﬃne space by deﬁning the action + : L × R → L of R on L deﬁned such that for every point (x. 1 − x − u). and even mixed linear combinations of points and vectors. . 1 − b1 ) on L. .

2. Aﬃne spaces not already equipped with an obvious vector space structure arise in projective geometry. y. consider the subset H of A3 consisting of all points (x.2. 1 − x − u − y − v). y. (0. x2 + y 2 ) on P and any v (x. The set P is paraboloid of revolution. 1). For a slightly wilder example. y + v. 0. 0. y. y + v. 1 − x − y) on H and any v (x. The surface P can be made into an oﬃcial aﬃne space by deﬁning the action + : P × R2 → P of R2 on P deﬁned such that for u ∈ R2 . The set H is the plane passing through the points (1. This should dispell any idea that aﬃne spaces are dull. y. H deﬁned such that for every point (x. 0). z) satisfying the equation x2 + y 2 − z = 0. 1 − x − y) + u v = (x + u. EXAMPLES OF AFFINE SPACES 21 L Figure 2. 0). with axis Oz. x2 + y 2) + u v = (x + u. every point (x. y. (x + u)2 + (y + v)2 ). consider the subset P of A3 consisting of all points (x.3: An aﬃne space: the line of equation x + y − 1 = 0 Similarly. and (0. z) satisfying the equation x + y + z − 1 = 0. . The plane H can be made into an oﬃcial aﬃne space by deﬁning the action + : H × R2 → H of R2 on u ∈ R2 . y. 1.

b. a = a + 0. also called a barycenter . by (AF2). BASICS OF AFFINE GEOMETRY − → E b ab a c bc ac Figure 2.1. and thus. we get → − → − ba = −ab. The corresponding concept in aﬃne geometry is that of an aﬃne combination. c. → − − → − → − → we have ab = dc iﬀ bc = ad (the parallelogram law ). → − → − → Given any three points a. → aa Thus. 2. we get ac. b. However. d ∈ E. since c = a + − b = a + ab.3 Chasles’ Identity → − → − → − → → − − c = b + bc = (a + ab) + bc = a + ( ab + bc) → → − − − ab + bc = → ac. and c = b + bc. Given any four points a. since by Chasles’ identity → → − − − − → → → ab + bc = ad + dc = − ac. there is a problem with the naive approach involving a coordinate system. by (AF3). Since this problem is the reason for introducing aﬃne combinations.4 Aﬃne Combinations.4: Points and corresponding vectors in aﬃne geometry 2. Barycenters A fundamental concept in linear algebra is that of a linear combination. → Since a = a + − and by (AF1). by (AF3). c ∈ E. we get aa − = 0. as we saw in section 2. which is known as Chasles’ identity. at the risk of boring . letting a = c in Chasles’ identity.22 E CHAPTER 2.

For any two points a. Given any two 0 1 points a = (a1 . and the point a + b is the point d of coordinates (−1. −1). It turns out that if the scalars sum up to 1. Consider R2 as an aﬃne space. i i i i i∈I i∈I (2) If i∈I λi = 0. let (ai )i∈I be a family of points in E. 1) (and the same basis vectors). and let (λi )i∈I be a family of scalars. b ∈ E. some extra condition is needed in order for aﬃne combinations to make sense. 0) and basis vectors and . This time.1. let us now consider the new coordinate system with respect to the origin c = (1. −1) and b = (2. we give another example showing what goes wrong if we are not careful in deﬁning linear combinations of points. as the following lemma shows. and the coordinates of b are (1. Given an aﬃne space E. λa2 + µb2 ). −2). 0) of the ﬁrst coordinate system. it is clear that the point d is identical to the origin O = (0. under its natural 1 0 coordinate system with origin O = (0. b2 ).4. the deﬁnition is intrinsic. when a = (−1. a + b corresponds to two diﬀerent points depending on which coordinate system is used for its computation! Thus. then − → → a+ λ − = b+ aa λ ba . 1). the following properties hold: (1) If i∈I λi = 1. the point a + b is the point c = (1.4. 1). the coordinates of a are (−2. then → λi − i = aa i∈I i∈I − → λi bai . However. . However. BARYCENTERS 23 b c O=d a Figure 2.5: Two coordinates systems in R2 certain readers. 2). Thus. AFFINE COMBINATIONS. it is natural to deﬁne the aﬃne combination λa + µb as the point of coordinates (λa1 + µb1 . Thus. Lemma 2.2. a2 ) and b = (b1 .

where i∈I λi = 1. we have a+ i∈I → λi − i = a + aa i∈I → → − − λi ( ab + bai ) → − λi ) ab + − → λi bai i∈I i∈I =a+( → − = a + ab + = b+ i∈I i∈I − → λi bai since i∈I λi = 1 − → λi bai → − since b = a + ab. which is just a pair (a.3). i∈I =( i∈I − → λi bai = i∈I since i∈I λi = 0. λ). The unique point x is called the barycenter (or barycentric combination. λi ))i∈I is the unique point such that − = → ax i∈I → λi − i for every a ∈ E. i∈I In dealing with barycenters. given a family of weighted points ((ai . where a ∈ E is a point. (1) By Chasles’ identity (see section 2. or aﬃne combination) of the points ai assigned the weights λi . λi ))i∈I . λi ))i∈I . Thus. Then. and λ ∈ R is a scalar. aa . BASICS OF AFFINE GEOMETRY Proof. and it is denoted as λi ai . Note that the barycenter x of the family of weighted points ((ai . by lemma 2. it is convenient to introduce the notion of a weighted point.4. the point x=a+ i∈I → λi − i aa is independent of the choice of the origin a ∈ E.24 CHAPTER 2. for any family of points (ai )i∈I in E.1. for any family (λi )i∈I of scalars such that i∈I λi = 1. we also say that the point i∈I λi ai is the barycenter of the family of weighted points ((ai . (2) We also have → λi − i = aa i∈I i∈I → → − − λi ( ab + bai ) → − λi ) ab + − → λi bai .

and we may aa denote it as i∈I λi ai . 1). and negative masses are allowed).4. −1). d) are called its control points. d) be a sequence of points in A2 . regardless of the value of i∈I λi . Thus. so that i∈I λi = 1. since g2 = −a + 2 1 1 b+ c .2. let (a. and c. we can deﬁne the curve F : A → A2 such that Such a curve is called a B´zier curve. since the sum on the left-hand side is obtained by expanding (t + (1 − t))3 = 1 using the binomial formula. b). it is easy to prove that the barycenter of m weighted points can be obtained by repeated computations of barycenters of two weighted points. xa i i i∈I 25 In physical terms. and (a. b. the vector λ − does not depend on the point a. the barycenter is the center of mass of the family of weighted points ((ai . 1 . since 2 g1 = 1 1 1 1 a + b + c. the point x is the unique point such that → λ − = 0. → (2) When λ = 0. (b. Note that e the curve passes through a and d. 2 2 Later on. For example.1 to deﬁne a vector space in which linear combinations of both points and vectors make sense. (1 − t)3 a + 3t(1 − t)2 b + 3t2 (1 − t) c + t3 d . Observe that (1 − t)3 + 3t(1 − t)2 + 3t2 (1 − t) + t3 = 1. and (a. F (t) = (1 − t)3 a + 3t(1 − t)2 b + 3t2 (1 − t) c + t3 d. 1). c) is the middle of the segment (a. and (c. 1 . We will see in the next chapter how any point F (t) on the curve can be constructed using an algorithm performing three aﬃne interpolation steps (the de Casteljau algorithm). BARYCENTERS and setting a = x. 4 4 2 The point g1 can be constructed geometrically as the middle of the segment joining c to 1 the middle 2 a + 1 b of the segment (a. is a well-deﬁned aﬃne combination. AFFINE COMBINATIONS. This observation will be used in Chapter 10. 1 . g2 ). b. c. Then. Remarks: (1) For all m ≥ 2. λi ))i∈I (where the masses have been normalized. we will see that a polynomial curve can be deﬁned as a set of barycenters of a ﬁxed number of points. 2 2 2 2 The point g2 can be constructed geometrically as the point such that the middle 1 b + 1 c of 2 2 the segment (b. i∈I i i∈I i i The ﬁgure below illustrates the geometric construction of the barycenters g1 and g2 of the weighted points a. c. but generally not through b and c. b.

BASICS OF AFFINE GEOMETRY c g1 a b c g2 a b 1 1 Figure 2. g1 = 4 a + 1 b + 2 c.6: Barycenters. 4 .26 CHAPTER 2. g2 = −a + b + c.

It is natural to deﬁne an aﬃne subspace as a subset of an aﬃne space closed under aﬃne combinations. a subset V of E is an aﬃne subspace if for every family of weighted points ((ai . we claim that m i=1 λi (xi . Given any m points (xi . and since λ1 + · · · + λm = 1.e.5 Aﬃne Subspaces In linear algebra. λi ))i∈I in V such that i∈I λi = 1. yi ) ∈ U means that axi + byi = c. yi ) ∈ U. yi ) ∈ U. − → Deﬁnition 2.1. consider the subset U of A2 deﬁned by U = {(x.5. the set of solutions of the equation ax + by = c.5. y) ∈ R2 | ax + by = c}. Given an aﬃne space E. (xi .1.5. + . i. which shows that m m m λi xi . where it is assumed that a = 0 or b = 0. and every intersection of aﬃne subspaces is an aﬃne subspace. As an example. the empty set is trivially an aﬃne subspace. Indeed. E . yi ) ∈ U and any m scalars λi such that λ1 + · · · + λm = 1. the notion corresponding to the notion of (linear) subspace is the notion of aﬃne subspace. According to deﬁnition 2.2. In aﬃne spaces. a (linear) subspace can be characterized as a nonempty subset of a vector space closed under linear combinations. the barycenter i∈I λi ai belongs to V . we get m m m a i=1 λi xi +b i=1 λi y i = i=1 λi c = c. we get m m (λi axi + λi byi ) = i=1 i=1 λi c. AFFINE SUBSPACES 27 2. . An aﬃne subspace is also called a ﬂat by some authors. and if we multiply both sides of this equation by λi and add up the resulting m equations. i=1 i=1 λi y i = i=1 λi (xi .

if (x0 . if (x. this time without any restriction on the λi . u2 ) ∈ U }. the same calculation as above yields that m i=1 − → λi (xi . y) ∈ U. − → U = (x0 . y) ∈ (x0 . y0 ) + U . u2 ) ∈ U . The above example shows that the aﬃne line U deﬁned by the equation ax + by = c − → is obtained by “translating” the parallel line U of equation ax + by = 0 passing through the origin. and thus (x. y − y0 ) ∈ U . y0 ) ∈ U. y0) + U = {(x0 + u1 . Thus. BASICS OF AFFINE GEOMETRY Thus. by subtraction. In fact. and it is just a usual line in R2 . U is an aﬃne subspace of A2 . it is just a usual line in A2 . y0 ) + U . given any point (x0 . y0 ) + U . we get a(x − x0 ) + b(y − y0 ) = 0. In fact. then ax + by = c. since the right-hand side of the equation is − → − → null. In fact. y0 + u2 ) | (u1 . since ax0 + by0 = c and au1 + bu2 = 0 for all (u1 . y0 ) + U ⊆ U. − → − → First.e. y0) + U . y0 ) + U . where − → − → (x0 . Hence. we claim that − → U = (x0 . i. y) ∈ R2 | ax + by = 0}. we also have − → − → U ⊆ (x0 . and U = (x0 . It turns out that U is closely related to the subset of R2 deﬁned by − → U = {(x. for any m scalars λi . the set of solution of the homogeneous equation ax + by = 0 obtained by setting the right-hand side of ax + by = c to zero. line which is parallel to the line U of equation ax + by = c. U is one-dimensional. (x0 . This line can be identiﬁed with a line passing through the origin of A2 . and since we also have ax0 + by0 = c. U is a subspace of R2 . .28 CHAPTER 2. yi ) ∈ U . Second. Indeed. y0 ) is any point in U. Now. − → − → which shows that (x − x0 .

. Let V be a nonempty subset of E.2. . an ) in V .7: An aﬃne line U and its direction More generally. λn ). .5. for any family (λ1 . Aﬃne subspaces can be characterized in terms of subspaces of − → E . This is a general situation. . . λn ) of scalars. we have − → U = x0 + U . i=1 . if we consider the corresponding homogeneous equation Ax = 0. observe that for every x ∈ E. n x=a+ i=1 → λi − i aa is the barycenter of the family of weighted points n ((a1 . Furthermore. AFFINE SUBSPACES 29 U U Figure 2. . . (an . (a. the subset U of An deﬁned by U = {x ∈ Rn | Ax = c} is an aﬃne subspace of An . . and for any x0 ∈ U. . . For every family (a1 . . the set − → U = {x ∈ Rn | Ax = 0} is a subspace of Rn . 1 − λi )). for every point a ∈ V . it is easy to prove the following fact. Given any m × n matrix A and any vector c ∈ Rm . . λ1 ).

. for every family of weighted points.30 since n CHAPTER 2. Thus. − → Lemma 2. then. λi ))1≤i≤n . for every a ∈ V . (1) Clearly. . . − = → ax iﬀ x is the barycenter n n − → is a subspace of E . λn ). the set → V = {− | x ∈ V } ax a − → is a subspace of E and Va = V for all a ∈ E. it is clear − → that Va is closed under linear combinations. − → (2) For any subspace V of E .2. (1) A nonempty subset V of E is an aﬃne subspace iﬀ. for every x ∈ E. Conversely. ((a + vi . 0 ∈ V . BASICS OF AFFINE GEOMETRY n i=1 λi + (1 − λi ) = 1. + be an aﬃne space. xy ax since − =− −− → → → xy ay ax. where a ∈ V . let a + V denote the following subset of E: a + V = {a + v | v ∈ V }. Let E. since V is a subspace of E . Since V = → → {− | x. . If V is an aﬃne subspace. − → and since Va is a subspace of E . for any a ∈ E. y ∈ V } and Va = {− | x ∈ V }. it is clear that Va ⊆ V .5. → − → − Proof. where vi ∈ V . and by the remark before the lemma. it is a subspace of E . Consequently. Thus. and thus. y ∈ V } xy → λi − i aa n i=1 i=1 λi ai + (1 − λi )a i=1 n i=1 λi )). (a. V = a + Va . . − → (2) If V = a + V . and λ1 + · · · + λn = 1. (an . Furthermore. V = Va . E . for every point a ∈ V . λ1 ). we have V ⊆ Va . 1 − x=a+ i=1 −−− −−→ λi a(a + vi ) = a + n λi vi i=1 − → is in V . V = a + V . then V is closed under barycentric combinations. Then. the barycenter x being given by n of the family of weighted points ((a1 . → V = {− | x. the set V = a + V is an aﬃne subspace. i=1 − → Given any point a ∈ E and any subspace V of E . where V is a subspace of E .

see Appendix A).8: An aﬃne subspace V and its direction V In particular. d are coplanar . we mean the dimension of V .e.2. c. and V = b + U. c → − → are collinear . Given an aﬃne space E. i. for λ ∈ R. since U = V . By the dimension of the subspace V .2. We say that four points → − − − → a. E . and we deﬁne the ac → − ac ratio − = λ. Equivalently. The subspace V associated with an aﬃne subspace V is called the direction of V .2 shows that every aﬃne subspace of E is of the form u + U.e. i. c are ac → − → distinct. V. for a subspace U of E. b. µ ∈ R.3. − → Lemma 2. then there is a unique λ ∈ R. b. if the vectors ab. for any family (ai )i∈I of points in E. An aﬃne subspace of codimension 1 is called a hyperplane (recall that a subspace F of a vector space E has codimension 1 iﬀ there is some subspace G of dimension 1 such that E = F ⊕ G.5. − → By lemma 2. An aﬃne subspace of dimension 1 is called a line. lemma 2. a line is speciﬁed by a point a ∈ E and a nonzero vector v ∈ E . If two of the points a. V is obtained from U by the translation → − ab. such that − = λ ab. Hyperplanes will ac.5. when E is the natural aﬃne space associated with a vector space E. + . + an aﬃne structure. and an aﬃne subspace of dimension 2 is called a plane. and thus. the set V of barycenters i∈I λi ai (where i∈I λi = 1) is the smallest aﬃne subspace containing . for any a ∈ U and any b ∈ V . b.5. We say that three points a. a plane is the set of all points of the form a + λu + µv. be characterized a little later.5. say a = b. we have U = a + U. for λ. We say that two aﬃne subspaces U and V are parallel if their directions are identical. a line is the set of all points of the form a + λu. The subspaces of E are the aﬃne subspaces that contain 0. AFFINE SUBSPACES E − → E 31 a V =a+V V − → Figure 2. → and ad. It is − → also clear that the map + : V × V → V induced by + : E × E → E confers to V. → ab − → A plane is speciﬁed by a point a ∈ E and two linearly independent vectors u. the direct sum of F and G. if the vectors ab and − are linearly dependent. are linearly dependent. v ∈ E .

Given an aﬃne space E. If the family (−→)j∈(I−{i}) is linearly independent for some i ∈ I.32 (ai )i∈I . + . Given a nonempty subset S of E. the set of all points (1 − λ)a + λb. then (−→)j∈(I−{i}) is linearly a− j a− j ia ia independent for every i ∈ I. For example. and similarly for planes. b . If V contains at least two points. λ ∈ R. Proof. then the smallest aﬃne subspace containing (ai )i∈I must contain the set V of barycenters i∈I λi ai . the smallest aﬃne subspace of E generated by S is often denoted as S . then V = ∅.1. 2. − → Lemma 2. which is immediately veriﬁed.6 Aﬃne Independence and Aﬃne Frames Corresponding to the notion of linear independence in vector spaces. that is. Given a family (ai )i∈I of points in an aﬃne space E. Assume that the family (−→)j∈(I−{i}) is linearly independent for some speciﬁc i ∈ I. If (ai )i∈I is empty.6. a− j a− i a− j ka ka ia . b ∈ V . E . because of the condition i∈I λi = 1. it is enough to show that V is closed under aﬃne combinations. the set V contains all barycentric combinations of a and b. let (ai )i∈I be a family of points in E. If (ai )i∈I is nonempty. we will reduce the notion of (aﬃne) independence of these points to the (linear) independence of the families (−→)j∈(I−{i}) of vectors obtained by chosing any ai as an origin. a− j ia Let k ∈ I with k = i. a nonempty subset V of E is an aﬃne subspace iﬀ for every two points a. b ∈ V . CHAPTER 2. ka j∈(I−{k}) Since − → = −→ + −→. Remark: Since it can be shown that the barycenter of n weighted points can be obtained by repeated computations of barycenters of two weighted points. and thus. or even (a. we have the notion of aﬃne independence. the following lemma a− j ia shows that it suﬃcient to consider only one of these families. BASICS OF AFFINE GEOMETRY Proof. a line speciﬁed by two distinct points a and b is denoted as a. b). and assume that there are some scalars (λj )j∈(I−{k}) such that − → a− j λj − → = 0 . etc. First. the set V contains the line determined by a and b. V is an aﬃne subspace iﬀ for any two distinct points a.

a− j ia λj −→.2 is reasonable. . Given an aﬃne space E. A similar result holds for aﬃnely independent points. + . a0 am ) is linearly independent.6. . . .6.k}) j∈(I−{k}) and thus j∈(I−{i.2. Then. However. Given an aﬃne space E. . a− k ia λj −→. u − → Lemma 2. . E . . k}) and j∈(I−{k}) λj = 0. . . . Recall that x= i=0 m i=0 m λi ai iﬀ − x = a→ 0 m λi −→.6. a− j ia Deﬁnition 2. the family i=0 i=0 m −→ − −→ − (λ0 . Let x ∈ E. which implies that λj = 0 for all j ∈ (I − {k}). .k}) Since the family (−→)j∈(I−{i}) is linearly independent. then the λi are unique. . and assume that x = m λi ai . . a− k ia → λi −i u i=1 → of the −i .1. λm ) such that x = i=0 λi ai is unique iﬀ the family (a0 a1 . am ) be a family of m + 1 points in E. .2. a family (ai )i∈I of points in E is aﬃnely independent if the family (−→)j∈(I−{i}) is linearly independent for some i ∈ I. Proof. λm ) such that −x = a→ 0 m λi −→ a− i 0a i=1 . it is a well known result of linear algebra that the family where (λ1 . AFFINE INDEPENDENCE AND AFFINE FRAMES we have λj − → = a− j ka j∈(I−{k}) j∈(I−{k}) 33 λj −→ + a− i ka j∈(I−{k}) λj −→. a− j ia j∈(I−{i. + . − ) is that if a vector − is a linear combination u um v − = → v m a− j λj −→ − ia j∈(I−{k}) − → λj −→ = 0 . a− i 0a i=1 λi = 1. let (a0 . E . since by Lemma 2. . where m λi = 1. A crucial property of linearly independent i → → → vectors (−1 . . . .k}) = j∈(I−{k}) λj −→ + a− i ka λj −→ − a− j ia = j∈(I−{i.6.3. we must have λj = 0 for all j ∈ a− j ia (I − {i. . We deﬁne aﬃne independence as follows. − → Deﬁnition 2. . the independence of the family a− j a (−→)j∈(I−{i}) does not depend on the choice of ai .6.

6. 1 ≤ i ≤ m. . . since x = a0 + − x.1. . we obtain the family of m+ 1 points (a0 . . . λ0 is also unique. . . there a− 1 a0 → a→ 0a 0 is a unique family (x1 . − → − When (− →. for any m ≥ 1. . where ai = a0 + ui . Conversely. xm ) of scalars. the uniqueness of i=1 (λ0 . . . such that − a0 → a− 1 x = a0 + x1 − → + · · · + xm − am . . . it is equivalent to consider a family of m + 1 points (a0 . . . . . and a pair (a0 . . then. .10 again. Aﬃne frames are the aﬃne analogs − → of bases in vector spaces. . . . . . . . where the ui are vectors in E . .9: Aﬃne independence and linear independence − is unique iﬀ (− →. (u1. am ) in E. . by lemma A. . The family (a0 . . .10). . . + be a nonempty aﬃne space. . .3 suggests the notion of aﬃne frame. Conversely. . . . . and let (a0 . . Thus. − am )). Thus. . . . E . um )). − am ) is linearly independent. (λ1 . . a− i 0a i=1 − and by lemma A.34 E a2 CHAPTER 2. − am ) is a basis of E . . . . . Since a− 1 a0 → 0a m x = a0 + i=1 xi −→ iﬀ x = (1 − a− i 0a m xi )a0 + i=1 i=1 xi ai . . a− 1 a0 → 0a Lemma 2.1. .10. am ) be a family of m + 1 points in E. . λm ) a− 1 a0 → 0a is unique.1. λm ) such that x = m λi ai implies the uniqueness of (λ1 . λm ) such that i=0 −x = a→ 0 m λi −→. (− →. Let E. see Chapter A. for every x ∈ E. . am ) determines the family of m − → − vectors (− →. . and since λ0 = 1 − m λi . . − am ) in E . um) in E . . (− →. . . if (− →. 0a m − The scalars (x1 . BASICS OF AFFINE GEOMETRY − → E a0 a2 a0 a1 a0 a1 Figure 2. . − am ) is linearly independent (for a proof. . . . . . . xm ) are coordinates with respect to (a0 . am ) in − → E. . . Lemma a− 1 a0 → 0a − A. − am ) is linearly independent. . given a point a0 in E and a family of m vectors a− 1 a0 → 0a − → (u1 . . . .

. . + . where λ0 + · · · + λn = 1 and λi ≥ 0 (λi ∈ R). and d are not in a same plane (they are not coplanar).6. . am ) of m + 1 points in E such that (− →. . . Such aﬃne combinations are called convex combinations. c. which is the unique line passing through a and b. Then. . an )). c) is the set of all points (1 − λ − µ)a + λb + µc. a1 . for 1 ≤ i ≤ m. . . λm ) are also certain kinds of coordinates with respect to (a0 . and c are not on a same line ac (they are not collinear). ac. which means that a. c. b. . .6. c. . c) in E is aﬃnely independent → − → iﬀ ab and − are linearly independent. . b. am ). every x ∈ E can be a− a a− 0 0 1 0 m 0 expressed as − x = a0 + x1 − → + · · · + xm − am a− 1 a0 → 0a for a unique family (x1 . An aﬃne frame is called an i=1 aﬃne basis by some authors. . (− →. . . . the aﬃne frame − (a0 .2. λm ) are related by the equations λ0 = 1 − m xi and λi = xi . . . and d. b. A family of → − → − → four points (a. Given n+1 aﬃnely independent points (a0 . . the aﬃne subspace generated by a and b is the set of all points (1 − λ)a + λb. the aﬃne subspace generated by (a. − → Deﬁnition 2.r. b. . and λi = xi for 1 ≤ i ≤ m. Furthermore. are the vertices of a tetrahedron. − a )) is also called an aﬃne frame with origin a . b. called the coordinates of x w. . d) in E is aﬃnely independent iﬀ ab. . every x ∈ E can be written as a− 1 a0 → 0a x = λ0 a0 + · · · + λm am for some unique family (λ0 . . The pair a− 1 a0 → 0a → (a . . In this case. The coordinates (x1 . All this is summarized in the following deﬁnition. . . . This set is called the convex hull of (a0 . and where λ0 = 1 − m xi . an aﬃne frame with origin a0 is a − → − family (a0 . − am ) is a basis of E . If a = b. . . . . (− →. . b. . E . . . . − and ad are linearly independent. . and c. . we get the line segment between a0 and a1 . an ) in E. 3. The scalars i=1 i=0 (λ0 . − am )). . which is the unique plane containing a. . iﬀ a = b. The ﬁgure below shows aﬃne frames for |I| = 0. xm ) of scalars. including a0 and a1 . . When n = 2. . . which means that a. .4. . am ). . . . AFFINE INDEPENDENCE AND AFFINE FRAMES x ∈ E can also be expressed uniquely as m 35 x= i=0 λi ai with m λi = 1. . b. Given an aﬃne space E. an ) (or n-simplex spanned by (a0 . . When n = 1. . .t. In this case. . a2 . λm ) of scalars such that λ0 +· · ·+λm = 1 called the barycentric coordinates of x with respect to the aﬃne frame (a0 . → − A family of two points (a. . 2. a. 1. . A family of three points (a. b) in E is aﬃnely independent iﬀ ab = 0. we get the interior of the triangle whose vertices are a0 . we can consider the set of points λ0 a0 + · · · + λn an . . xm ) and the barycentric coordinates (λ0 . .

a2 d a0 a1 Figure 2. b. we have c ∈ V for every point c = (1 − λ)a + λb. . More generally. c be three aﬃnely independent points in A3 . b. a− 1 a− n 0a 0a is called the parallelotope spanned by (a0 . Points are not vectors! The following example illustrates why treating points as vectors may cause problems. we say that a subset V of E is convex if for any two points a. The set {a0 + λ1 − → + · · · + λn − → | where 0 ≤ λi ≤ 1 (λi ∈ R)}. c) can . a3 . Any point x in the plane (a. Let a.11: A paralellotope including boundary points (the edges). d). . including boundary points (faces and edges). a1 . and when E has dimension 3. a2 .10: Examples of aﬃne frames. When E has dimension 2.36 CHAPTER 2. BASICS OF AFFINE GEOMETRY a2 a0 a0 a1 a3 a0 a1 a0 a2 a1 Figure 2. a parallelotope is also called a parallelogram. When n = 3.11: it consists of the points inside of the parallelogram (a0 . . a parallelepiped . a2 . with 0 ≤ λ ≤ 1 (λ ∈ R). a1 . A parallelotope is shown in ﬁgure 2. including its boundary. b ∈ V . we get the interior of the tetrahedron whose vertices are a0 . . an ).

+ and E ′ . we have the notion of an aﬃne map. a2 . − → − → Deﬁnition 2. b3 ). a3 ). it is tempting to solve the system of equations a1 b1 c1 λ0 x1 a2 b2 c2 λ1 = x2 . since v −−− −−→ λi vi . λi ))i∈I of weighted points in E such that i∈I λi = 1.7. where O is any point not in the plane (a. and x = (x1 . λ1 . i∈I i∈I In other words. there is a problem when the origin of the coordinate system belongs to the plane (a. for any . λi (a + vi ) = a + λi a(a + vi ) = a + i∈I i∈I i∈I i∈I λi = 1. c3 ). AFFINE MAPS be expressed as x = λ0 a + λ1 b + λ2 c. see the Problems. c).1. x3 ) be the coordinates of a.7. For simplicity of notation. x in the standard frame of A3 . a function f : E → E ′ is an aﬃne map iﬀ for every family ((ai . c). we claim that the map f : E → E ′ deﬁned such that f (a + v) = b + h(v) is an aﬃne map. for any family (λi )i∈I of scalars such that → family (−i )i∈I . +′ . b = (b1 . x2 . An alternative is to use certain well chosen cross-products. 37 where λ0 + λ1 + λ2 = 1. c2 . b. An aﬃne map is deﬁned as a map preserving aﬃne combinations. − → − → Given any point a ∈ E. How can we compute λ0 . since in this case. b. a3 b3 c3 λ2 x3 However. c = (c1 . the same symbol + is used for both aﬃne spaces (instead of using both + and +′ ).7 Aﬃne Maps Corresponding to linear maps. and any linear map h : E → E ′ . b. we have f( λi ai ) = λi f (ai ). c. Aﬃne maps can be obtained from linear maps as follows. Indeed. E . Given two aﬃne spaces E. any point b ∈ E ′ . λ2 ? Letting a = (a1 . f preserves barycenters. b2 . E ′ .2. 2. It can be shown that barycentric coordinates correspond to various ratios of areas and volumes. the matrix is not invertible! What we should really be doing is to solve the system − → − → − → − → λ0 Oa + λ1 Ob + λ2 Oc = Ox.

we have f( i∈I λi (a + vi )) = f (a + i∈I λi vi ) λi vi ) i∈I = b + h( = b+ i∈I λi h(vi ) λi (b + h(vi )) = i∈I = i∈I λi f (a + vi ). c. d) is the parallelogram (a′ . Note that the condition 2. b′ . b. Let us consider one more example. The map x1 x2 → 1 1 1 3 x1 x2 + 3 0 . The image of the square (a. i∈I As a more concrete example.12. The eﬀect of this shear on the square (a.12: The eﬀect of a shear −−−− −−−→ λi b(b + h(vi )) = b + i∈I i∈I and λi (b + h(vi )) = b + i∈I λi h(vi ).38 CHAPTER 2. BASICS OF AFFINE GEOMETRY d′ c′ d c a′ a b′ b Figure 2.4. d′ ). b. It is a “shear” followed by a translation. c. c′ . the map x1 x2 → 1 2 0 1 x1 x2 + 3 1 deﬁnes an aﬃne map in A2 .1) in deriving that λi (a + vi ) = a + i∈I i∈I λi = 1 was implicitly used (in a hidden call to Lemma λi vi and i∈I λi (b + h(vi )) = b + i∈I λi h(vi ). d) is shown in ﬁgure 2.

but very technical. 0 1 this aﬃne map is the composition of a shear. Given an aﬃne map f : E → E ′ . d) is shown in ﬁgure 2. there is a unique linear map f : E → E ′ .13. Proof. The eﬀect of this map on the square (a. AFFINE MAPS c d′ ′ 39 d c b′ b a′ Figure 2. b. We then have to check that the map deﬁned in such a way is linear and that its deﬁnition does not depend on the choice of a ∈ E.2 is called the linear map associated with the aﬃne map f . c. followed by √ a magniﬁcation of ratio 2. The image of the square (a. − → − → Lemma 2. b. .7. Since we can write 1 1 1 3 = √ √ a 2 2 2 √ 2 2 − √ 2 2 √ 2 2 1 2 . − → for every a ∈ E and every v ∈ E . Every aﬃne map is determined by the image of any point and a linear map. c′ . Section − → − → B. The proof is not diﬃcult. If a linear map f : E → E ′ satisfying the condition of the lemma exists.7. followed by a rotation of angle π/4. − → − → The unique linear map f : E → E ′ given by lemma 2. The following lemma shows the converse of what we just showed. c. this map must satisfy the equation −− − − − − − − −→ f (v) = f (a)f (a + v) − → for every v ∈ E . Let a be any point in E. We simply sketch the main ideas.13: The eﬀect of an aﬃne map is an aﬃne map. d′ ).2. such that f (a + v) = f (a) + f (v).2. followed by a translation. d) is the parallelogram (a′ . b′ .7. It can be found in Appendix B.1.

BASICS OF AFFINE GEOMETRY E a a+v v − → E f f E′ f (a) f (a) + f (v) = f (a + v) f (v) −′ → E − → Figure 2. − → − → for all v ∈ E (just let b = f (a). −→ → −→ → −− −→ − → → → → −− → −− f (x) = f (a) + f (− = f (a) + − = x + − + af (a) + − = x + − + af (a) − − = x + af (a). or f (a)f (x) = f (− ax). − → for every a ∈ E and every v ∈ E can be stated equivalently as −−− −−→ → → f (x) = f (a) + f (− ax). Lemma 2. x ∈ E. for all a. Aﬃne maps for which f is the identity − → map are called translations. for any a ∈ E). .7. ax) ax xa ax xa xa and so −− −→ −− −→ xf (x) = af (a). if f = id.40 CHAPTER 2. Indeed.2 shows that for any aﬃne map f : E → E ′ . and a unique linear map f : E → E ′ . b ∈ E ′ . there are points − → − → a ∈ E. −− −→ which shows that f is the translation induced by the vector af (a) (which does not depend on a).14: An aﬃne map f and its associated linear map f Note that the condition f (a + v) = f (a) + f (v). such that f (a + v) = b + f (v).

. and that f : E → E ′ is surjective iﬀ f : E → E ′ is surjective. a1 .15: An aﬃne map mapping a0 . where λ0 + · · · + λm = 1. Also. aﬃne maps can be represented in terms of matrices. and since an aﬃne subspace V is closed under barycentric combinations. Using aﬃne frames. the image of a plane is either a point. . . a2 to b0 . we have g(f (a + v)) = g(f (a) + f (v)) = g(f (a)) + g(f (v)). the image of a line is a point or a line. Since an aﬃne map preserves barycenters. there is a unique aﬃne map f : E → F such that f (ai ) = bi . b2 . b1 . f must be such that f (λ0 a0 + · · · + λm am ) = λ0 b0 + · · · + λm bm . bm ) of m + 1 points in F . . . for any sequence (b0 . an ) in E. . for 0 ≤ i ≤ m. . since (a0 . . It is easy to show that an aﬃne map f : E → E ′ is injective − → − → − → − → iﬀ f : E → E ′ is injective. We explain how an aﬃne map f : E → E is represented with respect to a frame (a0 . So. The following diagram illustrates the above result when m = 2. . b1 .2.7. . which shows that (g ◦ f ) = g ◦ f . or a plane. . . and this deﬁnes a unique aﬃne map on the entire E. given aﬃne maps f : E → E ′ and g : E ′ → E ′′ . a line. a1 . It is easily veriﬁed that the composition of two aﬃne maps is an aﬃne map. the more . . for example. AFFINE MAPS b1 b2 41 a2 λ0 b0 + λ1 b1 + λ2 b2 λ0 a0 + λ1 a1 + λ2 a2 a0 a1 b0 Figure 2. am ) is an aﬃne frame for E. . If E is an aﬃne space of dimension m and (a0 . − → − → An aﬃne map f : E → E ′ is constant iﬀ f : E → E ′ is the null (constant) linear map equal − → to 0 for all v ∈ E . the image f (V ) of V is an aﬃne subspace in E ′ . Indeed. . . a1 . am ) is an aﬃne frame for E. for any other aﬃne space F .

and b denote the column vectors of components (x1 . x a− 1 a− n 0a 0a − → a− n a− 1 if A = (ai j ) is the n×n-matrix of the linear map f over the basis (− →. bm ) in F being analogous. . can be expressed as x x − = x − → + · · · + x − →. letting x. . x x −− − − − − − − −→ −− → −−→ → Since − . .42 CHAPTER 2. . followed by a stretch (by a factor of 2 along the x-axis. . . The aﬃne map √ 1 − 3 x1 x1 1 → √3 + 1 x2 x2 1 4 4 can also be written as x1 x2 → 2 0 1 0 2 1 2 √ 3 2 √ 1 2 3 2 − x1 x2 + 1 1 which shows that it is the composition of a rotation of angle π/3. xn ). A less trivial example is given by the aﬃne map x1 x2 → 1 0 0 −1 x1 x2 + 1 . . yn ). . . Thus. . there is a point a0 such that f (a0 ) = a0 . . bn ). unless it has a ﬁxed point.e. BASICS OF AFFINE GEOMETRY general case where an aﬃne map f : E → F is represented with respect to two aﬃne frames (a0 .. → − − x 1 a0 a1 n a0 an −−→ −− a0 f (a0 ) = b1 − → + · · · + bn − →. and (b1 . . −− − − − − − − −→ − − → − −− → → → a0 f (a0 + − ) = a0 f (a0 ) + f (− ) x x is equivalent to y = Ax + b. The vector b is the “translation part” of the aﬃne map. . . . . . f is generally not a linear transformation. and a0 f (a0 + − ). 0 This map is a reﬂection about the x-axis followed by a translation along the x-axis. . a0 f (a0 ). we have x −− − − − − − − −→ − − → − −− → → → a0 f (a0 + − ) = a0 f (a0 ) + f (− ). followed by a . i. a− 1 a− n 0a 0a −− − − − − − − −→ → a0 f (a0 + − ) = y1 − → + · · · + yn − →. an ) in E and (b0 . Obviously. . and by a factor of 1/2 along the y-axis). Since − → → → f (a0 + − ) = f (a0 ) + f (− ) x x → → − for all − ∈ E . . . Note that b = 0 unless f (a0 ) = a0 . Aﬃne maps do not always have a ﬁxed point. . 0a 0a y. nonnull translations have no ﬁxed point. (y1 . − →). . .

b. Such aﬃne maps are called rigid motions. where A is a rotation matrix. if f maps any three collinear points to collinear points. with a = b. b. 1 This trick is very useful in kinematics and dynamics. b. . b. The trick is to consider an (n + 1) × (n + 1)-matrix. we have f (c) = (1 − λ)f (a) + λf (b). where a = c. b. i. 4 5 3 and sin θ = 5 . c in E. We warn − → ba our readers that other authors deﬁne the ratio of a. and form the (n + 1) × (n + 1)-matrix A b 0 1 so that y = Ax + b is equivalent to y 1 = A b 0 1 x . which is simpler to state when the ground ﬁeld is K = R. and b. it is clear that aﬃne maps preserve the ratio of three points. f (b). then f is aﬃne. AFFINE MAPS 43 translation. even though 8 5 3 10 −6 5 2 5 = 2 0 1 0 2 4 5 3 5 −3 5 4 5 . and we deﬁne the ratio of the sequence a. The proof is rather long (see Berger [5] or Samuel [69]). There is a useful trick to convert the equation y = Ax + b into what looks like a linear equation. we agree that ratio(a. f (c) are collinear in E ′ . c) = − . we have b = (1 − β)a + βc for some unique β. c) = =−. → (1 − β) bc provided that β = 1. It is easy to show that this aﬃne map has a unique ﬁxed point. For more and the second matrix is a rotation of angle θ such that cos θ = on ﬁxed points of aﬃne maps.2. When b = c. since f preserves barycenters. c = (1 − λ)a + λb. as → − β ab ratio(a. y. c as −ratio(a. There is a converse to this property. On the other hand. the aﬃne map 8 6 −5 x1 1 x1 5 → 3 + 2 x2 1 x2 10 5 has no ﬁxed point. b.7. The converse states that given any bijective function f : E → E ′ between two real aﬃne spaces of the same dimension n ≥ 2. We add 1 as the (n + 1)th component to the vectors x. where say. see the problems.e. Given three collinear points where a. c. c) = ∞. c. If f : E → E ′ is a bijective aﬃne map. which shows that f (a). b. Since aﬃne → bc maps preserves barycenters. given any three collinear points a. that b = c.

a dilatation (or central dilatation or homothety) of center a and ratio λ is a map Ha. then there is a unique point c ∈ E such that f = Hc. and denoted as GA(E). BASICS OF AFFINE GEOMETRY 2.λ deﬁned such that → Ha. Remark: The terminology does not seem to be universally agreed upon. The subset of all linear maps of the form λ idE . c) is magniﬁed to the triangle (a′ . Ha. The terms aﬃne dilatation and central dilatation are used by Pedoe [59]. and R∗ = R − {0}). for every x ∈ E. for any aﬃne bijection f ∈ GA(E). and any scalar λ ∈ R. and when λ = 0 and x = a. it is clear that Ha.λ (a) = a. and is obtained by “scaling” − by λ.λ is an aﬃne bijection. Given any aﬃne space E. It turns out that it is the disjoint union of the translations and of the dilatations of ratio λ = 1. if f = λ idE . the set of aﬃne bijections f : E → E is clearly a group.8 Aﬃne Groups We now take a quick look at the bijective aﬃne maps. and is denoted as R∗ idE (where λ idE (u) = λu. where λ ∈ R − {0}. The elements of DIL(E) are called aﬃne dilatations. It is immediately veriﬁed that Ha. Samuel uses homothety for a central dilatation. for some λ ∈ R∗ with λ = 1.λµ . The subgroup DIL(E) = L−1 (R∗ idE ) of GA(E) is particularly interesting. The kernel of this map is the set of translations on E.µ = Ha. we have → − → − f (b) = f (a + ab) = f (a) + λ ab . Given an aﬃne space E. We have the following useful result.λ. Since e dilation is shorter than dilatation and somewhat easier to pronounce. Proof. When λ = 0. ax Figure 2.λ ◦ Ha. a direct translation of the French “homoth´tie” [69]. Given any point a ∈ E. Snapper and Troyer use the term dilation for an aﬃne dilatation and magniﬁcation for a central dilatation [77]. When λ = 1. b. Note how every line is mapped to a parallel line. Ha. Recall that the group of bijective linear maps of the vector space E is denoted as GL(E).44 CHAPTER 2. Choose some origin a in E. Then. Lemma 2. Note that Ha. called the aﬃne group of E. Since f is aﬃne. The triangle (a.8. the map f → f deﬁnes a group homomorphism L : GA(E) → GL(E).λ = λ idE . is a subgroup of GL(E). perhaps we use use that! Observe that Ha.λ (x) is on the line deﬁned by → a and x. c′ ).1.1 is the identity. b′ .16 shows the eﬀect of a central dilatation of center d.λ (x) = a + λ− ax.

Clearly. the aﬃne map f is a translation. .8. iﬀ iﬀ iﬀ → − = ac that is. 1. Another point worth mentioning is that aﬃne bijections preserve the ratio of volumes of − → → → parallelotopes. which shows that f = Hc. . AFFINE GROUPS a ′ 45 a d b c b′ c′ Figure 2. 1−λ → − Taking this unique point c as the origin. . c= −→ → af (a) − = − − + λ− → ac ac.2. . given any m + 1 aﬃnely independent points (a0 . Thus. . we have f (b) = c + λ cb for all b ∈ E. if f = idE . . 1−λ 1−λ with the aﬃne space E. − ) of the vector space E associated u u 1 m λ 1 f (a) − a. Thus. . Aﬃne dilatations can be given a purely geometric characterization. we can . there is a point c ∈ E such that f (c) = c iﬀ → c = f (a) + λ− ac.16: The eﬀect of a central dilatation for all b ∈ E. ac −→ 1 −− af (a). the group of aﬃne dilatations DIL(E) is the disjoint union of the translations and of the dilatations of ratio λ = 0. −→ → −− (1 − λ)− = af (a). Indeed. am ).λ . given any basis B = (− . .

we conclude that the ratio − − → − − → → − → detB ( f (− →). f (− am )) a0 a1 a0 = det( f ) − →. we observed that the set L of solutions of an equation ax + by = c is an aﬃne subspace of A2 of dimension 1. and if λ1 . . . b. . BASICS OF AFFINE GEOMETRY − compute the determinant detB (− →. . we see that aﬃne bijections u u preserve the ratio of volumes of parallelotopes.12). . am ). . . xm ) = λ1 x1 + · · · + λm xm − µ . . . For any bijective aﬃne a− 1 a0 → 0a map f : E → E. . it turns out that it is a subspace of dimension m − 1 called a hyperplane. where the parallelotope spanned by any point a and the vectors → → (− 1 . . In fact. . . These aﬃne maps form a subgroup SA(E) of GA(E) called the special aﬃne group of E. c are not all null). the set H of solutions of an equation λ1 x1 + · · · + λm xm = µ is an aﬃne subspace of Am . . . . − am ) is the volume of the parallelotope a− 1 a0 → 0a spanned by (a0 . . .9 Aﬃne Hyperplanes We now consider aﬃne forms and aﬃne hyperplanes. Section 9.e. in fact a plane (provided that a. . . f (− am )) = det( f )detB (− →. − am ) a0 a1 a0 a− 1 a0 → 0a − → and the determinant of a linear map is intrinsic (i. We can interpret the equation λ1 x1 + · · · + λm xm = µ in terms of the map f : Rm → R deﬁned such that f (x1 . . .46 CHAPTER 2. More generally. . . . − a ) − − → detB (a0 a1 a0 m − is independent of the basis B. . only depends on f . . . 2.r. since − − → − − → → − → − detB ( f (− →). − m ) has unit volume (see Berger [5]. . In particular. .t.. It would be equally easy to show that the set P of solutions of an equation ax + by + cz = d is an aﬃne subspace of A3 of dimension 2. and not on the particular basis B). . . In section 2. this ratio is independent of the choice of the parallelotopes of unit volume. in fact a line (provided that a and b are not both null). . the basis B. . λm are not all null. . . the aﬃne bijections f ∈ GA(E) such − → that det( f ) = 1 preserve volumes. Since detB (− →. . − am ) w. . . .5.

. it is surjective.1. By lemma A. there is some a ∈ E such that f (a) = 0. xm ) ∈ Rm . Lemma 2. for some λ ∈ R. every hyperplane H ′ parallel to H is deﬁned by a nonconstant aﬃne form g such that g(a) = f (a) − λ. we have H = f −1 (0).9. or kernel. The relationship between aﬃne hyperplanes and aﬃne forms is given by the following lemma. . Let E be an aﬃne space.2. its kernel H = Ker f is a hyperplane. and the set H of solutions of the equation λ1 x1 + · · · + λm xm = µ is the null set.2. Unlike linear forms f ∗ . (b) If H is an aﬃne hyperplane.5. H = Ker f ∗ for some nonnull linear form f ∗ .5. (c) This follows easily from the proof of (b). and since by lemma A. . The following properties hold: (a) Given any nonconstant aﬃne form f : E → R. clearly. and since f is a linear form.1.9. f −1 (0) = a + H is a hyperplane H is E. (c) Given any hyperplane H in E and any (nonconstant) aﬃne form f : E → R such that H = Ker f . it is interesting to consider aﬃne forms.1 (c). It is immediately veriﬁed that this map is aﬃne. . − → Thus. we have − → f (a + v) = 0 iﬀ f (v) = 0. . . then by lemma 2. . and is left an exercise. which implies that f is surjective. (b) For any hyperplane H in E.5. it is possible that f −1 (0) = ∅. (a) Since f : E → R is nonconstant. For any other aﬃne form g : E → R such that H = Ker g. f : E → R is not identically null. for an aﬃne form f . and thus. AFFINE HYPERPLANES 47 for all (x1 . and we call it the kernel of f . The second part of (b) is as in lemma A. f (a + v) = f ∗ (v). there is a nonconstant aﬃne form f : E → R such that H = Ker f . in the sense that H = f −1 (0) = {x ∈ Am | f (x) = 0}.1. we also denote f −1 (0) as Ker f . − → where H is a hyperplane of E . . for which Ker f ∗ is never empty (since it always contains the vector 0). xm ). for any a ∈ H.5. letting f : E → R be the aﬃne form deﬁned such that. which are just aﬃne maps f : E → R from an aﬃne space to R. where x = (x1 . Recall that an (aﬃne) hyperplane is an aﬃne subspace of codimension 1. there is some λ ∈ R such that g = λf (with λ = 0). . and f is non constant. by a previous observation. Thus. since f ∗ is nonnull. for all a ∈ E. we have H = a+ H. Since f (a + v) = f (v) for all v ∈ E . Ker f is a hyperplane H in E . − → Proof. of the aﬃne map f : Am → R. Given an aﬃne map f : E → R.

2. for some λ1 . xn ). (b. (b. 3/2). BASICS OF AFFINE GEOMETRY → → When E is of dimension n. (ma. d}. and (d. u u Also recall that every linear form f ∗ is such that f ∗ (x) = λ1 x1 + · · · + λn xn . 1/4). − → − → Let Ψa : E → E be the inverse of Φa : E → E . (c. b) as ab. . 1/4). . −n )). − → Prove that the function + : E × E → E deﬁned such that a + u = Ψa (u) . λn ∈ R. and (ma. (a) Given a tetrahedron (a. λn ∈ R. denoting f (a0 + x) as f (x1 .d ). (b. and λ1 . xn ) are the coordinates of x with respect to the aﬃne u u → → frame (a0 . the following properties hold: → → → − − (1) ab + bc = − for all a. . . Problem 2 (20 pts). 1/4). c. where µ = f (a0 ) ∈ R. an hyperplane is the set points whose coordinates (x1 . and assume that → − − → there is a function Φ : E × E → E . . . Φa (b) = ab. . given an aﬃne frame (a0 . Prove that the barycenter g of the weighted points (a. . b. b. for every → → u x = x1 −1 + · · · + xn −n . (b. mb. ac. 1/3) then g is the barycenter of (d. Show that if gd is the barycenter of the weighted points (a. xn ) satisfy the (aﬃne) equation λ1 x1 + · · · + λn xn + µ = 0. 3/4). is the common intersection of the line segments (ma. mb. b. . recall from deﬁnition 2. and (c. y ∈ {a. 1/4) and (gd . (−1 . y). 3/2). − → Problem 3 (20 pts). . xn ) = λ1 x1 + · · · + λn xn + µ. . (c.6. We are now ready to study polynomial curves. −2). . . where (x1 . → − − → (2) For every a ∈ E. .10 Problems Problem 1 (10 pts). .d ). given any two distinct points x. (−1 .y be the middle of the edge (x. . 1/4). . 1/3). . . Given a triangle (a. . c). . Let E be a nonempty set. d). . such that if we denote Φ(a. .c . c ∈ E. mc.c ). give a geometric construction of the barycenter of the weighted points (a. −n )) of E with origin u u a0 . . Give a geometric construction of the barycenter of the weighted points (a.d . Since an aﬃne form f : E → R satisﬁes the u property f (a0 + x) = f (a0 ) + f (x). let let mx. Thus. .b . we see that we have f (x1 . .4 that every point of E can be expressed uniquely as x = → → a0 + x1 −1 + · · · + xn −n . .48 CHAPTER 2. 1/2). 1/3). 1/4). and E a vector space. the map Φa : E → E deﬁned such that for every b ∈ E. . 1/4). c. . is a bijection. . . and (c. b. .

and (c1 . we obtain an equivalent characterization of aﬃne spaces. and (c0 . b. prove that a. with respect to the standard aﬃne frame for A2 . letting (a1 . the determinant is null. Given any three points a. a3 ).e. a2 . (b1 . d are coplanar iﬀ a1 b1 c1 d1 a2 b2 c2 d2 =0 a3 b3 c3 d3 1 1 1 1 i. c2 ). prove that a.e. with respect to the standard aﬃne frame for A3 . t2 . and (d1 . (b0 .. b2 . b. d2 . c in the aﬃne plane A2 . c. b. c are collinear iﬀ a1 b1 c1 a2 b2 c2 = 0 1 1 1 i. d2 . the determinant is null. b. b. PROBLEMS 49 − → − → for all a ∈ E and all u ∈ E . d are coplanar iﬀ a0 a1 a2 a3 b0 b1 b2 b3 c0 c1 c2 c3 d0 d1 =0 d2 d3 Problem 5 (10 pts). c3 ). b3 ). b. t3 ). given by t → (t. b2 . and (d0 . c. (c0 . b2 ). E . (c1 . c. c. a1 . d in the aﬃne space A3 . with respect to the standard aﬃne frame for A3 . with respect to the standard aﬃne frame for A2 . Thus. . be the barycentric coordinates of a. − → Note: We showed in the text that an aﬃne space (E. makes (E. b1 . a2 ). The function f : A → A3 . a2 . prove that a. a2 ). +) satisﬁes the properties stated above.. Problem 4 (20 pts). c2 . b. be the coordinates of a. Letting (a0 . c. c2 . be the barycentric coordinates of a. c.10. d. prove that a. c3 ). (b1 . b. +) into an aﬃne space. Letting (a0 . d3 ).2. be the coordinates of a. b2 ). d. c1 . c1 . b3 ). b. (b0 . d3 ). d1. b. letting (a1 . c are collinear iﬀ a0 b0 c0 a1 b1 c1 = 0 a2 b2 c2 Given any four points a. E . c2 ). a1 . b1 . c. a3 ).

Problem 7 (30 pts). f (t2 ). a2 ) and (b0 . or u = w. Given two lines D and D ′ in A2 deﬁned by tangential coordinates (u. wu′ − uw ′. b2 ) with respect to any given aﬃne frame (O. are not coplanar. or u = w. v. show that the equation of the line a. b . Hint. t4 . and f (t4 ). w) where u = v. BASICS OF AFFINE GEOMETRY deﬁnes what is called a twisted cubic curve. or v = w. let u v w d = u′ v ′ w ′ = vw ′ − wv ′ + wu′ − uw ′ + uv ′ − vu′ . Prove that the equation of a line in barycentric coordinates is of the form ux + vy + wz = 0. t2 . i. prove that the points f (t1 ). Given any two distinct points a. Given any four pairwise distinct values t1 . and that when it exists. uv ′ − vu′ ). or v = w. where (x. w ′) (as deﬁned in problem 6). y. d . is called a system of tangential coordinates of the line deﬁned by the equation ux + vy + wz = 0. j). v. a2 b2 z or equivalently (a1 b2 − a2 b1 )x + (a2 b0 − a0 b2 )y + (a0 b1 − a1 b0 )z = 0. where u = v. w ′ ) = λ(u. Have you heard of the Vandermonde determinant? Problem 6 (20 pts). b determined by a and b is a0 b0 x a1 b1 y = 0. b in A2 of barycentric coordinates (a0 . t3 . b1 . v ′.50 CHAPTER 2. w) and (u′ . 1 1 1 (a) Prove that D and D ′ have a unique intersection point iﬀ d = 0. z) are the barycentric coordinates of the generic point on the line a. A triple (u. v. f (t3 ). Show that two equations ux + vy + wz = 0 and u′ x + v ′ y + w ′ z = 0 represent the same line in barycentric coordinates iﬀ (u′ . a1 . w) for some λ ∈ R (with λ = 0). v ′ . the barycentric coordinates of this intersection point are 1 (vw ′ − wv ′.

− → −→ − − − − → mn p MC NA P B (b) Prove Menelaus’ theorem: the points M. i. z). and AB. p′ . at least two of which are distinct. and D ′′ . z) such that x + y + z = 0 is called the barycentric coordinates of the vector − → − → y Oi + z Oj w. w. j). 0). y. C) be a triangle in A2 .2. C). for any point a. m′ . B. (u′. z) (where x + y + z = 1) has for direction the set of vectors of barycentric coordinates (x. show that − → −→ − − − → MB NC P A m′′ np′ = − ′ ′′ . and P = B. Let M. uv ′ − vu′ ). v. and deﬁned by tangential coordinates (u. y. show that the common direction of D and D ′ is deﬁned by the vector of barycentric coordinates (vw ′ − wv ′ .r.r.10. j). w ′ ). z) such that ux + vy + wz = 0 (where x + y + z = 0). u′′ v ′′ w ′′ Problem 8 (30 pts). the vector − → → − → − xaO + y ai + z aj is independent of a and equal to − → − → y Oi + z Oj = (y. if D = D ′ . D ′ . and (p. the aﬃne frame (O.t. CA. prove that D. v ′′. Prove that D and D ′ are parallel iﬀ d = 0. (n. (c) Given three lines D.e. n′′ ). i. Let (A. P be three points respectively on the line BC. prove that for u = v. P are collinear iﬀ m′′ np′ + m′ n′′ p = 0. (a) Assuming that M = C. Given any aﬃne frame (O. the aﬃne frame (A. w).t. v ′ . or v = w. of barycentric coordinates (0. and D ′′ are parallel or have a unique intersection point iﬀ u v w u′ v ′ w ′ = 0. N. or u = w. 0. The triple (x. B. i. PROBLEMS 51 (b) Letting (O. D ′ . the line of equation ux + vy + wz = 0 in barycentric coordinates (x. . w ′′ ). and (u′′ . m′ n′′ p = 0. recall that when x + y + z = 0. j) be any aﬃne frame for A2 . wu′ − uw ′. y. N. In this case. N = A. i. m′′ ).

p ) as the ′ intersection of D2 and D2 . the intersection of the two lines D and D ′ is either a point or a vector. Prove that m n p m′ n′ p′ = 0 m′′ n′′ p′′ . and 8. When the above is a vector. N = A. p .52 CHAPTER 2. we can think of it as a point at inﬁnity (in the direction of the line deﬁned by that vector). ′ as explained at the beginning of the problem. m′′ ) be the barycentric coordinates of M. we will say that the barycentric coordinates (x. wu′ − uw ′. this is equivalent to − → −→ − − − → MB NC P A − → −→ − = 1. D2 ) be three pairs of six distinct lines. it is natural to extend the notion of barycentric coordinates of a point in A2 as follows. (D1 . CP have a unique intersection point or are parallel iﬀ m′′ np′ − m′ n′′ p = 0. and (D2 . uv ′ − vu′ ). and if D0 and D0 are parallel. Then. D1 ). We call M the intersection of D0 and D0 . y. let (m. This problem uses notions and results from problems 6. BN. z) of a point M. and P = (p. this −→ − MB −→ − MC is equivalent to −→ − − → NC P A −→ − = −1. any triple (x. let M denote a nonnull vector deﬁning the common ′ direction of D0 and D0 . D0 ). N = A. In either case. 7. If D0 and D0 have a unique intersection point. BASICS OF AFFINE GEOMETRY When M = C. ′ ′′ ′ ′ ′′ Similarly. z) such that x + y + z = 0 is also called a system of barycentric coordinates for the point of normalized barycentric coordinates 1 (x. ′ ′ ′ Let (D0 . and P = B. When M = C. n . let M be ′ this point. b. In view of (a) and (b) of problem 7. are the normalized barycentric coordinates of M. such that the four lines belonging to any union of two of the above pairs are neither parallel not concurrent ′ (have a common intersection point). where x + y + z = 1. deﬁne N = (n. x+y+z With this convention. c) in A2 . m′ . y. in both cases of barycentric coordinates (vw ′ − wv ′ . y. Given any aﬃne frame (a. n ) as the intersection of D1 and D1 . and P = B. − − → NA P B Problem 9 (20 pts). z). − − − → MC NA P B (c) Prove Ceva’s theorem: the lines AM.

If these points are all distinct from the intersection of D and D ′ (if it exists). or 53 ′ ′ (ii) The lines of some pair (Di . C ′ be six distinct points of A2 . P (in the sense of problem 7) of the pairs of lines (BC. Problem 12 (30 pts). If no three of these points are collinear. C ′ be distinct points respectively on D and D ′ . or β = 0. N. (CA′ . B ′ C ′ ). In the aﬃne plane A2 . then the intersection points (in the sense problem 7) of the pairs of lines (BC ′ . where α = 0. D1 ). 1. B. B ′ . Problem 11 (20 pts). D2 ) are pairs of parallel lines. BA′ ) are collinear in the sense of problem 9. and (D2 . each pair (Dj . and these points M. Prove the following version of Pappus’ Theorem. or ′ (iii) Each pair (Di . N. We can write the equation of the conic as x α γ δ (x. B ′ . 2) has a unique intersection point. AC ′ ). z) (where x + y + z = 1). C. CB ′ ). δ λ µ 1 x 1 0 0 x y = 0 1 0 y . or γ = 0. Di ) are parallel. Let D and D ′ be distinct lines. 1 1 1 1 z Let α γ δ B = γ β λ . A′ . Dj ) (with j = i) has a unique intersection point. a conic is the set of points of coordinates (x. P are distinct and collinear. B. D0 ). y) such that αx2 + βy 2 + 2γxy + 2δx + 2λy + µ = 0. C. Di ) (i = 0. Di ). y. Prove the following version of Desargues’ Theorem. and these two intersection points are distinct and determine a line ′ parallel to the lines of the pair (Di .10. and (AB ′ . (D1 . and CC ′ are parallel or collinear iﬀ the intersection points M.2. δ λ µ 1 0 0 C = 0 1 0 1 1 1 x X = y . y. Problem 10 (20 pts). Let A. A′ B ′ ) are collinear in the sense of problem 9. The purpose of this problem is to prove Pascal’s Theorem for the nondegenerate conics. BB ′ . 1) γ β λ y = 0. z If we now use barycentric coordinates (x. and (AB. C ′ A′ ). PROBLEMS iﬀ either ′ ′ ′ (i) (D0 . we can write and . and A′ . and let A. then the lines AA′ . (CA.

. if no three of the above points are collinear. B. BASICS OF AFFINE GEOMETRY (a) Letting A = C ⊤ BC. and (AB ′ . Show that this condition does not depend on the choice of the aﬃne frame. (c′ a. that det(A) = det(B). and let (a1 . Assume that K is a ﬁeld such that 2 = 1 + 1 = 0. (5. (ab′′ . 1/3). Problem 14 (20 pts). a′′ b′ . N. C ′ . c) is the barycenter of (a. . 9)} to the vertices of triangle ∆2 = {(1. BA′ ). C has an equation of the form ayz + bxz + cxy = 0. 4). (b. 1). Let E be an aﬃne space over R. then a nondegenerate conic passes through these six points iﬀ the intersection points M. assume that λ1 = 1. Prove that A is symmetric. B. In this case.54 CHAPTER 2. If an aﬃne map takes the vertices of triangle ∆1 = {(0. show that the barycenter of any n ≥ 3 points can be determined by repeated computations of barycenters of two points. prove that any conic passing through A. Prove that a conic containing more than one point is degenerate iﬀ it contains three distinct collinear points. a′′ ). λn ) be any n scalars in R. such that λi = 1. B. with λ1 + · · · + λn = 1. and let (a. The centroid of a triangle (a. be the barycentric coordinates of A′ . 1/3). C). Hint. . . . We say that a conic of homogeneous equation X ⊤ AX = 0 is nondegenerate if det(A) = 0. 1)}. 1/3). . . P have barycentric coordinates (bc. the conic is the union of two lines. Problem 13 (10 pts). a′ . (6. c′ . A′ . (0. 1 ≤ i ≤ n. (b) Given any aﬃne frame (A. . (c) Prove Pascal’s Theorem. . 0). λ ∈ R. c′′ a′ ). a′′ b′′ ). . are collinear in the sense of problem 9. y ∈ V . C. and show that M. c′′ b). N. (3. then V contains the entire line (1 − λ)x + λy. Given any six distinct points A. and (c. does it also take the centroid of ∆1 to the centroid of ∆2 ? Justify your answer. The equation X ⊤ AX = 0 is called the homogeneous equation of the conic. for . In the case where λ1 + · · · + λn = 1 and λi = 1. (c. an ) be any n ≥ 3 points in E. (b. prove that the equation of the conic becomes X ⊤ AX = 0. To simplify the notation. B ′ . B ′ . cb′ . and then the barycenter of a1 and b assigned the weights λ1 and λ2 + · · · + λn . C). P (in the sense of problem 7) of the pairs of lines (BC ′ . AC ′ ). and degenerate if det(A) = 0. b′′ ). From this. b′ . Show that there must be some i. and that X ⊤ AX is homogeneous of degree 2. b. . Use the aﬃne frame (A. 0). (CA′ . Show that the barycenter λ1 a1 + · · · + λn an can be obtained by ﬁrst determining the barycenter b of the n − 1 points a2 . and let E be an aﬃne space over K. Let (λ1 . C ′ respectively. CB ′ ). Problem 15 Extra Credit (20 pts). B. Deduce from the above that a nonempty subset V of E is an aﬃne subspace iﬀ whenever V contains any two points x. c′′ ). c′ a′ . . an assigned some appropriate weights.

ac) det( ab. Oc) det(Oa. prove that − − − → → → − − − → → → − − − → → → det(Ox. → det( ab. show that → − → → − − → → ac) det(− − ax. λ1 . and λi = 1. Ob. d). b. Oc) det(Oa. c. λ1 = → → → − − − . λ3 = → − → − → − . For any point x in the plane determined by (a. ad) det( ab. where (λ0 . c). Ob. ac) det( ab. Finally. c).2. and use the fact that −µ 1 + = 1. λ1 . where (λ0 . 1−µ 1−µ Problem 16 (20 pts). ab × → ac ab × → ac ab × → ac Given any point O not in the plane of the triangle (a. λ2 ) are the barycentric coordinates of x with respect to (a. where (λ0 . a. b. y ∈ V . → det( ab. − det(− − ad) ax. bc. → −. b. and assume that (a. − ax) det(xb. bc) λ1 = λ2 = λ0 = → − − → . λ1 . then V contains the entire line (1 − λ)x + λy. Ox) λ0 = − − − . For any point x ∈ A3 . note that µ−1 and (1 − µ)−1 both exist. if x = λ0 a + λ1 b + λ2 c + λ3 d. c. Prove that the barycenter of any n ≥ 3 points can be determined by repeated computations of barycenters of two points. d) are not coplanar. λ2 = → → → − − − . b). Ox. Ob. λ3 ) are the barycentric coordinates of x with respect to (a. → → − − . there is some µ ∈ K such that µ = 0 and µ = 1. (i) Let (a. When 2 = 0. Oc) det(Oa. ac. b. Hint. bd) λ0 = − → − . λ2 are certain signed ratios of the areas of the triangles (a. (ii) Let (a. Prove that a nonempty subset V of E is an aﬃne subspace iﬀ whenever V contains any two points x. c). (x. b. λ2 . ac. − ad) ax. ad) det( ab. c) are not collinear. and assume that (a. (x. λ2 = → → → − − − . PROBLEMS 55 1 ≤ i ≤ n and n ≥ 3. d) be four points in A3 . if x = λ0 a + λ1 b + λ2 c. λ ∈ K. c) are not collinear. show that the barycenter a1 + a2 + · · · + an can still be computed by repeated computations of barycenters of two points. c). and (x. ad) det( ab. show that n must be odd. b. c). and assume that (a. → − − → .10. → → → det(Oa. for 1 ≤ i ≤ n. ad) . c). b. if x = λ0 a + λ1 b + λ2 c. Since there is some µ ∈ K such that µ = 0 and µ = 1. det( ab. λ1 = → − → → − → − → − . b. b. Ob. ac. and that the problem reduces to computing the barycenter of three points in two steps involving two barycenters. Oc) det(Oa. λ2 ) are the barycentric coordinates of x with respect to (a. − − ac. λ1 + · · · + λn = 1. c). b. show that → → − − → → − − − ×− → ac ax → ab × ax xb × bc λ1 = − λ2 = − λ0 = − → −. c) be three points in A3 . For any point x ∈ A2 . → −. assume that the ﬁeld K contains at least three elements (thus. ac) Conclude that λ0 . c. but 2 = 1 + 1 = 0 is possible). ax) det(xb. c) be three points in A2 . b. λ1 . b. Ob. show that → − → − → − → → − → − → → − → → → ac. a. det( ab. Oc) (iii) Let (a. det( ab. b. ac.

. λ3 are certain signed ratios of the volumes of the ﬁve tetrahedra (a. . 4 1 x′ = x. am ). . . . − am ) a− 1 a− i a0 → 0a 0a Conclude that λi is the signed ratio of the volumes of the simplexes (a0 . . . . d). f3 deﬁned by √ 3 1 3 ′ x =− x− y+ . . Problem 17 (30 pts). 4 √ 3 . and assume that they are aﬃnely independent. . . b. deﬁne the following sequence of poygonal lines: S0 = L. . . c. c). BASICS OF AFFINE GEOMETRY Conclude that λ0 . a. . . 1 ≤ i ≤ m. . . 4 √4 √4 3 1 3 x− y+ . b. (x. . a. . . . and λ0 = − → a a1 → xa a− 2 det(− 1 .56 CHAPTER 2. . . d). − am ) a− 1 a0 − a− i a0 − a0 → 0a 0 for every i. . b. . λm ) are the barycentric coordinates of x with respect to (a0 . am ). . . b. if x = λ0 a0 + · · · + λm am . . f2 . (x. − x. . Can you describe geometrically what their action is (rotation. . − ai+1 . − ai−1 . . show that −→ −→ − det(− →. (x. − ai−1 . . translation. scaling?) (b) Given any polygonal line L. For any point x ∈ Am . . Sn+1 = f1 (Sn ) ∪ f2 (Sn ) ∪ f3 (Sn ). . . . 2 √ 3 1 ′ . − ai+1 . ai . . . . am ) and (a0 . − am ) a− 1 a0 − a→ a0 − a0 → 0a 0 λi = −→ a −→ − det(− →. . d). − am ) 1 − . and (x. c. . y′ = 4 4 4 √ 1 3 x =− x+ y− 4 4 √ 3 1 x− y+ y′ = − 4 4 ′ 3 . . d). where (λ0 . λ2 . y = y+ 2 2 (a) Prove that these maps are aﬃne. am ) be m+1 points in Am . . x. − →. . . . a. c. λ1 . . −→. det(− →. −→. . (iv) Let (a0 . . . . consider the three geometric transformations f1 . . . where 0 ≤ i ≤ m. With respect to the standard aﬃne frame for the plane A2 . . .

(b) Prove that the above set of maps is a group under composition. b2 Prove that such maps have a unique ﬁxed point c if θ = 2kπ. 0). 57 Can you ﬁgure out what Sn looks like in general? (you may want to write a computer program). a point of coordinates (x. PROBLEMS Construct S1 starting from the line segment L = ((−1. Consider the set of geometric transformations of the form z → az + b. with respect to the standard aﬃne frame. 0)). Describe what these maps do geometrically. (a) Prove that these maps are aﬃne. Problem 19 (20 pts).2. In the plane A2 . Do you think that Sn has a limit? Problem 18 (20 pts). The purpose of this problem is to study certain aﬃne maps of A2 . b are complex numbers such that a = 0. and where z = x − iy if z = x + iy. there is some angle θ for which either there is no ﬁxed point. (2) Consider aﬃne maps of the form x1 x2 → λ cos θ −λ sin θ µ sin θ µ cos θ x1 x2 + b1 . for all integers k. (1) Consider aﬃne maps of the form x1 x2 → cos θ − sin θ sin θ cos θ x1 x2 + b1 . (c) Consider the set of geometric transformations of the form z → az + b or z → az + b. Prove that if λµ = 1 and λ > 0. (3) Prove that the aﬃne map x1 x2 → 8 5 3 10 6 −5 2 5 x1 x2 + 1 1 . Describe what these maps do geometrically. (1. y) can be represented as the complex number z = x + iy. b2 Prove that such maps have a unique ﬁxed point iﬀ (λ + µ) cos θ = 1 + λµ. which means that with respect to a frame with origin c (the unique ﬁxed point). Prove that these maps are aﬃne and that this set of maps is a group under composition. these aﬃne maps are represented by rotation matrices.10. where a. or there are inﬁnitely many ﬁxed points. Show that these are rotations of center c. b are complex numbers such that a = 0. where a.

(i) What is the intersection of the plane H and of the solid triangle determined by a. b. . Let (c1 . there are no solutions or inﬁnitely many solutions. then F ix(f ) is an aﬃne subspace of E such that for every b ∈ F ix(f ). a0 ). . Let (E. ai+1 ) for every i with 1 ≤ i ≤ n − 1. Show that −− −→ − −− → −−→ − → − → Ωf (a) − Ωa = Ωf (Ω) + f (Ωa) − Ωa. . Investigate whether there is a closed polygon with n vertices (a1 . . Problem 22 (20 pts). When n is odd. (i) Prove that if F ix(f ) = ∅. cn ) be n ≥ 3 points in Am (where m ≥ 2). Clarify under which conditions there are inﬁnitely many solutions. b. Problem 20 (20 pts). for any two points Ω. b. F ix(f ) = b + Ker (f − id). c (the convex hull of a. Problem 21 (20 pts). BASICS OF AFFINE GEOMETRY (4) Prove that an arbitrary aﬃne map x1 x2 → a1 a2 a3 a4 x1 x2 + b1 b2 has a unique ﬁxed point iﬀ the matrix a1 − 1 a2 a3 a4 − 1 is invertible. and cn is the middle of the edge (an . . c.. be any distinct points in A3 . f (u) = u iﬀ u = 0. c)? . there is a unique solution. The parity (odd or even) of n plays an important role. (ii) Prove that F ix(f ) contains a unique ﬁxed point iﬀ Ker (f − id) = {0}. Let H be the plane of equation αx + βy + γz + δ = 0. an ) such that ci is the middle of the edge (ai . .e. − → i. . a ∈ E. Hint. E) be any aﬃne space of ﬁnite dimension For every aﬃne map f : E → E. . let F ix(f ) = {a ∈ E | f (a) = a} be the set of ﬁxed points of f . Hint. Let a. CHAPTER 2. and when n is even. and assume that they are not collinear.58 has no ﬁxed point.

.2. Matlab. Maple. (iii) (extra credit 20 pts) Implement the above algorithm so that the intersection can be visualized (you may use.10. Mathematica. c. b. PROBLEMS 59 (ii) Give an algorithm to ﬁnd the intersection of the plane H and of the triangle determined by a. etc).

60 CHAPTER 2. BASICS OF AFFINE GEOMETRY .

Part II Polynomial Curves and Spline Curves 61 .

62 .

which is used to determine which points lie on S and which do not..e. The two models just mentioned deﬁne S either in terms of 63 . with some degree of smoothness. Given that we adopt such a model. and unsuitable to tackle problems for which it may be necessary to modify certain parts and leave the other parts unchanged. or the 3D aﬃne space A3 ). Furthermore. when a shape S is modeled by a system of equations. such an approach is not modular. or several pieces joined together? We can model the entire shape S via a single system of equations. it is very important to know how to deal with these simpler building blocks eﬀectively. and render curves and surfaces. This is usually mathematically simpler. and the shape S is viewed either as the range of this function. or as the zero locus of this function (i. Oversimplifying a bit. since composite shapes are decomposed into simpler pieces. the shape S lives in some object space E of some dimension n (typically. manipulate. and it works well for very simple shapes. Later on. we view these equations as deﬁning a certain function F . a combinatorial explosion usually occurs which makes this approach impractical. s = 2 for a surface). the aﬃne plane A2 . Nevertheless.1 Why Parameterized Polynomial Curves? In order to be able to design. A single piece. possibly composite. The kind of model that we will adopt consists of specifying a curve or surface S in terms of a certain system of equations. In CAGD jargon. Parametric or Implicit Model? Mathematically. and by specifying how these pieces join together. the set of points that are mapped to “zero” under F ). and the shape has some dimension s ≤ n (s = 1 for a curve. we model composite shapes with splines. we will come back to splines.Chapter 3 Introduction to the Algorithmic Geometry of Polynomial Curves 3. But for complex shapes. Such design problems are usually handled by breaking the curve or surface into simpler pieces. and we will now concentrate on modelling a single curve or surface. we have to choose some mathematical model for deﬁning curves and surfaces. we face a number of questions which are listed below.

the function F : A → A2 deﬁned such that F1 (t) = 2t + 1. F2 (t) = t − 1. where E is of dimension n ≥ s. For example. we say that we have an implicit model . for some parameter value a ∈ P (possibly many parameter values). represents a straight line in the aﬃne plane.64 CHAPTER 3. where P is another space called the parameter space (typically P = A for a curve. where A2 denotes the aﬃne plane). a shape S of dimension s speciﬁed by a function F : P → E. In the ﬁrst case where F : P → E. where A denotes the aﬃne line.1: A parabola a function F : P → E. and in the second case where F : E → P . INTRODUCTION TO POLYNOMIAL CURVES Figure 3. or a function F : E → P . In the parametric model . we say that we have a parametric model . Thus. represents a parabola in the aﬃne plane. the parameter space P also has dimension s ≤ n. . The function F : A → A2 deﬁned such that F1 (t) = 2t. in which case P doesn’t have a standard name. Let us examine each model. and P = A2 for a surface. F2 (t) = t2 . is deﬁned as the range F (P ) of the function F . Every point lying on the shape S is represented as F (a).

represents a curve known as a twisted cubic. the function F : A2 → A3 deﬁned such that F1 (u. the function F : A → A3 deﬁned such that F1 (t) = t. v) = u2 − v 2 . it looks like a saddle (an inﬁnite one!). in the 3D aﬃne space A3 . For an example of a surface. F3 (u. represents what is known as an elliptic paraboloid . v) = 2u2 + v 2 . v) = v F3 (u. Roughly speaking. F2 (t) = t2 . represents what is known as a hyperbolic paraboloid .1. The function F : A2 → A3 deﬁned such that F1 (u. WHY PARAMETERIZED POLYNOMIAL CURVES? y 0 -1 -2 4 2 -2 1 x -1 0 1 2 65 2 z 0 -2 -4 Figure 3. F2 (u.2: A hyperbolic paraboloid For a fancier example of a space curve. F2 (u. F3 (t) = t3 .3. v) = u. v) = v. v) = u. .

where E is of dimension n ≥ s. we could assume that our spaces are deﬁned over the ﬁeld of complex numbers (or more generally. but does not help us much for visualizing the shape. In this case. represents what is known as the monkey saddle. This would have certain mathematical advantages. v) = u. v) = v. Thus. . since the equation x2 + y 2 = −1 has no real solutions. INTRODUCTION TO POLYNOMIAL CURVES 2 y 0 -1 -2 4 1 3 z 2 1 0 -2 -1 0 x 1 2 Figure 3. F3 (u. F (a) = 0}. Of course. since we are primarily interested in the real part of shapes (curves and surfaces). In the implicit model . the space P is a vector space. y) = x2 + y 2 + 1. an algebraically closed ﬁeld). that is. For example. the function F : A2 → A3 deﬁned such that F1 (u. a shape S of dimension s speciﬁed by a function F : E → P .66 CHAPTER 3. F deﬁnes the empty curve. v) = u3 − 3v 2 u. F2 (u. it possible that F −1 (0) = ∅. we will make the working assumption that we are only considering functions that deﬁne nonempty shapes. if F : A2 → A is the function deﬁned such that F (x. In order to avoid such situations. and it has some dimension d ≥ n − s. is deﬁned as the zero locus F −1 (0) of the function F . as the set of zeros of the function F : S = F −1 (0) = {a | a ∈ E.3: An elliptic paraboloid For a more exotic example.

WHY PARAMETERIZED POLYNOMIAL CURVES? y 0 -0. where implicit equations of shapes are directly available. the same line as deﬁned above parametrically).5 -1 2 -1 1 0. deﬁnes an ellipse in the aﬃne plane.3. the twisted cubic is deﬁned implicitly by the function F : A3 → A2 . As a simple example of a curve deﬁned implicitly. However. y) = 4y − x2 . The function F : A2 → A deﬁned such that F (x.1. it is not clear that it can be decided whether an arbitrary algebraic equation has real solutions or not. The function F : A2 → A deﬁned such that F (x. y ∈ A. z) = z − xy.5 1 67 1 z 0 -1 -2 Figure 3. for all x. These complications are one of the motivations for paying more attention to the parametric model. y. z) = y − x2 . since we immediately see that y = x2 /4 for every point on this parabola. y) = 2y − x + 3 for all x. deﬁnes the same parabola as the above parametric deﬁnition. the implicit model is more natural to deal with certain classes of problems. y) = 2x2 + y 2 − 1. y ∈ A. for all x. y.5 0 0. the function F : A2 → A deﬁned such that F (x. y ∈ A.5 x -0.4: A monkey saddle There are some serious problems with such an assumption. For example. deﬁnes a straight line (in fact. deﬁned such that F1 (x. Although this is not entirely obvious. . F2 (x.

This last example leads us to another major question: What Class of Functions for F ? Although trigonometric functions are perfectly ﬁne. y. we may want to use a simpler class of functions. dealing with rational fractions turns out to be largely reduced to dealing with polynomials. for computational (algorithmic) reasons. and it has the parametric representation x = cos θ. we can turn to the class of functions deﬁnable by rational funtions (fractions of polynomials). which is suﬃcient for most computational applications. INTRODUCTION TO POLYNOMIAL CURVES The unit sphere is deﬁned implicitly by the function F : A3 → A. Certainly. to yield shapes that are reasonably smooth. F2 = 0. we usually say that S is deﬁned by the set of equations F1 = 0.. y. z) = z − x2 + y 2 . y = sin θ. y. The class of functions deﬁnable by polynomials is very well-behaved. deﬁned such that F (x. When polynomials are insuﬃcient. z) = x2 + y 2 + z 2 − 1. . . . we should only consider continuous functions which are suﬃciently diﬀerentiable. instead of saying that S is the zero locus of the function F : E → P . As a matter of fact. z) = z − 2x2 − y 2 . For another familiar example.68 CHAPTER 3. Fd ).. The hyperbolic paraboloid discussed in the parametric model is deﬁned by the function F (x. the unit circle is deﬁned implicitly by the equation x2 + y 2 − 1 = 0. Fd = 0. If P has dimension d ≥ n − s. . using polynomials is rarely a restriction (continuous functions on reasonable domains can . since the function F corresponds to d scalar-valued functions (F1 . . or that S is the zero locus of the above system of equations. The elliptic paraboloid discussed in the parametric model is deﬁned by the function F (x. and turns out to be suﬃcient for most purposes. From a practical point of view.

the degree m = 2 or m = 3 is suﬃcient for the However. for a single piece. way beyond the scope of this course. and very diﬃcult subject. and for m = 3 for rational functions. WHY PARAMETERIZED POLYNOMIAL CURVES? 69 be approximated by polynomial functions). where the function F : E → P does not provide immediate access to points in S. In the parametric model. which may be very diﬃcult. It should also be noted that if we consider parametric curves F : A → E deﬁned by functions that are more general than polynomial or rational functions. given a parametric deﬁnition F : P → E for a shape S. then some unexpected objects show up as the traces of Actually. For example.1 This is called implicitization. since polynomials are diﬀerentiable at any order. The discrepancy shows up for m = 2 for polynomial functions. venerable. Thus. there are some subtleties regarding over which ﬁeld we view the curves or surfaces as being deﬁned.3. the degree could be quite high. This is not so for the implicit model. degree depends on how many pieces are involved and how complex each pieces joined small pieces. another venerable subject. we will be dealing with polynomial functions (and rational functions). as we shall see very soon. 1 . Nevertheless. for example. There are other advantages in dealing with the parametric model. by simply considering subsets of the parameter space. it can be shown that it is always possible to ﬁnd an algebraic implicit deﬁnition G for S. and an even more modest use of very elementary notions of algebraic geometry. Having decided that we will use polynomial (or rational) functions. What Degree for F ? In most practical applications involving many small together (splines). In the implicit model. This is a fascinating. It should be noted that it is not always possible to go from an implicit algebraic deﬁnition G : E → P for S to a parametric algebraic deﬁnition F : P → E for S. studying shapes S deﬁned by systems of parametric polynomials (or rational fractions) is in some sense subsumed by diﬀerential geometry. the choice of piece is. Given a point b ∈ E. In general. it is often useful to ﬁnd an implicit deﬁnition G : E → P for S. studying shapes S deﬁned by systems of polynomial equations is essentially the prime concern of algebraic geometry. it is easier to “carve out” portions of the shape. functions that are only continuous. the function F : P → E provides immediate access to points on the shape S: every parameter value a ∈ P yields a point F (a) lying on the shape S. we will focus primarily on the study of shapes modelled parametrically. In the case where F is given by rational functions. Because the study of shapes modelled as zero loci of polynomial equations is quite diﬃcult. We will make a very modest use of elementary notions of diﬀerential geometry. In fact. what we use primarily is some elements of multilinear algebra. there is one more question. and is done using the algebraic concept of a resultant. Bold readers are urged to consult Fulton [37] or Harris [41]. to determine whether b ∈ S usually requires solving a system of algebraic equations.1. Also.

x2 y 2 + 2 =1 a2 b (Without loss of generality. a2 b Ellipses. Hyperbolas. Let us begin with the parabola.70 CHAPTER 3. It is very easy to see that straight lines are also deﬁnable in the parametric model. Except for some degenerate cases. This is a good motivation for assuming that the functions F are suﬃciently diﬀerentiable. For any point M in the plane. 0) is called the focus of the parabola. Peano and Hilbert (among others) showed that there are space ﬁlling curves. Polynomials certainly qualify! Before we launch into our study of parametric curves. y) is a polynomial in x. y. if H is the intersection of the perpendicular through M to D. we believe that it may be useful to review brieﬂy what kind of plane curves are deﬁned in the implicit model. the conics can be classiﬁed in three types (after some suitable change of coordinates): Parabolas. INTRODUCTION TO POLYNOMIAL CURVES curves. For m = 1. y) = 0. and the line D of equation x = −a (parallel to the y-axis). and AB denotes the Euclidean length of the line segment AB.2 The above deﬁnition of the conics assumes a Euclidean structure on the aﬃne plane. and we brieﬂy mention the classical bifocal deﬁnition. we can assume a ≥ b). where f (x. 1] → A2 whose trace is the entire unit square (including its interior)! See the problems. then the parabola of equation y 2 = 4ax is the set of points in the plane such that MH = MF . The general curve of degree 2 is deﬁned by an equation of the form ax2 + bxy + cy 2 + dx + ey + f = 0. which deﬁnes a straight line. we have the equation ax + by + c = 0. of equation The above deﬁnitions are algebraic.e. The point F of coordinates (a. with a plane). Such an equation deﬁnes a (plane) conic (because it is the curve obtained by intersecting a circular cone. is called the directrix of the parabola. what sort of curves are deﬁned by polynomial equations f (x.. that is. It is possible to give more geometric characterizations of the conics. i. continuous curves F : [0. with real coeﬃcients. of equation y 2 = 4ax. of total degree m ≤ 2. 2 . of equation x2 y 2 − 2 = 1. For example.

0). make two knots at distance 2a from each other. . and drive a nail through each knot in such a way that the nails are positioned on the foci F and F ′ . 0) and (c. F ′ is a focus of the ellipse. Each of F. using a stick. WHY PARAMETERIZED POLYNOMIAL CURVES? D H M 71 F Figure 3.1. one can take a string. on the ground. let c = a2 − b2 (so that a2 = b2 + c2 ). the parabola of equation y 2 = 4x has focus F = (1. and directrix D of equation x = −1: √ In the case of an ellipse. Indeed. since we are assuming that a ≥ b.5: A Parabola For example. Let F and F ′ be the points of coordinates (−c. one can draw the ellipse. 0). Then. the ellipse deﬁned by x2 y 2 + 2 =1 a2 b is the set of points in the plane such that MF + MF ′ = 2a (note that c ≤ a). This is the “gardener’s deﬁnition” of an ellipse.3. by moving the stick along the string (perpendicular to the ground) in such a way that the string is kept stiﬀ. Then.

and F ′ = (4. 0) and (c. we let c = a2 + b2 (so that c2 = a2 + b2 ). the hyperbola x2 − y 2 = 1 √ √ √ is such that a = b = 1. √ In the case of an hyperbola. Each of F.6: An Ellipse For example. a = b. the ellipse x2 y 2 + =1 25 9 √ √ √ is such that a = 5. the constant c e= >0 a .72 CHAPTER 3. Let F and F ′ be the points of coordinates (−c. corresponds to a circle. parabola. 0). For example. The foci are F = (−4. 0): The case where c = 0. that is. or hyperbola (where c > 0). and thus. c = a2 + b2 = 1 + 1 = 2. and thus c = a2 − b2 = 25 − 9 = 16 = 4. and the foci are F = √ √ (− 2. INTRODUCTION TO POLYNOMIAL CURVES M F F′ Figure 3. 0). 0). Then. and F ′ = ( 2. 0): In the case of an ellipse. F ′ is a focus of the hyperbola. the hyperbola deﬁned by x2 y 2 − 2 =1 a2 b is the set of points in the plane such that | MF − MF ′ | = 2a (note that c > a). b = 3.

y) is a homogenous polynomial of total degree i. 2. and ϕ0 is a scalar. 3. y) + ϕ0 = 0. Berger or Pedoe. all the conics can be deﬁned parametrically using rational fractions. and hyperbolas. y) + ϕ2 (x. with i = 1. things become a lot tougher! The general curve of degree 3 is deﬁned by an equation of the form ϕ3 (x. For more details. We will see very soon that only the parabolas can be deﬁned parametrically using polynomials. There is also a monofocal deﬁnition of ellipses. y) = 0. The curve deﬁned by such an equation is called a (plane) cubic. and the equation of the cubic becomes ϕ3 (x.3.1. the reader is referred to standard geometry texts. y) + ϕ1 (x. we can pick any point of the cubic as the origin.7: A Hyperbola is called the exentricity of the conic. For m = 3. It can be shown that the cubics that have rational representations are characterized by the fact that ϕ1 (x. In general. Since we assumed that we are only considering nonempty curves. using polynomials). We will also characterize those cubics that can be deﬁned parametrically in terms of polynomials. parabolas. a plane cubic cannot be deﬁned parametrically using rational functions (and a fortiori. In this case ϕ0 = 0. y) + ϕ1 (x. . y) + ϕ2 (x. On the other hand. for example. WHY PARAMETERIZED POLYNOMIAL CURVES? 73 M F F′ Figure 3. involving the exentricity. where each ϕi (x. y) is the null polynomial.

Recall that every point t ∈ A is expressed as t = (1 − t)0 + t1 in terms of the aﬃne basis (0. s]) in E is called the trace of the polynomial curve segment F [r. This decision. e e 0 1 1 n n where t = (1 − t)0 + t1. 1). we will need to join curve segments of possibly diﬀerent degrees. a polynomial curve is obtained by bending and twisting the aﬃne line A using a polynomial map. b0 ). . the trace of F reduces to the single point (a0 . Intuitively. such that for every t ∈ A. A parameterized polynomial curve is deﬁned as follows. As a matter of fact. INTRODUCTION TO POLYNOMIAL CURVES After there general considerations. and every Fi (X) is a polynomial in R[X] of degree ≤ m. the set of points F ([r. The set of points F (A) in E is called the trace of the polynomial curve F . a (parameterized) polynomial curve segment F [r. will in fact be convenient later on for CAGD applications. Fn deﬁning a polynomial curve F of degree m. Given any aﬃne frame (r. sometimes called the geometric curve associated with F : A → E. it is preferable to consider the parameter space R as the aﬃne line A. . .1. which may seem unusual. Otherwise. For reasons that will become clear later on. A polynomial curve F of degree ≤ 1 is of the form If both a1 = b1 = 0. We begin with m = 1. Deﬁnition 3. many diﬀerent parametric representations may yield the same trace. − )) for E. We will now try to gain some insight into polynomial curves by determining the shape of the traces of plane polynomial curves (curves living in E = A2 ) of degree m ≤ 3. . and write F (t) instead of F (t). it is now time to focus on the parametric model for deﬁning curves. we view t ∈ A as the real number t ∈ R. blossoming. and similarly. It should be noted that if d is the maximum degree of the polynomials F1 . (−1 . . and we can eliminate t between x and y. a1 = 0 or b1 = 0. we are more interested in the trace of a curve than in its actual parametric representation. s] → E of a polynomial curve F : A → E of degree at most m. s]. 1 ≤ i ≤ n.74 CHAPTER 3.1. y(t) = F2 (t) = b1 t + b0 . we will introduce a major technique of CAGD. Also. a (parameterized) polynomial curve of degree at most m is a map e en F : A → E. . and we begin with a rigorous deﬁnition. 3. and it will be convenient to “raise” the degree of some of these curve segments to a common degree. For example. s) for A with r < s.2 Polynomial Curves of degree 1 and 2 x(t) = F1 (t) = a1 t + a0 . . Given any aﬃne space E of ﬁnite dimension n and any aﬃne frame → → (a0 . For simplicity of notation. On the way. → → F (t) = a + F (t)− + · · · + F (t)− . s] of degree (at most) m is the restriction F : [r. getting the implicit equation a1 y − b1 x + a0 b1 − a1 b0 = 0. then d = m is possible. and it is only required that d ≤ m. . in most cases. .

If a1 b2 = a2 b1 . ρ ρ a0 a2 + b0 b2 a1 a2 + b1 b2 t+ .3. there is a mismatch between the implicit representation and the parametric representation. to suppress the term of degree 1 in t in y1 (t). y1 (t) = ρt2 + ρ ρ =R x . whereas the parametric representation yields the upper half line. let ρ = a2 + b2 . with t0 = − (a1 a2 +b1 b2 ) . and 2 2 consider the matrix R given below: R= b2 ρ a2 ρ − aρ2 b2 ρ Under the change of coordinates x1 y1 we get x1 (t) = a1 b2 − a2 b1 a0 b2 − a2 b0 t+ . it is convenient to make a change of parameter. before doing so. We will come back to this point later on. that is. If a1 b2 − a2 b1 = 0. y The eﬀect of this rotation is that the curve now “stands straight up” (since ρ > 0). Since we already considered the case where a2 = b2 = 0. t= u− 2ρ2 . POLYNOMIAL CURVES OF DEGREE 1 AND 2 which is the equation of a straight line. then we can eliminate t between x1 and y1 . we can always assume that either a2 = 0 (or b2 = 0). Note that the 2ρ2 implicit equation a0 b2 − a2 b0 x1 = ρ gives too much! The above equation yields the entire line.2. quadratic curves. A polynomial curve F of degree ≤ 2 is of the form x(t) = F1 (t) = a2 t2 + a1 t + a0 . Thus. If a2 = 0 and b2 = 0. However. We ﬁrst show that by a change of coordinates (amounting to a rotation). by letting (a1 a2 + b1 b2 ) . 75 Let us now consider m = 2. then we have a degenerate case where x1 (t) is equal to a constant and y1 (t) ≥ y1 (t0 ). let us assume that a2 = 0 or b2 = 0. y(t) = F2 (t) = b2 t2 + b1 t + b0 . which corresponds to a half line.

hyperbolas) are precisely the curves deﬁnable as rational curves of degree 2 (parametric deﬁnitions involving rational fractions of quadratic polynomials). with b > 0. the previous degenerate case corresponds to b a2 Conversely. it will be shown later that the conics (parabolas ellipses. Finally. a2 This is a parabola.76 CHAPTER 3. INTRODUCTION TO POLYNOMIAL CURVES Then. since by an appropriate change of coordinates. every parabola can be deﬁned as the parametric polynomial curve X(u) = u. ellipses and hyperbolas are not deﬁnable as polynomial curves of degree 2. Y (u) = bu2 . it can be shown easily that ellipses and hyperbolas are not deﬁnable by polynomial curves of any degree. y1 (u − µ) = bu2 + b′0 . Y (u) = au2 . In summary. letting X(u) = x1 (u − µ) − a′0 . F2 (t) = t2 . every parabola is deﬁned by the implicit equation Y = aX 2 . In fact. On the other hand. with b > 0. Y (u) = y1 (u − µ) − b′0 . The corresponding implicit equation is Y = b 2 X . Thus. passing through the origin. The diagram below shows the parabola deﬁned by the following parametric equations F1 (t) = 2t. and we get a parametric representation of the form X(u) = au. the nondegenerate polynomial curves of true degree 2 are the parabolas. Intuitively. we can change coordinates again (a translation). . = ∞. we have a parametric representation of the form x1 (u − µ) = au + a′0 . and having the Y -axis as axis of symmetry.

x2 (t) = a2 t + b2 . Observe that each function t → ai t + bi is aﬃne. Given any aﬃne frame (r. since every polynomial has roots (possibly complex numbers). where r = s. 3. Thus. the mismatch between the parametric representation and the implicit representation can be resolved.3. if we view our curves as the real trace of complex curves. F : A → A3 is itself an aﬃne map. we must have t = (1 − λ)r + λs = r + λ(s − r). where i = 1. s) for A. every t ∈ A can be writen uniquely as t = (1 − λ)r + λs.8: A parabola Remark: In the degenerate case of a half line. The general philosophy is to linearize (or more exactly. let us begin with straight lines. 2. We now show that there is another way of specifying quadratic polynomial curves which yields a very nice geometric algorithm for constructing points on these curves. multilinearize) polynomials. is of the form x1 (t) = a1 t + b1 . the mismatch goes away. In this case. The parametric deﬁnition of a straight line F : A → A3 . 3.3 First Encounter with Polar Forms (Blossoming) As a warm up. FIRST ENCOUNTER WITH POLAR FORMS (BLOSSOMING) 77 Figure 3. In fact.3. x3 (t) = a3 t + b3 . .

we have −− −→ −−− −− −→ −−− F (r)F (t) = λF (r)F (s). as illustrated in the following diagram. we know that −− −→ −− −→ −− −→ bF (t) = (1 − λ)bF (r) + λbF (s). s−r Now. . and t = 0.78 and so. at “ s−r of the way from t−r F (r)” (in particular. given any aﬃne frame (r. then F (0. We now show how to turn a quadratic polynomial into a biaﬃne map. maps that are aﬃne in each of their arguments. and the ratio of interpolation λ. Thus. Furthermore. For this. in the case of an aﬃne map F : A → A3 . since F is aﬃne.25. = (1 − λ) F (r) + λ F (s). that is. we have F (t) = F ((1 − λ)r + λs). This means that F (t) is completely determined by the two points F (r) and F (s). since F (t) is the barycenter of F (r) and F (s) assigned the weights 1 − λ and λ. it is ﬁrst necessary to turn the polynomials involved in the deﬁnition of F into multiaﬃne maps. F (t) is indeed between F (r) and F (s). INTRODUCTION TO POLYNOMIAL CURVES (and 1 − λ = s−t ). Substituting the value of λ in the above. to determining the point F (t) on a polynomial curve F . if r = 0. t−r which shows that F (t) is on the line determined by F (r) and F (s). for every point b. For example. and picking b = F (r). when r ≤ t ≤ s. λ = t−r s−r CHAPTER 3. we have −− −→ −−− F (r)F (t) = t−r s−r −− −→ −−− F (r)F (s). where r = s. s = 1. where We would like to generalize the idea of determining the point F (t) on the the line deﬁned by F (r) and F (s) by an interpolation step. by several interpolation steps from some (ﬁnite) set of given points related to the curve F . s) for A. at “ s−r of the way from F (r)”). every point F (t) on the line deﬁned by F is obtained by a single interpolation step F (t) = s−t s−r F (r) + t−r s−r t−r s−r = 1: 3 F (s).25) is a fourth of the way from F (0) between F (0) and F (1).

but this is not true. X). It would be tempting to say that f1 is linear in each of x1 and x2 .9: Linear Interpolation As an example. X). We say that a function f of two arguments is symmetric iﬀ f (x1 . consider the polynomial F (X) = X 2 + 2X − 3. simply form f (x1 . x2 ) = x1 x2 + x1 + x2 − 3 is called the (aﬃne) blossom. x2 ) = f (x2 . To make f1 (and f2 ) symmetric. x1 ) = x1 x2 + x1 + x2 − 3. for all x1 . for all X ∈ R.3. and of course. Note that f2 (x1 . x2 ) = x1 x2 + 2x2 − 3 is also biaﬃne. x2 .3. 2 The symmetric biaﬃne function f (x1 . x1 ). It would be nicer if we could ﬁnd a unique biaﬃne function f such that F (X) = f (X. due to the presence of the term 2x1 and of the constant −3. For an arbitrary polynomial F (X) = aX 2 + bX + c . for all X ∈ R. for all X ∈ R. in the sense that F (X) = f1 (X. FIRST ENCOUNTER WITH POLAR FORMS (BLOSSOMING) F (s) 79 F (t) F (r) Figure 3. x2 ) = f1 (x1 . of F . X). and F (X) = f2 (X. Observe that the function of two variables f1 (x1 . It turns out that requiring f to be symmetric is just what’s needed. x2 ) + f1 (x2 . but f1 is also aﬃne in each of x1 and x2 . and f1 is only biaﬃne. such a function should satisfy some additional property. or polar form. x2 ) = x1 x2 + 2x1 − 3 gives us back the polynomial F (X) on the diagonal.

r) + ((1 − λ1 )λ2 + λ1 (1 − λ2 )) f (r. s) . called control points. The coeﬃcients of f (r. every t ∈ A can be expressed uniquely as a barycentric combination of r and s. X). assume for simplicity that we have a quadradic curve F : A → A3 . t2 ) = f ((1 − λ1 )r + λ1 s. We can compute their polar forms f1 . s). Since λi = ti −r . for all X ∈ R. F3 . r) s−r s−r t2 − r t1 − r s − t1 + + s−r s−r s−r t1 − r t2 − r + f (s. assume that r < s. s) are obviously symmetric biaﬃne functions. This is all ﬁne. and we get a symmetric biaﬃne map f : A2 → A3 . x2 ) = ax1 x2 + b +c 2 such that F (X) = f (X. say t = (1 − λ)r + λs. we get s − t1 s − t2 f (r. or blossom. we obtain a unique symmetric. As we said already. since f being biaﬃne preserves barycentric combinations in each of its arguments. that is. (1 − λ2 )r + λ2 s) + λ1 f (s. This had to be expected. Let us compute f (t1 . s) and f (s. but this is not necessary). simply using three linear interpolation steps. Since f is symmetric and biaﬃne. Thus. such that F (X) = f (X. f2 . x2 is irrelevant). s−r s−r f (t1 . (1 − λ2 )r + λ2 s). s) + λ1 λ2 f (s. there is a nice algorithm for determining any point on the curve from these control points. F2 . s−r for i = 1. given by three quadratic polynomials F1 . of F . where λ ∈ R. X). f3 as we just explained. INTRODUCTION TO POLYNOMIAL CURVES of degree ≤ 2. (1 − λ2 )r + λ2 s) = (1 − λ1 )(1 − λ2 ) f (r. r). and that furthermore. we can show that every quadratic curve is completely determined by three points. as it is easily veriﬁed by expanding the product (1 − λ1 + λ1 )(1 − λ2 + λ2 ) = 1.80 CHAPTER 3. Let us pick an aﬃne frame for A. 2. Note that the fact that f is symmetric allows us to view the arguments of f as a multiset (the order of the arguments x1 . and they add up to 1. t2 ) = s − t2 s−r f (r. s). (1 − λ2 )r + λ2 s) = (1 − λ1 ) f (r. we get f (t1 . called the polar form. but what have we gained? What we have gained is that using the fact that a polar form is symmetric and biaﬃne. for all X ∈ A. biaﬃne map x1 + x2 f (x1 . t2 ) = f ((1 − λ1 )r + λ1 s. s ∈ A. two distinct points r. f (r. (we can if we wish.

4 First Encounter with the de Casteljau Algorithm Let us assume that we have a quadratic polynomial curve F given by its polar form f : A2 → A3 . s) = b. 1). The polynomials (1 − t)2 . and that f (r. s) in A3 . 1) + t2 f (1.3. r) = a. or B´zier control points. we get F (t) = f (t. we showed that every symmetric biaﬃne map f : A2 → A3 is completely determined by the sequence of three points f (r. Thus. Then. r). b. (1 − λ2 )r + λ2 s). that we performed above. t) = (1 − t)2 f (0. F (t) is also determined by the control points f (0. the map (t1 . the polynomial function corresponding to f (t1 . f (r. 1). t) is computed as follows: . known as the de Casteljau algorithm. Incidently. we will show how to construct geometrically the point F (t) = f (t. s) and b2 = f (s. t2 ) = f ((1 − λ1 )r + λ1 s. Let t = (1 − λ)r + λs. Conversely. f (t. r). s) = c. and thus. Given any t ∈ A. 1). b1 = f (r. f (r. However. then t1 = λ1 and t2 = λ2 . it is better to observe that the computation of f (t1 . it is clear that given any sequence of three points a. c ∈ A3 . or equivalently as we just showed. b1 . s) and f (s. 0). b2 . are called control points. can be turned into an algorithm. f (s. The points f (r. e and as we shall see. If we let r = 0 and s = 1. r). t) on the polynomial curve F . s). t2 ) → s − t2 s − t1 a s−r s−r s − t1 t2 − r + + s−r s−r t2 − r t1 − r c + s−r s−r t1 − r s−r s − t2 s−r b is symmetric biaﬃne. by the three control points b0 = f (r. and f (1. 2(1 − t)t. this also shows that a quadratic curve is necessarily contained in a plane. 0) + 2(1 − t)t f (0. the plane determined by the control points b0 . they play a major role in the de Casteljau algorithm and its extensions. where r = s are elements of A. s). t2 are known as the Bernstein polynomials of degree 2. f (r. 3. s) and f (s. f (0. t2 ) being obtained by letting t1 = t2 = t. FIRST ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 81 Thus.4. and the Bernstein polynomials.

from the points f (t. During the ﬁrst stage. but f (r. t) 2 f (t. s) 1 f (r. the algorithm consists of a diagram consisting of two polylines. . t) is computed from the two control points f (r. Note that the two control points f (r. f (r. s) f (s. the ﬁrst one consisting of the two line segments (f (r. t) = f (t. the ratio of interpolation also being t−r λ= . r) + λ f (r. s) is computed from the two control points f (r. r) = F (r) and f (s. s) = f ((1 − λ)r + λs. s). s). Geometrically. and f (t. (1 − λ)r + λs) = (1 − λ) f (t. by linear interpolation. s) and f (t. s) in a moment. t) f (t. where f (r. r) and f (r. s) and f (s. then only convex combinations are constructed. If r ≤ λ ≤ s. INTRODUCTION TO POLYNOMIAL CURVES 0 f (r. f (t. s) = (1 − λ) f (r. r) and f (t. r). r). t) = f (r. and the second one of the single line segment (f (t. t) = f (t. s) = F (s) are on the curve. during the second stage. We will give a geometric interpretation of the polar value f (r. s) is not. we obtain the point F (t) on the curve. s) computed during the ﬁrst stage. λ= s−r Since by symmetry. r). s−r Thus. s). s). s)). f (r. s). by three linear interpolation steps.82 CHAPTER 3. we compute the point f (t. f (s. r) f (r. the ratio of interpolation being t−r . r) + λ f (t. s)). s)) and (f (r. s) + λ f (s. s) The algorithm consists of two stages. (1 − λ)r + λs) = (1 − λ) f (r. we compute the two points f (r.

t2 ): . on the curve F . FIRST ENCOUNTER WITH THE DE f (r. F2 (t) = −t2 .3. s = 1. The de Casteljau algorithm can also applied to compute any polar value f (t1 . s) with the desired point f (t. The ﬁrst polyline is also called a control polygon of the curve. assuming diﬀerent control points. t) f (t. when t is outside [r. t) determined by λ. The polar forms are f1 (t1 . Each polyline given by the algorithm is called a shell . we still obtain two polylines and a de Casteljau diagram. s) CASTELJAU ALGORITHM 83 f (t. This example also shows the construction of another point on the curve.4. The example below shows the construction of the point F (t) corresponding to t = 1/2. r) Figure 3. f2 (t1 . for r = 0. The parabola of the previous example is actually given by the parametric equations F1 (t) = 2t. Note that the shells are nested nicely. t2 ) = −t1 t2 . t2 ) = t1 + t2 . Actually. s].10: A de Casteljau diagram f (s. r) f (t. and the resulting diagram is called a de Casteljau diagram. s) f (r. but the shells are not nicely nested.

r) and f (r. s) = f ((1 − λ1 )r + λ1 s. r) f (r. t) f (t. by linear interpolation. s) is computed from the two control points f (r. s) CHAPTER 3. s) 2 f (t1 . we use the scalar λ1 such that t1 = (1 − λ1 )r + λ1 s. where f (r. to compute . s) f (t1 . t1 ) = f (r. t1 ) is computed from the two control points f (r. r) + λ2 f (t1 . s) F (r) = f (r. t2 ) = f (t1 . r) + λ1 f (r. s). s). s) and f (s. INTRODUCTION TO POLYNOMIAL CURVES f (r. the ratio of interpolation being t1 − r . t2 ) The only diﬀerence is that we use diﬀerent λ’s during each of the two stages.11: The de Casteljau algorithm 1 f (r. to compute the two points f (r. s) Figure 3. During the ﬁrst stage. s) f (s. t1 ) f (r. and f (t1 . r) F (s) = f (s. s) and f (t1 . s). s) = (1 − λ1 ) f (r. s). (1 − λ2 )r + λ2 s) = (1 − λ2 ) f (t1 . s) + λ1 f (s. we use the scalar λ2 such that t2 = (1 − λ2 )r + λ2 s. During the second stage. (1 − λ1 )r + λ1 s) = (1 − λ1 ) f (r. λ1 = s−r f (t1 . t) f (t.84 f (r.

or ay − 2btx + abt2 = 0. can be viewed as meaningful labels for the node of de Casteljau diagrams. we need to look closely at the intersection of two tangents to a parabola. s) computed during the ﬁrst stage. There is a natural generalization of this nice geometric interpretation of polar forms to cubic curves. a(y − bt2 ) − 2bt(x − at) = 0. r) = f (r.4. 2 and we easily ﬁnd that x=a t1 + t2 . t2 ). but unfortunately. y(t)) is x′ (t)(y − y(t)) − y ′ (t)(x − x(t)) = 0. 2 y = bt1 t2 . the ratio of interpolation being t2 − r λ2 = . it does not work in general. that is. The equation of the tangent to the parabola at (x(t). A nice geometric interpretation of the polar value f (t1 . s−r Thus. FIRST ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 85 from the points f (t1 . we can say that the polar form f (t1 . It is in this sense that the term blossom is used: by forming the blossom of the polynomial function F . Thus. We recommend reading de Casteljau’s original presentation in de Casteljau [23]. Turning this property around. Let us consider the parabola given by x(t) = at y(t) = bt2 . the coordinates of the point of intersection of any two tangents to the parabola are given by the polar forms of the polynomials expressing the coordinates of the parabola. t1 ) and f (t1 . some hidden geometric information is revealed. t2 ) of the polynomial function deﬁning a parabola gives precisely the intersection point of the two tangents at F (t1 ) and F (t2 ) to the parabola. also called blossom values. For this. the polar values f (t1 .3. . t2 ) can be obtained. To ﬁnd the intersection of the two tangents to the parabola corresponding to t = t1 and t = t2 . we solve the system of linear equations ay − 2bt1 x + abt2 = 0 1 ay − 2bt2 x + abt2 = 0.

0). The control points b0 = f (0. also has the property that the line determined by f (r. t) is the tangent at F (t) (this will be shown in section 5. 1). is the middle of the line segment joining the middle of the segment (b0 . f2 (t1 . s) is the tangent at F (s). 1/4) on the parabola. have coordinates: b0 = (0. y(t) = F2 (t) = b3 t3 + b2 t2 + b1 t + b0 . 3. and b2 = f (1. s) is the tangent at F (r). 0). Let us give an example of the computation of the control points from the parametric deﬁnition of a quadratic curve. in addition to having the nice property that the line determined by F (r) and f (r. let us assume that a3 = 0 or b3 = 0. t2 ) = t1 t2 . INTRODUCTION TO POLYNOMIAL CURVES and when it does. t2 ) = t1 + t2 . and that the line determined by F (s) and f (r.4). t) and f (s.5 Polynomial Curves of Degree 3 x(t) = F1 (t) = a3 t3 + a2 t2 + a1 t + a0 .86 CHAPTER 3. cubic curves. A polynomial curve F of degree ≤ 3 is of the form Since we already considered the case where a3 = b3 = 0. b1 = (1. 0). For t = 1/2. The polar forms of F1 and F2 are f1 (t1 . Example. to the middle of the segment (b1 . 1). for curves not contained in a plane (it involves intersecting the osculating planes at three points on the curve). The de Casteljau algorithm. b1 ). we ﬁrst show that by a change of coordinates . 1). b2 ). b2 = (2. F2 (t) = t2 . that is. b1 = f (0. Let us now consider m = 3. the point F (1/2) = (1. Consider the parabola given by F1 (t) = 2t. As in the case of quadratic curves.

a2 b3 = a3 b2 . Case 1.5. we can always assume that either a3 = 0 (or b3 = 0). let ρ = a2 + b2 . since its leading term is ρt3 . we get y x1 (t) = a2 b3 − a3 b2 2 a1 b3 − a3 b1 a0 b3 − a3 b0 t + t+ . and we get the straight line a0 b3 − a3 b0 X= . and consider the matrix R given below: 3 3 R= b3 ρ a3 ρ − aρ3 b3 ρ Under the change of coordinates x1 y1 =R x . then x1 (t) is a constant and y1 (t) can be arbitrary. Then we have a degenerate case where x1 (t) is equal to a linear function. ρ ρ ρ a0 a3 + b0 b3 a2 a3 + b2 b3 2 a1 a3 + b1 b3 t + t+ . y1 (t) = ρt3 + ρ ρ ρ The eﬀect of this rotation is that the curve now “stands straight up” (since ρ > 0). ρ .12: A parabola (amounting to a rotation). If a3 = 0 and b3 = 0.3. POLYNOMIAL CURVES OF DEGREE 3 87 F (1/2) b0 b1 b2 Figure 3. If a1 b3 = a3 b1 also holds.

and the tangent at the origin is the X-axis. we can suppress the term b′ X 2 by the change of coordinates b′ x = X − ′. where Y = y − c. Y (X) is increasing when X varies from −∞ to X1 . and increasing again when X varies from X2 to +∞. Also. a2 b3 − a3 b2 = 0. then Y ′ (X) is always strictly positive. If b = 0. If b < 0. The curve has an S-shape. If b > 0. Its shape will depend on the variations of sign of its derivative Y ′ = 3aX 2 + b. the other case being similar. the origin is an inﬂexion point. and Y ′′ (0) = 0. decreasing when X varies from X1 to X2 . and we get an implicit equation of the form y = a′ x3 + b′ x2 + c′ x + d′ .88 CHAPTER 3. we get the implicit equation Y = aX 3 + bX. then Y ′ (X) has two roots. 3a X2 = − −b . then Y ′ (0) = 0. Then. let us assume that a1 b3 − a3 b1 > 0. It has a ﬂat S-shape. and 0 is a double root of Y ′ . 3a Then. The curve still has a ﬂat S-shape. which means that the origin is an inﬂexion point. By one more change of coordinates. with a > 0. with a′ > 0. and Y (X) is strictly increasing with X. In all three cases. X1 = + −b . 3a We get an implicit equation of the form y = aX 3 + bX + c. This is the reason why we get a parametric representation. The following diagram shows the cubic of implicit equation y = 3x3 − 3x. the slope b of the tangent at the origin being negative. Case 2. . with a > 0. INTRODUCTION TO POLYNOMIAL CURVES If a1 b3 − a3 b1 = 0. we can eliminate t between x1 (t) and y1 (t). This curve is symmetric with respect to the origin. the slope b of the tangent at the origin being positive. As in the case of quadratic curves. note that a line parallel to the Y -axis intersects the curve in a single point. since Y ′′ = 6aX.

and by a change of coordinates. y b3 x1 + b1 a2 2 . we can make the constant terms disapear.3. with b3 > 0. We now apply a bijective aﬃne transformation that will suppress the term b2 t2 in y(t). We can now eliminate t between x1 (t) and y1 (t) as follows: ﬁrst. Consider the matrix S below S= and the change of coordinates x1 y1 We get x1 (t) = a2 t2 . . y(t) = F2 (t) = b3 t3 + b2 t2 + b1 t.5. which yields parametric equations of the form x(t) = F1 (t) = a2 t2 . square y1 (t). 2 and express t2 in terms of x1 (t) from x1 (t) = a2 t2 . First. with b3 > 0. getting (y1(t))2 = a2 t2 (b3 t2 + b1 )2 . getting the implicit equation (y1 ) = a2 x1 2 1 0 −b2 a2 =S x . POLYNOMIAL CURVES OF DEGREE 3 89 Figure 3.13: “S-shaped” Cubic In this case. as in the quadratic case. y1 (t) = a2 t(b3 t2 + b1 ). by a change of parameter. we say that we have a nondegenerate cubic (recall that ρ > 0). we can suppress the term of degree 1 in t in x1 (t).

we can show the following lemma. 0) is called a singular point of the curve deﬁned by the implicit equation. The origin (X. b3 b1 b2 y=Y − . Proof. Given any nondegenerate cubic polynomial curve F . It is straightforward and not very informative. b3 the trace of F satisﬁes the implicit equation a2 b2 a2 Y − X b3 b3 2 + b1 a2 2 X = X 3. 0).1. y(t) = F2 (t) = b3 t3 + b2 t2 + b1 t. if b1 ≤ 0. In fact.e. any polynomial curve of the form x(t) = F1 (t) = a2 t2 . b3 b1 b2 y=Y − . We leave it as an exercise. and when b1 > 0.5.. b3 and we get the implicit equation a2 b2 a2 Y − X b3 b3 2 + b1 a2 2 X = X 3. excluding the origin (X. Then.90 CHAPTER 3. is equal to the trace of the polynomial curve F . Lemma 3. as it will be clearer in a moment. after the translation of the origin given by x=X− b1 a2 . Y ) = (0. Y ) = (0. INTRODUCTION TO POLYNOMIAL CURVES In terms of the original coordinates x. b3 with b3 > 0. it is preferable to make the change of coordinates (translation) x=X− b1 a2 . i. the curve deﬁned by the above implicit equation. y. we have the implicit equation (a2 y − b2 x)2 = a2 x b3 x + b1 a2 2 . where b3 > 0. then the curve deﬁned by the above implicit equation is equal to the trace of the polynomial curve F . b3 Furthermore. .

0). Y ) = cd. there is some parametric deﬁnition G of the form X(m) = c(a m − b)2 + cd. 0) must be excluded from the trace of the polynomial curve. we discover a nice parametric representation of the polynomial curve in terms of the parameter m. lemma 3. Y ) = (0. the singular point (X. when d > 0. Y ) = (0. Since every line of slope m through the origin has . which is also the set of points on the curve deﬁned by the implicit equation c(aY − bX)2 + cdX 2 = X 3 .2. this mismatch can be resolved if we treat these curves as complex curves. Y (m) = m(c(a m − b)2 + cd). in the sense that for any two points (X. Y ) = (0. with the exception that when d > 0. 0) intersects the trace of the polynomial curve F in a single point other than the singular point (X. Lemma 3. a (X.5. The reason for choosing the origin at the singular point is that if we intersect the trace of the polynomial curve with a line of slope m passing through the singular point. every line of slope m passing through the origin (X. Again.5. The case where d > 0 is another illustration of the mismatch between the implicit and the explicit representation of curves. 0). Y1 ) and (X. Y2 ) belongs to the trace of F . such that F and G have the same trace. Proof. the singular point (X. a of the trace of F (also on the axis of symmetry) is vertical. Furthermore. Y1 ) belongs to the trace of F iﬀ (X.1 shows that every nondegenerate polynomial cubic is deﬁned by some implicit equation of the form c(aY − bX)2 + cdX 2 = X 3 .5. Lemma 3. Y2 ) such that 2b Y1 + Y2 = X.1 shows that every nondegenerate polynomial cubic is deﬁned by some implicit equation of the form c(aY − bX)2 + cdX 2 = X 3 . unless it is a tangent at the origin to the trace of the polynomial curve F (which only happens when d ≤ 0).3.5. Y ) = (0. The line aY −bX = 0 is an axis of symmetry for the curve. excluding the origin (X. The tangent at the point bcd (X. Y ) = (0. For every nondegenerate cubic polynomial curve F . with the exception that when d > 0. 0) must be excluded from the trace of the polynomial curve. POLYNOMIAL CURVES OF DEGREE 3 91 Thus.

the slope of the axis of symmetry. iﬀ d ≤ 0. Y (m) = m(c(a m − b)2 + cd). Y ′ (m) has roots iﬀ b2 − 3d ≥ 0. If X = 0. Now. bcd a . Then. cd. we substitute mX for Y in the implicit equation. This value of m corresponds to the point (X. which is a double root. i. INTRODUCTION TO POLYNOMIAL CURVES the equation Y = mX. Thus. b we have X ′ (m) = 2ac(a m − b). on the trace of F . Since X(m) = c(a m − b)2 + cd. X ′ (m) = 0 for m = a . Since Y (m) = m(c(a m − b)2 + cd) = a2 c m3 − 2abc m2 + (b2 c + cd) m. distinct from the origin. We can now specify more precisely what is the shape of the trace of F . Otherwise. Y ) = on the trace of F . The fact that the line aY − bX = 0 is an axis of symmetry for the curve results from a trivial computation. and thus. we obtain the following classiﬁcation for the nondegenerate polynomial cubic curves deﬁned by X(m) = c(a m − b)2 + cd. We have ∆ = 16a2 b2 c2 − 12a2 c(b2 c + cd) = 4a2 c2 (b2 − 3d). to see if it has roots. getting X 2 (c(a m − b)2 + cd − X) = 0. we get a unique point X(m) = c(a m − b)2 + cd. In this case. we have c(a m − b)2 + cd = 0. by studying the changes of sign of the derivative of Y (m). Let us compute the discriminant ∆ of the polynomial Y ′ (m). either X = 0. Y (m) = m(c(a m − b)2 + cd). then X = c(a m − b)2 + cd.e (a m − b)2 + d = 0. the roots of the equation (a m − b)2 + d = 0 give us the slopes of the tangent to the trace of F at the origin. or c(a m − b)2 + cd − X = 0. we have Y ′ (m) = 3a2 c m2 − 4abc m + (b2 c + cd). Thus.92 CHAPTER 3. to ﬁnd the intersection of this line with the trace of the polynomial curve F .

which are easily computed: m1 = b . and only intersecting the X-axis for m = 0. we must have d > 0. When b2 − 3d > 0. for X = cd + cb2 . and Y ′ (m) is positive except for m = m0 . the polynomial Y ′ (m) has no roots. We also get a kind of “humpy” curve. and only intersecting the X-axis for m = 0. Y ) = (0.3. Case 1: 3d > b2 . We also get a kind of “humpy” curve. In this case.6 Classiﬁcation of the Polynomial Cubics We treat the case where c > 0. The cubic of equation 3(Y − X)2 + 6X 2 = X 3 is shown below: Case 2: b2 ≥ 3d > 0. In this case. the polynomial Y ′ (m) has two roots m1 . and there is an inﬂexion point for m = m0 . tangent to the vertical line X = cd at the intersection of this line with the axis of symmetry aY − bX = 0. m2 . the curve makes two turns. When b2 − 3d < 0. 3a b m2 = . Thus. and since we assumed c > 0. a . decreases when m varies from m1 to m2 . 0) is not on the trace of the cubic either. for X = cd + cb2 . In this case. that is. since d > 0. tangent to the vertical line X = cd at the intersection of this line with the axis of symmetry aY − bX = 0. the singular point (X. the polynomial Y ′ (m) is always positive. and since we assumed c > 0. the case c < 0 being similar. but between the two vertical lines X = cd and X = cd + cb2 . Y ′ (m) has a double root m0 = 3a . 0) is not on the trace of the cubic. Y (m) increases when m varies from −∞ to ∞. We get a kind of “humpy” curve. we have b2 − 3d > 0. 2b When b2 − 3d = 0. Y ) = (0. that is.6. and Y ′ (m) has two roots. The cubic of equation 3(Y − 2X)2 + 3X 2 = X 3 is shown below: Case 3: d = 0 (a cuspidal cubic). CLASSIFICATION OF THE POLYNOMIAL CUBICS 93 3. then Y (m) increases when m varies from −∞ to m1 . which means that Y (m) is strictly increasing. and increases when m varies from m2 to +∞. which means that the singular point (X.

94 CHAPTER 3. INTRODUCTION TO POLYNOMIAL CURVES Figure 3.14: “Humpy” Cubic (3d > b2 ) .

6. CLASSIFICATION OF THE POLYNOMIAL CUBICS 95 Figure 3.15: “Humpy” Cubic (b2 ≥ 3d > 0) .3.

and thus. and Y ′ (m) has two roots m1 and m2 . then Y (t) decreases as m varies from m1 to m2 . In this case. the singular point (X. X ′ (m2 ) = 0 and Y ′ (m2 ) = 0.96 CHAPTER 3. which belongs to the trace of the cubic. 0). The cubic of equation 3(Y − X)2 = X 3 is shown below: Case 4: d < 0 (a nodal cubic). and intersects the X-axis only at X = b2 c. then Y (m) . the polynomial X(m) = c(a m − b)2 + cd. Y ) = (0. Since we assumed c > 0. has two distinct roots. Thus. 0) belongs to the trace of the cubic. since d < 0. Y ) = (0.16: Cuspidal Cubic (d = 0) For m2 . b2 − 3d > 0. Furthermore. we note that X(m2 ) = 0. Y (m2 ) = 0. reaching the cusp point. INTRODUCTION TO POLYNOMIAL CURVES Figure 3. which means that the origin is a cusp. Y (t) increases as m varies from −∞ to m1 . the cubic is self-intersecting at the singular point (X. Since d < 0. and ﬁnally Y (t) increases as m varies from m2 to +∞. The curve is tangential to the axis aY − bX = 0 at the origin (the cusp).

decreases when m varies from m1 to m2 . from “humpy” to “loopy”. through “cuspy”. and increases when m varies from m2 to +∞. tangent to the vertical line X = cd at the intersection of this line with the axis of symmetry aY − bX = 0.6. Remark: The implicit equation c(aY − bX)2 + cdX 2 = X 3 . for X = cd + cb2 . that is. The trace of the cubic is a kind of “loopy curve” in the shape of an α. CLASSIFICATION OF THE POLYNOMIAL CUBICS 97 Figure 3.3. having the origin as a double point. The cubic of equation 3 (Y − X)2 − 3X 2 = X 3 4 is shown below: One will observe the progression of the shape of the curve.17: Nodal Cubic (d < 0) increases when m varies from −∞ to m1 . The curve also intersects the X-axis for m = 0.

To make this statement precise. x2 ) = f (x2 . x1 . x2 . X). Y ) are homogeneous polynomial in X and Y of total degree respectively 2 and 3. that is. These cubics have a singular point at the origin. where ϕ2 (X. the polynomial case is obtained in the special case where ϕ3 (X. the cubics deﬁned by the implicit equation Y 2 = X(X − 1)(X − λ).98 CHAPTER 3. Thus. x2 . Y ) is a homogeneous polynomial in X and Y of total degree 2 (in the case of a degenerate cubic of equation y = aX 3 + bX 2 + cX + d. the polar form of F is a symmetric triaﬃne function f : A3 → A. x3 . there are some cubics that cannot be represented even as rational curves. i. x1 ) = f (x3 . cannot be parameterized rationally.7 Second Encounter with Polar Forms (Blossoming) First. such that f (x1 . Elliptic curves are a venerable and fascinating topic.. x3 . Y ) = X 3 . 3. Given any polynomial of degree ≤ 3. x3 ) = ax1 x2 x3 + b x1 x2 + x1 x3 + x2 x3 x1 + x2 + x3 +c + d. X.e. 1. for all X ∈ R. it can be shown that the (nondegenerate) cubics that can be represented by parametric rational curves of degree 3 (i. Such cubics are elliptic curves. the singular point is at inﬁnity. which is aﬃne in each argument. x2 . For example. F (X) = aX 3 + bX 2 + cX + d. Furthermore. x1 ). where λ = 0. Y ). fractions of polynomials of degree ≤ 3) are exactly those cubics whose implicit equation is of the form ϕ2 (X. x1 . 3 3 . where ϕ2 (X. x2 ) = f (x3 .e. x3 . we need to deﬁne the polar form (or blossom) of a polynomial of degree 3. x2 . x3 ) = f (x1 . Y ) and ϕ3 (X. but deﬁnitely beyond the scope of this course! Returning to polynomial cubics. Using some algebraic geometry. a function which takes the same value for all permutations of x1 . Y ) = ϕ3 (X. Note that X 3 itself is a homogeneous polynomial in X and Y of degree 3. and such that F (X) = f (X. projective geometry is needed). x3 ) = f (x2 . inspired by our treatment of quadratic polynomials. we would like to extend blossoming to polynomials of degree 3.. INTRODUCTION TO POLYNOMIAL CURVES of a nondegenerate polynomial cubic (with the exception of the singular point) is of the form ϕ2 (X. Y ) = X 3 . We easily verify that f must be given by f (x1 .

determined by three polynomials F1 . . given a polynomial cubic curve F : A → A3 . s). r. s) in A3 . r) + ((1 − λ1 )(1 − λ2 )λ3 + (1 − λ1 )λ2 (1 − λ3 ) + λ1 (1 − λ2 )(1 − λ3 )) f (r. let us pick an aﬃne basis (r. Thus. (1 − λ3 )r + λ3 s) = (1 − λ1 )(1 − λ2 )(1 − λ3 ) f (r. s). f (r. s) in A. such that F (X) = f (X. F3 of degree ≤ 3. s) + ((1 − λ1 )λ2 λ3 + λ1 (1 − λ2 )λ3 + λ1 λ2 (1 − λ3 )) f (r. f3 . s. s. X). s. where r = s are elements of A. s. (1 − λ2 )r + λ2 s. The coeﬃcients of f (r. s) t1 − r s−r f (r. f2 . for all X ∈ A. we get f (t1 . r. s). s). t2 . r. s. s). r. t3 ) = f ((1 − λ1 )r + λ1 s. SECOND ENCOUNTER WITH POLAR FORMS (BLOSSOMING) 99 Then. Again. s. t2 . 2. are obviously symmetric triaﬃne functions. r). Since λi = ti −r . we get s − t1 s−r + s − t2 s−r s − t3 s−r f (r. with r = s. Since f is symmetric and triaﬃne. f (r. F2 . r). we can determine their polar forms f1 . s. r. r) + s − t1 s−r f (r. r. f (r. X. and let us compute f (t1 . t3 ) = s − t1 s−r s − t2 s−r t3 − r s−r + + t1 − r s−r s − t2 s−r t2 − r s−r t2 − r s−r s − t3 s−r t3 − r s−r + s − t1 s−r + t1 − r s−r + t1 − r s−r t2 − r s−r t3 − r s−r s − t3 s−r f (s. s) + λ1 λ2 λ3 f (s. we showed that every symmetric triaﬃne map f : A3 → A3 is completely determined by the sequence of four points f (r. t3 ) = f ((1 − λ1 )r + λ1 s. s). and f (s. s−r for i = 1. and we obtain a symmetric triaﬃne map f : A3 → A3 . and they add up to 1. (1 − λ2 )r + λ2 s. s) s − t2 s−r t3 − r s−r t2 − r s−r s − t3 s−r f (t1 . as it is easily veriﬁed by expanding the product (1 − λ1 + λ1 )(1 − λ2 + λ2 )(1 − λ3 + λ3 ) = 1. and f (s.3. r. (1 − λ3 )r + λ3 s). s). r. 3. s. t2 .7. f (r.

the polynomial function associated with f (t1 . INTRODUCTION TO POLYNOMIAL CURVES Conversely. f (r. s. s). s). f (r. s) = d. it is more useful to extend the de Casteljau algorithm. 1) + t3 f (1. However. s). 3(1 − t)2 t. r. r. we will assume any aﬃne space E of dimension ≥ 2. t) = (1 − t)3 f (0. f (r. s) = c. we have shown the following result. the point F (t) on the curve can be expressed in terms of the control points f (r. Thus. r) = . 0. d in E. It is immediately veriﬁed that the above arguments do not depend on the fact that the aﬃne space in which the curves live is A3 . 1) + 3(1 − t)t2 f (0. The polynomials (1 − t)3 . s. 1). λ2 = t2 . r. or B´zier e control points. r. s). d ∈ A3 . and that f (r. s.100 CHAPTER 3. f (r. The points f (r. c. s) = b. t2 . r). s). b. r) = a. They form a basis of the vector space of polynomials of degree ≤ 3. They play a major role in the de Casteljau algorithm and its extensions. f (r. t3 ) is obtained by letting t1 = t2 = t3 = t. Summarizing what we have done. If we let r = 0 and s = 1. s. the map (t1 . and we get F (t) = f (t. Note that the polynomial curve deﬁned by f passes through the two points f (r.7. s). and f (s. 3(1 − t)t2 . and λ3 = t3 . are called control points.1. and f (s. but not through the other control points. Lemma 3. and the Bernstein polynomials. r. r. c. so that λ1 = t1 . t. t3 . it is clear that given any sequence of four points a. 1. s. r) and f (s. Given any sequence of four points a. and f (s. f (r. r. s. whose polar form f : A3 → E satisﬁes the conditions f (r. t3 ) → + s − t1 s−r s − t2 s−r s − t3 s−r a + s − t1 s−r b t1 − r s−r c s − t2 s−r t3 − r s−r t2 − r s−r s − t3 s−r s − t1 s−r s − t2 s−r t3 − r s−r + + t1 − r s−r s − t2 s−r t2 − r s−r t2 − r s−r s − t3 s−r t3 − r s−r + s − t1 s−r + t1 − r s−r + t1 − r s−r t2 − r s−r t3 − r s−r s − t3 s−r d is symmetric triaﬃne. r). r. 1. there is a unique polynomial curve F : A → E of degree 3. s. are the Bernstein polynomials of degree 3. s). 0) + 3(1 − t)2 t f (0. t2 . and thus. 0. b.

r = s). r. s) f (t. the polar form f of F is given by the formula f (t1 . s) = b. s) = b3 (where r. the computation of F (t) can be arranged in a triangular array. s) f (t. and f (s. r) f (r. s. s) f (r. r.8. r.8 Second Encounter with the de Casteljau Algorithm Let us assume that the cubic curve F is speciﬁed by the control points f (r. t) 2 3 f (t. f (r. SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 101 a.3. s) = d (where r. s]. t. r. s ∈ A. s) = b2 . s. r. It is easy to generalize the de Casteljau algorithm to polynomial cubic curves. Furthermore. t3 ) = + s − t1 s−r s − t2 s−r s − t3 s−r a + s − t1 s−r b t1 − r s−r c s − t2 s−r t3 − r s−r t2 − r s−r s − t3 s−r s − t1 s−r s − t2 s−r t3 − r s−r + + t1 − r s−r s − t2 s−r t2 − r s−r t2 − r s−r s − t3 s−r t3 − r s−r + s − t1 s−r + t1 − r s−r + t1 − r s−r t2 − r s−r t3 − r s−r s − t3 s−r d. r) = b0 . r. consisting of three stages: 0 f (r. t2 . s. f (r. and f (s. s) = b1 . t) f (t. s) . s. s) 1 f (r. f (r. t. 3. t. s ∈ A. s) f (s. r) f (r. s. s) = c. t. as shown below. Given any t ∈ [r. f (r. s. s. r < s).

s−r In order to describe the above computation more conveniently as an algorithm. s) as b0. s. b2 = f (r. r. s]. When t is outside [r. s. r. s). s. s) = f (t.0 . from f (r. the ratio of interpolation being λ= t−r . INTRODUCTION TO POLYNOMIAL CURVES The above computation is usually performed for t ∈ [r. t. r. b1. we usually say that F (t) = f (t. r. s. s). s.0 . t. s−r During the third stage. s). s. s) = f ((1 − λ)r + λs. since by symmetry. t. (1 − λ)r + λs) = (1 − λ) f (r. r. r) and f (t. s. (1 − λ)r + λs. even outside [r. s. r. s) = f (r. r. t) = f (r. s). r.0 . r) and f (r. s. s) = f (t. t) is computed by extrapolation. r) + λ f (r. r) + λ f (t. t. s). s) + λ f (t. f (t. s) and b3 = f (s. t. r. s). and the intermediate points f (r. r. t. s) = (1 − λ) f (r. r) and f (t. . t. t. from f (r. r. s) and f (s. r).102 CHAPTER 3. s) = (1 − λ) f (r. s. s. the ratio of interpolation also being λ= t−r .0 . let us denote the control points b0 = f (r. s) + λ f (s. we compute the three points f (r. but it works just as well for any t ∈ A. s). s. r) + λ f (t. Let us go through the stages of the computation. f (r. r) = f (t. t. t. r) = f (t. s). we compute the point f (t. s).1 . f (r. s]. from f (t. (1 − λ)r + λs. and b3. (1 − λ)r + λs. s). t) = f (t. s. b2. r. r). s). b2. r. f (r. s. t. from f (r. r. and f (t. r) and f (r. from f (t. During the ﬁrst stage. r. and f (t.1 . s) and f (r. s. we compute the two points f (t. s].1 . t. s−r During the second stage. b1. the ratio of interpolation still being λ= t−r . as b0. r. t). s) and f (t. r) = (1 − λ) f (t. b1 = f (r. s). r). (1 − λ)r + λs) = (1 − λ) f (t. s) = (1 − λ) f (t. s). r. s) + λ f (r. s). from f (t. t) = f (t. r. s.

0 Then.3.2 b2. b3 ) (b0. (b1 . f (t. the algorithm constructs the three polylines (b0 .j : bi.0 b3 = b3. r).3 b1. b1.3 . b1. b2 ). . b1 ).j−1 and bi+1. and 0 ≤ i ≤ 3 − j. We have F (t) = b0. s]. Note that the shells are nested nicely. (b2 . and F (t) = b0.3 . and s = 6: The above example shows the construction of the point F (3) corresponding to t = 3. b2. b1 ). we have the following inductive formula for computing bi. t.8. Then the triangle representing the computation is as follows: 0 b0 = b0. Note that in bi. b3 ) is also called a control polygon of the curve. In this case.3 . SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 103 the intermediate points f (t.j−1 + t−r s−r bi+1. As will shall see in section 5. t. and the point f (t. the index j denotes the stage of the computation. and bi. The polyline (b0 . (b1 . on the curve F .j−1 . t.j = s−t s−r bi. geometrically.1 ). each interpolation step computes a convex combination.1 b0.1.1 2 3 b0. (b1.j .0 b1 = b1. we still obtain three shells and a de Casteljau diagram.1 b2 = b2. When r ≤ t ≤ s. b2 ).0 1 b0. where r = 0.j lies between bi. b1. The following diagram illustrates the de Casteljau algorithm for computing the point F (t) on a cubic. When λ is outside [r. (b2 .2 .1 ) (b0. but the shells are not nicely nested.2 . called shells.j−1 .2 ) where 1 ≤ j ≤ 3.1 . they form the de Casteljau diagram.3 . t) as b0. and with the point b0. s) as b0.1 . the above formula generalizes to any degree m.2 .2 b1.

0) F (6) = f (6. 1 b0. 0. 3 b1. 6. 6) f (0. 0. 3.104 CHAPTER 3. 3. 3) F (3) = f (3. 6) f (0. 3) f (3. 3. INTRODUCTION TO POLYNOMIAL CURVES b1. 0. 2 b2 b2.19: The de Casteljau algorithm for t = 3 . 6) F (0) = f (0. 1 b1 b0.18: A de Casteljau diagram f (0. 3) f (6. 3. 6. 6. 6) f (0. 1 b0 b3 Figure 3. 6) Figure 3. 2 b0. 3) f (0.

b3 ). s) 1 f (r.1 . r) f (r. t2 . b2 = b3 . Note that in bi. s. As in the quadratic case. t2 .3.1 . s) f (t1 .2 . Then the triangle representing the computation is as follows: . the tangent at b3 is the line (b2 . r. f (r. All we have to do is to use a diﬀerent ratio of interpolation λj during phase j. t.2 and b1. s. t2 . t) correctly. f (t1 .2 . t1 ). r. but the tangents may not be computed as easily as above. t3 ) = b0.4. b2. t3 ) as b0. The algorithm still computes f (t. t2 . b1 ). given by tj − r . that the tangent at b0 is the line (b0 . s) f (t1 . r.8. b1. t2 .3 . s). r). f (t1. s−r λj = The computation can also be represented as a triangle: 0 f (r. the index j denotes the stage of the computation. It will be shown in section 5.2 are computed during the second stage of the de Casteljau algorithm. it is convenient to denote the intermediate points f (r. the de Casteljau algorithm can also be used to compute any polar value f (t1 . and the tangent at F (t) is the line (b0. s) as b0. t3 ) f (t1 . where b0.2 . t1 ) 2 3 f (t1 . Remark: The above statements only make sense when b0 = b1 . r. t2 . t2 . b1.j . s) as b0. b1. SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 105 The de Casteljau algorithm also gives some information about some of the tangents to the curve. and f (t1 . t2 . It is possible for some (even all!) of the control points to coincide. s) f (s. s. r) f (r.3 . and b0.2 ).2 = b1. t3 ) (which is not generally on the curve). s. t1 . s) f (r. and the point f (t1 .1 . the intermediate points f (t1 . s) As above. t1 .2 .

j : bi.1).j = s − tj s−r bi. t2 . and computations of the coordinates of control points. Example 1.0 b1 = b1.2 b1. where 1 ≤ j ≤ 3.j−1 + tj − r s−r bi+1. Let us give a few examples of the computation of polar forms associated with parametric representation of cubics. Consider the plane cubic deﬁned as follows: F1 (t) = 3t. t3 ) = 3t1 t2 t3 − (t1 + t2 + t3 ). t2 .2 b2.1 b2 = b2. The de Casteljau algorithm enjoys many nice properties that will be studied in chapter 5 (section 5.0 b3 = b3. We have f (t1 . INTRODUCTION TO POLYNOMIAL CURVES 0 b0 = b0. t3 ) = t1 + t2 + t3 . and 0 ≤ i ≤ 3 − j.0 We also have the following inductive formula for computing bi.j−1 . The polar forms of F1 (t) and F2 (t) are: f1 (t1 .0 1 b0. . 3. F2 (t) = 3t3 − 3t. there is very little diﬀerence between this more general version of de Casteljau algorithm computing polar values and the version computing the point F (t) on the curve: just use a new ratio of interpolation at each stage.1 b0. t3 ) = b0.3 b1. Thus.9 Examples of Cubics Deﬁned by Control Points We begin with example of plane cubics.3 . f2 (t1 .106 CHAPTER 3.1 2 3 b0. t2 .

t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − 2(t1 + t2 + t3 ) + 9 f2 (t1 . = (−3. F2 (t) = 3t(t − 1)2 + 6t. Consider the plane cubic deﬁned as follows: F1 (t) = 3(t − 1)2 + 6. F2 (t) = 3t3 − 6t2 + 9t.9. The above cubic is an example of degenerate “S-shaped” cubic. . Example 2. Since F1 (t) = 3t2 − 6t + 9. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 107 Figure 3.3. t3 ) = 3t1 t2 t3 − 2(t1 t2 + t1 t3 + t2 t3 ) + 3(t1 + t2 + t3 ).20: Bezier Cubic 1 With respect to the aﬃne frame r = −1. s = 1. t2 . we get the polar forms f1 (t1 . 0). 4) = (1. 0) = (−1. t2 . −4) = (3. the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape.

3) = (6. Consider the plane cubic deﬁned as follows: F1 (t) = 3(t − 2)2 + 3. t2 . the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape.108 CHAPTER 3. F2 (t) = 3t3 − 12t2 + 15t. The axis of symmetry is y = x. F2 (t) = 3t(t − 2)2 + 3t. Example 3. 0) = (7. Since F1 (t) = 3t2 − 12t + 15. . t3 ) = 3t1 t2 t3 − 4(t1 t2 + t1 t3 + t2 t3 ) + 5(t1 + t2 + t3 ). We leave as an exercise to verify that this cubic corresponds to case 1. INTRODUCTION TO POLYNOMIAL CURVES Figure 3.21: Bezier Cubic 2 With respect to the aﬃne frame r = 0. we get the polar forms f1 (t1 . 6). 4) = (6. t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − 4(t1 + t2 + t3 ) + 15 f2 (t1 . t2 . = (9. where 3d > b2 . s = 1.

s = 1: b′0 b′1 b′2 b′3 = (15. 5) = (8.3. 6).9. 10) = (3. The axis of symmetry is y = 2x. where b2 ≥ 3d > 0. = (15. s = 2. the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. The second “hump” of the curve is outside the convex hull of this new control polygon. 4) = (3. 6) = (6. 6). We leave as an exercise to verify that this cubic corresponds to case 2. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 109 Figure 3. 0) = (7.22: Bezier Cubic 3 With respect to the aﬃne frame r = 0. . 0) = (11. It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0.

This indicates that there is a cusp at the origin. t2 . 4 . = (3. 0) = (0. −4) = (3. the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. 6). With respect to the aﬃne frame r = 0. 0) = (−1. 2) = (−1. F2 (t) = 3t3 − 6t2 + 3t. t2 . The axis of symmetry is y = x. s = 1: b′0 b′1 b′2 b′3 = (3. 0) = (1. t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − 2(t1 + t2 + t3 ) + 3 f2 (t1 . It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0. Thus. s = 2.110 CHAPTER 3. b′2 = b′3 . t3 ) = 3t1 t2 t3 − 2(t1 t2 + t1 t3 + t2 t3 ) + (t1 + t2 + t3 ). where d = 0. just by looking at some of the control points. 4 3 F2 (t) = t(t − 1)2 − 3t. Example 5. 0). F2 (t) = 3t(t − 1)2 . 1) = (0. a cubic with a cusp at the origin. Since F1 (t) = 3t2 − 6t + 3. Consider the plane cubic deﬁned as follows: F1 (t) = 3(t − 1)2 . Consider the plane cubic deﬁned as follows: 3 F1 (t) = (t − 1)2 − 3. INTRODUCTION TO POLYNOMIAL CURVES This shows that it is far from obvious. we get the polar forms f1 (t1 . We leave as an exercise to verify that this cubic corresponds to case 3. to predict what the shape of the entire curve will be! Example 4.

23: Bezier Cubic 4 .3.9. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 111 Figure 3.

Try it! = (0. t3 ) = t1 t2 t3 − (t1 t2 + t1 t3 + t2 t3 ) − (t1 + t2 + t3 ). b3 ) determine the nature of the plane cubic that it deﬁnes. just by looking at some of the control points. s = 1: 9 b′0 = (− . and y = 3x (this explains the choice of r = −1. −2) b′3 = (−3. 2 4 1 9 1 f1 (t1 . 4) = (−4. − ) 4 b′2 = (−3. Here is a more global view of the same cubic: It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0. a cubic with a node at the origin. and s = 3). 0). We leave as an exercise to verify that this cubic corresponds to case 4. s = 3. and even fun. As in example 3. t2 . 0) 4 3 ′ b1 = (−1. . where d < 0. The axis of symmetry is y = x.112 Since CHAPTER 3. −3). t2 . b2 . b1 . to investigate which properties of the shape of the control polygon (b0 . 0) = (−4. INTRODUCTION TO POLYNOMIAL CURVES 3 F1 (t) = t2 − 4 3 3 F2 (t) = t − 4 we get the polar forms 3 9 t− . 2 4 3 2 9 t − t. −12) = (0. the coordinates of the control points are: b0 b1 b2 b3 The curve has the following shape. t3 ) = (t1 t2 + t1 t3 + t2 t3 ) − (t1 + t2 + t3 ) − 4 2 4 3 1 3 f2 (t1 . 4 2 4 With respect to the aﬃne frame r = −1. Note that b0 = b3 . to predict what the shape of the entire curve will be! The above examples suggest that it may be interesting. The two tangents at the origin are y = −x. this example shows that it is far from obvious.

24: Bezier Cubic 5 .9.3. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 113 Figure 3.

INTRODUCTION TO POLYNOMIAL CURVES Figure 3.114 CHAPTER 3.25: Nodal Cubic (d < 0) .

t3 ) = t1 t2 t3 . t3 ) = (t1 t2 + t1 t3 + t2 t3 ) 3 f3 (t1 . the coordinates of the control points are: b0 = (0. 0) 3 2 1 b2 = ( . z − xy = 0. With respect to the aﬃne frame r = 0. t2 . We get the polar forms 1 f1 (t1 .3. It can also be shown that any four points on the twisted cubic are aﬃnely independent. 0) 1 b1 = ( . . known as a twisted cubic (it is not a plane curve). EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 115 Challenge: Given a planar control polygon (b0 . b1 . b3 ). 0) 3 3 b3 = (1. deﬁned as follows: F1 (t) = t. 0. We would like to extend polar forms and the de Casteljau algorithm to polynomial curves of arbitrary degrees (not only m = 2. 1. The reader should apply the de Casteljau algorithm to ﬁnd the point on the twisted cubic corresponding to t = 1/2. Example 6. For example. 3). t2 . 1). F3 (t) = t3 . Consider the cubic. F2 (t) = t2 .9. b2 . This curve has some very interesting algebraic properties. s = 1. . it is the zero locus (the set of common zeros) of the two polynomials y − x2 = 0. we need to investigate some of the basic properties of multiaﬃne maps. t3 ) = (t1 + t2 + t3 ) 3 1 f2 (t1 . of a space curve. this time. In order to do so. to rational curves and also to polynomial and rational surfaces. and later on. 0. is it possible to ﬁnd the singular point geometrically? Is it possible to ﬁnd the axis of symmetry geometrically? Let us consider one more example. t2 . This is the object of the next two chapters.

Problem 4 (20 pts). Remark: This cubic is known as the “Tchirnhausen cubic”. You may use Mathematica. or any other available software in which graphics primitives are available. Plot the cubic as well as you can. . = (4. 6).10 Problems Problem 1 (40 pts). −6). s = 1. = (−6. s]. F (1/2). 0). (1) Find the polar forms of x(t) and y(t). Give a geometric construction of the tangent to the cubic for t = 0. y(t) = 9pt(3t2 − 1). = (−6. and F (2/3). = (6. −10). 0). INTRODUCTION TO POLYNOMIAL CURVES 3. 6). Problem 3 (30 pts). Problem 2 (20 pts). = (−1. assuming that r = 0 and s = 1: b0 b1 b2 b3 = (6. Consider (in the plane) the cubic curve F deﬁned by the following 4 control points. Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/3). Consider the cubic deﬁned by the equations: x(t) = 9p(3t2 − 1). Write a computer program implementing the the de Casteljau algorithm for cubic curves. Find the control points with respect to the aﬃne frame r = −1. assuming that r = 0 and s = 1: b0 b1 b2 b3 = (−4. Plot the curve as well as possible (choose some convenient value for p). Consider (in the plane) the cubic curve F deﬁned by the following 4 control points. over some interval [r. 10). where p is any scalar. 6).116 CHAPTER 3. = (1. (2) What are the slopes of the tangents at the origin.

consider the four collinear points (f (t. b′2 . t3 . More speciﬁcally. Prove that [f (t. b′3 yielding the same parabola. t2 . Explain how to treat a parabola as a degenerate cubic. (1 − α) β 1 1 + = 2. In particular. consider the following questions: Does the degree of the curve drop? . f (t. given any four distinct values t1 . for any t. f (t. d) forms a harmonic division. b1 . b. f (t. c. Problem 5 (25 pts). b′1 . we say that (a. t2 ). t3 ). Problem 8 (30 pts). t3 ). (The “four tangents theorem”) (i) Given any sequence (a. Problem 7 (20 pts).3. determine control points b′0 . t2 . t2 ). d) of four distinct points on a line. t1 ). f (t. b. f (t.10. t4 )] only depends on t1 . Given t1 . show that [a. Plot the curve as well as you can. c. c. viewed as a cubic. d] of these points as → → − − ca da [a. t1 ). t3 . we deﬁne the cross-ratio [a. t4 . t4 . t4 )] = −1. b. Problem 6 (30 pts). c. d] = −1 iﬀ α (1 − β) . given any sequence (a. b2 . c. d) of four distinct points. f (t. b2 specifying a parabola. t2 ). such that c = (1 − α)a + αb and d = (1 − β)a + βb. Prove lemma 3.5. Given a plane cubic speciﬁed by its control points (b0 . (ii) Given any parabola F deﬁned by some bilinear symmetric aﬃne map f : A2 → A2 . t2 . α β In this case. b2 ). b1 . PROBLEMS 117 Give a geometric construction of the point F (1/2). t3 ). ﬁnd the values of t3 . t4 )). explain what happens when two control points are identical. t1 ). d] = − → − → cb db In any aﬃne space E. f (t. c. f (t. b. t4 such that [f (t. d] = Show that [a. b. c.1. b. b. given three control points b0 . f (t. Construct the points F (1/4) and F (3/4).

INTRODUCTION TO POLYNOMIAL CURVES Does the curve have a cusp at some control point? Does the curve have an inﬂexion point at some control point? Assuming that A2 is equipped with its usual Euclidean inner product. Hint. over [0. let ω be the intersection of the normal at M to the parabola with the mediatrix of the line segment F M. 0)). deﬁned by the equations: x(t) = 27pt2 .118 CHAPTER 3. You may want to use Mathematica to play around with these curves. . 1]. and let N be the symmetric of F with respect to ω. and that MN is tangent to the cubic at N. N2 . Use the representation in polar coordinates. Consider the following construction: for every point M on the parabola y 2 = 4px. Prove that H1 . Any line D through F intersects the cubic in three points N1 . 0 ≤ i ≤ 3. What is the maximum number of intersection points of two plane cubics? Give the control points of two plane cubics that intersect in the maximum number of points. where p is any scalar. N2 . (i) Let Hi be the foot of the perpendicular from F to the tangent to the cubic at Ni . Let F be the point of coordinates (p. Problem 10 (20 pts). Hint. does the curve have points where the curvature is null? What happens when three control points are identical? What if the four control points are identical? Problem 9 (20 pts). Consider the cubic of problem 3 (except that a new origin is chosen). N3 intersect in three points forming an equilateral triangle. Problem 11 (80 pts) Challenge. It is best to use polar coordinates (with pole F = (p. 1 − cos θ sin θ(1 − 2 cos θ) y(θ) = 2p . N varies on the cubic. Show that when M varies on the parabola. You can check that you are right if you ﬁnd that the cubic is deﬁned by: x(θ) = 3p + 6p cos θ . y(t) = 9pt(3t2 − 1). (1 − cos θ)2 (ii) Prove that the tangents to the cubic at N1 . 0). (iii) What is the locus of the center of gravity of this triangle. H2 . H3 belong to the parabola of equation y 2 = 4px. Plot the Bernstein polynomials Bi3 (t). N3 .

A presentation of the polarization of polynomials can be found in Hermann Weyl’s The Classical Groups [87] (Chapter I. but it plays a crucial role in section 10. The uniqueness of the polar form of an aﬃne polynomial function is proved next. Aﬃne polynomial functions h : E → F are described explicitly in the case where E has ﬁnite dimension. We conclude by showing that the deﬁnition of a polynomial curve in polar form is equivalent to the more traditional deﬁnition (deﬁnition 3. and the de Casteljau algorithm. showing that they subsume the usual multivariate polynomial functions. This has applications to curve and surface design. It should be pointed out that de Casteljau pioneered the approach to polynomial curves and surfaces in terms of polar forms (see de Casteljau [23]). Aﬃne polynomial functions and their polar forms are deﬁned. e This material is quite old. section 6). page 4-6). After a quick review of the binomial and multinomial coeﬃcients.1. we discuss the representation of certain polynomial maps in terms of multiaﬃne maps. The proof can be omitted at ﬁrst reading. The chapter proceeds as follows. splines. in a form usually called “blossoming”. and that the Bernstein polynomials of degree ≤ m form a basis of the vector space of polynomials of degree ≤ m. and more speciﬁcally to B´zier curves. and the equivalence between polynomials and symmetric multiaﬃne maps is established.1). characterizing multiaﬃne maps in terms of multilinear maps. and their characterization in terms of control points and Bernstein polynomials is shown. Polynomial curves in polar form are deﬁned. An equivalent form of polarization is discussed quite extensively in Cartan [16] (Chapter I. which ﬁrst appeared in 1939. and some discussion of the aﬃne case can be found in Berger [5] (Chapter 3.7. It is shown how polynomials in one or several variables are polarized. in the case of polynomial maps between vector spaces. and it is not very easily accessible. multilinear and multiaﬃne maps are deﬁned. we prove a generalization of lemma 2. going back as early as 1879.2. Section 3). 119 . there is little doubt that the polar approach led him to the discovery of the beautiful algorithm known as the “de Casteljau algorithm”. This result is quite technical in nature.Chapter 4 Multiaﬃne Maps and Polar Forms 4.1. Next.1 Multiaﬃne Maps In this chapter. In fact.

the number of subsets of {1. . n} having k elements: those containing 1. . When n ≥ 1. . . namely itself. n} not containing 1 as there are subsets of k elements from {2. . k!(n − k)! for 0 ≤ k ≤ n. we deﬁne n! (read “n factorial”) as follows: 0! = 1. . (n + 1)! = (n + 1)n! It is well known that n! is the number of permutations on n elements. there are two kinds of subsets of {1. = 1. . when n ≥ 0. . . . . Furthermore. . . we can prove by induction that n is the k number of subsets of {1. The numbers . n} containing 1 as there are subsets n−1 . . . and there are as many subsets of k of k − 1 elements from {2. . . we have the empty set which has only one subset. and those not containing 1. Now. = n−1 n−1 . n}. Thus. It is easy to see that n n . n} consisting of k elements is namely k n n n−1 n−1 are also called binomial . . . namely k−1 elements from {1. . . = n−k k The binomial coeﬃcients can be computed inductively by forming what is usually called . . For n ∈ N. . which is equal to + k k k−1 k coeﬃcients. For every n ∈ N. there are as many subsets of k elements from {1. .120 CHAPTER 4. . we deﬁne k n k 0 0 n k = 0. when n = 0. . n}. . . . n}. because they arise in the expansion of the binomial expression (a + b)n . / It is immediately shown by induction on n that n k = n! . . MULTIAFFINE MAPS AND POLAR FORMS We ﬁrst review quickly some elementary combinatorial facts. and n (read “n choose k”) as follows: k ∈ Z. Indeed. . . if k ∈ {0. + k−1 k if n ≥ 1. n−1 . n} consisting of k elements.

. .. −→. m k1 ! · · · km ! 1 =n k1 +···+km 0≤ki ≤n n! Again. × Em → F is a multilinear map (or an m-linear map). we have the identity (a1 + · · · + am )n = n! ak1 · · · akm . . . . . which is based on the recurrence for n 0 1 2 3 4 5 6 7 . . For the reader’s convenience. Em . for every → → i. . . 1 . . . . . 1 3 6 10 15 21 . . −j . −→. . The coeﬃcients k1 !···km ! . where k1 + · · · + km = n.. m ≥ 2. . . for every family (λj )j∈J of scalars.1. . 1 4 10 20 35 . . holding the others ﬁxed. b ∈ R. . . A function f : E1 × . 1 ≤ i ≤ m. 1 7 . iﬀ it is linear in each argument. −n ). . . . . . . n 1 n 2 n 3 n 4 n 5 n : k n 6 n 7 . . . . More generally. . For any a. for every family x x− x− xm i−1 i+1 → (−j )j∈J of vectors in Ei . . . . am ∈ R. and n ≥ 0. where m ≥ 1. x i+1 i−1 y . for all −1 ∈ E1 . are called multinomial coeﬃcients. MULTIAFFINE MAPS Pascal’s triangle. . −→ ∈ Ei+1 . Deﬁnition 4. . −→. −n ) = y i+1 j∈J → → x x− → x− λj f (−1 . . . . . . n 0 1 1 1 1 1 1 1 1 . 1 6 21 . 1 5 15 35 .1. k1 . . . and F .. . the proof is by induction. − ∈ Em . . . 121 1 2 3 4 5 6 7 . . . . y → x− f (−1 . . for any a1 .1. . x i−1 j∈J → → x− x λj −j . and they are also denoted as n .4. . k The proof is a simple induction.. . the following identity holds for all n ≥ 0: n (a + b) = k=0 n n k n−k a b . be vector spaces over R. −→ ∈ Ei−1 . Let E1 . we recall the deﬁnition of a multilinear map. . More explicitly. km We now proceed with multiaﬃne maps. −→. . .

whereas multiaﬃne forms are not. xn ) → λx1 · · · xn . . . Em . where m ≥ 1. . be aﬃne spaces over R. Let E1 . an n-linear form f : Rn → R must be of the form (x1 . A bilinear form f : R2 → R must be of the form (x1 . the map a → f (a1 . . . . . bj . . is that multilinear forms are homogeneous in their arguments. . . . . .122 CHAPTER 4. that is. . . the aﬃne line associated with R. . . . . An aﬃne form f : A → A must be of the form x → λ1 x + λ2 . . m} → {1. λ3 . . m}. . we have f (a1 .e. ai+1 . in the simple case where E = A and F = A. xm ). 1 ≤ i ≤ m. a. ai−1 ∈ Ei−1 . every linear form f : R → R must be of the form x → λx. i. . More explicitly. × Em → F is a multiaﬃne map (or an maﬃne map). ai−1 . . ai+1 . . x2 ) → λx1 x2 . λ4 ∈ R. plus a constant. . ai+1 ∈ Ei+1 . . and a little thinking shows that a biaﬃne form f : A2 → A must be of the form (x1 . for every permutation π : {1. j∈J λj bj . . . . . . . not just vector spaces or aﬃne spaces). .2. . and F . ai−1 . Thus. The next lemma will show that an n-aﬃne form can be expressed as the sum of 2n − 1 k-linear forms. iﬀ f (xπ(1) . . A good example of n-aﬃne forms is the elementary symmetric functions. . iﬀ it is aﬃne in each argument. . iﬀ it preserves barycentric combinations. . For any n ≥ 2. Let us try to gain some intuition for what multilinear maps and multiaﬃne maps are. λ2 . x2 ) → λ1 x1 x2 + λ2 x1 + λ3 x2 + λ3 . An arbitrary function f : E m → F is symmetric (where E and F are arbitrary sets. . Given n What about an n-aﬃne form f : An → A? . . where 1 ≤ k ≤ n. am ) is an aﬃne map. . ai+1 . . . for every i. . . Since R is of dimension 1. xπ(m) ) = f (x1 . for every family (λj )j∈J of scalars such that j∈J λj = 1. . we deﬁne multiaﬃne maps. am ∈ Em . we see that the main diﬀerence between multilinear forms and multiaﬃne forms. a ∈ Ei . . . . It is immediately veriﬁed that a multilinear map is also a multiaﬃne map (viewing a vector space as an aﬃne space). . . . for all a1 ∈ E1 . for some λ1 . ai−1 . MULTIAFFINE MAPS AND POLAR FORMS Having reviewed the deﬁnition of a multilinear map. A function f : E1 × .1. am ). but they are sums of homogeneous forms. λ2 ∈ R. for some λ ∈ R. Deﬁnition 4. . . . for some λ1 . for some λ ∈ R. for every family (bj )j∈J of points in Ei . . am ) = j∈J λj f (a1 . .

σk = σ2 = x1 x2 + x1 x3 + · · · + x1 xn + x2 x3 + · · · + xn−1 xn . as follows: σ0 = 1. let us consider the special case of a biaﬃne map f : E 2 → F . . . The proof is more complicated than might be expected. −2 ) is linear in −2 . a2 )+h1 (−1 . . a2 + −2 ) v v v v v → → → is a linear map in − .1.<ik ≤n xi1 · · · xik . A concise way to express σk is as follows: σk = I⊆{1. a2 + −2 ) = f (a1 + −1 . where F is a vector space. −2 ). we have v v v → → → → → v f (a1 + −1 . . a2 + −2 ) = g(−1 . . characterizing multiaﬃne maps in terms of multilinear maps. a2 ) − f (a1 . Note that σk consists of a sum of consequence. Thus. a2 + −2 ) = g(−1 . n k x . σk . a2 )+f (a1 +−1 . each σk is symmetric. a2 ) = h1 (−1 .. a2 + −2 ) − f (a1 . a2 )−f (a1 . for each k. and as a diﬀerence of aﬃne maps in a + − . v v v v → → → → where h1 (−1 . σn = x1 x2 · · · xn .. In order to understand where the proof of the next lemma comes from. a2 + −2 ) − g(−1 .. x) = Clearly. xn . .. Because f is biaﬃne. for short. n k = n! k!(n−k)! terms of the form xi1 · · · xik . we have → → → → v g(−1 . k We will prove a generalization of lemma 2. but luckily. . . −2 )+f (a1 . a2 +−2 ) = f (a1 . a2 ) + h1 (−1 . . xn ). a2 +−2 )−f (a1 . x. .7.4. −2 ).. note that → → → → → f (a1 + −1 .n} |I|=k i∈I xi ..2. As a σk (x. . v v v v → . an adaptation of Cartan’s use of “successive diﬀerences” allows us to overcome the complications. −2 ). σ1 = x1 + · · · + xn . v v v 1 2 2 2 2 But then. v v v v v v Since → → → → v g(−1 . . a2 ). 0 ≤ k ≤ n. v v v v v → that is. 1≤i1 <. a2 + −2 ) − f (a1 . a2 ) + h1 (−1 . we deﬁne the k-th elementary symmetric function σk (x1 . MULTIAFFINE MAPS 123 variables x1 . it is aﬃne in a + − . → → → → → → f (a1 +−1 .

and all −1 . a2 ). a2 ) are linear in −1 . a2 ) + h1 (−1 . where S ⊆ {1. The above argument uses the crucial fact that the expression → → → → → v f (a1 + −1 . am ) + v vm S⊆{1.. .. v The slight trick is that if we compute the diﬀerence → ∆v2 ∆v1 f (a1 . we are led to consider diﬀerences of the form → ∆v1 f (a1 . a2 + −2 ) − f (a1 . a2 ). am + − ) = f (a1 . there are 2m − 1 unique multilinear − → − → maps fS : E k → F . v where we incremented the second argument instead of the ﬁrst argument as in the previous step. When f : E m → F is a symmetric m-aﬃne map. − ∈ E . and as a consequence. . −k ). . v v v v v v where h1 is bilinear.. k = |S|. But → → → → v1 v2 1 v1 v2 1 − ) − f (a . a2 + v2 v2 v1 2 v1 1 2 1 1 2 shows that we can write → → → → → → f (a1 + −1 .. . a2 + −2 ) − f (a1 + −1 . am ∈ E.124 CHAPTER 4. we get → → → → ∆v2 ∆v1 f (a1 . .3. The uniqueness of h1 is clear. k≥1 → → fS (−1 . Thus. v vm Proof. −2 ). −2 ) + h2 (−1 ) + h3 (−2 ). MULTIAFFINE MAPS AND POLAR FORMS → → → → → → where both g(−1 . −2 ) is also linear in v v v v v v − . a2 + −2 ) and and g(−1 . . then h is bilinear. S = ∅. . . we move from argument k to argument k + 1) will be central to the proof of the next lemma. −2 ). . a2 ) = f (a1 + −1 . a2 + −2 ) = f (a1 . m}. a2 + −2 ) − f (a1 + −1 ... . Lemma 4. v v v v v → is bilinear. This idea of using successive diﬀerences v v (where at each step. a2 ) − f (a1 . . such that → → f (a1 + −1 . h1 (−1 . a2 ) = ∆v1 f (a1 . the uniqueness of h2 and h3 follows easily. . a ) is linear in − . a2 ) + f (a1 . a2 ) = f (a1 + −1 . a2 + −2 ) − ∆v1 f (a1 . 1 ≤ k ≤ m. . a2 ) = h1 (−1 . Section B. a2 ). . .m}.. . a ) is linear in − . vi vi → → → − for all a1 . k=|S| S={i1 . . For every m-aﬃne map f : E m → F .1. a2 ) + f (a1 . . − ) is linear in − .ik }.1. . a ) − f (a . . which → → → → f (a1 . . . . v v v v → → which is precisely the bilinear map h1 (−1 . It is extremely technical.. and can be found in Chapter B. we can obtain a more precise characterization in terms of m symmetric k-linear maps. . a2 + −2 ) − f (a1 . and since we already know that h (− . and f (a + − . and h2 and h3 are linear.

−k ). and thus.jk } . . In the special case where E = An and F = A. . . .. . and then that each f{i1 . . . .... we have → → f (a1 + −1 . −k ).. and . . . am ) + v vm m m → → fk (−1 . .1. and since f (xπ(1) .<ik ≤m → → fk (−1 . am ∈ E. 1 ≤ k ≤ m.. . vj vj vj vj which shows that. 4. ..ik } → → → − vm for all a1 . and all −1 . the v vm sum fm + fm−1 + · · · + f1 of m symmetric k-linear maps. we must have → → → → f{i1 . For every symmetric m-aﬃne map f : E m → F . < ik ≤ m and 1 ≤ j1 < ..ik } (−1 ..ik } = f{j1 . . . . . by the uniqueness of the sum given by lemma 4. . − . .. this notion is actually equivalent to the notion of polynomial function induced by a polynomial in n variables. . .. .. In the next section. . am ∈ E.. .. The added beneﬁt is that we achieve a “multilinearization”.. there is a permutation π such that π(i1 ) = j1 . and all −1 .2. .ik } is symmetric.. for every sequences i1 . . − ∈ E . v Proof.k} .. ik and j1 .. . . AFFINE POLYNOMIALS AND POLAR FORMS 125 Lemma 4. .. letting fk = f{1. 1 ≤ k ≤ m. ..4.. 1 ≤ k ≤ m... . v → → Thus. . ... −k ). we will use multiaﬃne maps to deﬁne generalized polynomial functions from an aﬃne space to another aﬃne space.3. such that → → f (a1 + −1 . . . .m} S={i1 . for every k. . . . The above lemma shows that it is equivalent to deal with symmetric m-aﬃne maps.. . a symmetric m-aﬃne map is obtained by making symmetric in −1 . . there are m unique sym− → − → metric multilinear maps fk : E k → F . . . . . π(ik ) = jk . .. am + − ) = f (a1 ..2 Aﬃne Polynomials and Polar Forms The beauty and usefulness of symmetric aﬃne maps lies is the fact that these maps can be used to deﬁne the notion of a polynomial function from an aﬃne (vector) space E of any dimension to an aﬃne (vector) space F of any dimension. . . . xm ). or with symmetrized sums fm + fm−1 + · · · + f1 of symmetric k-linear maps. . . . .4. . . .. jk such that 1 ≤ i1 < .. . f{i1 . . .. . . . . .. . − ∈ E . Since f is symmetric. < jk ≤ m. . −k ) = f{j1 . vi vi k=1 S⊆{1. . . xπ(m) ) = f (x1 . am ) + v vm → → → − vm for all a1 . vi vi k=1 1≤i1 <.1. where 1 ≤ k ≤ m.. . am + − ) = f (a1 .. . .jk } (−1 .

also leads to an elegant and eﬀective presentation of the main algorithms used in CAGD. is a map h : E → F . we have the bilinear map f : (Rn )2 → R (called inner product).2. A homogeneous polynomial function of degree m.2. . . with → → → → → → v v v h(− ) = fm (− . deﬁned such that f ((x1 . .1. . A polynomial function of polar degree m. such that h(x1 . v v v m m−1 → → − for all − ∈ E . . 1 ≤ k ≤ m. . . . . − → − → For example. xn ) = x2 + x2 + · · · + x2 . with → → → h(− ) = f (− . is almost the deﬁnition given by Cartan [16]. and some f0 ∈ F . . . . . (y1. Thus. is the deﬁnition given by Cartan [16]. is a map h : E → F . . such − → − → that there is some nonnull symmetric m-linear map f : E m → F . . instead of deﬁning polynomial maps of degree exactly m (as Cartan does). except that we allow any of the multilinear maps fi to be null. The deﬁnition of a polynomial function of polar degree m given in deﬁnition 4. v v v m → − → − → → − for all − ∈ E . Such an approach. if E = Rn and F = R. .2. 1 2 n is a polynomial of total degree 2 in n variables. . with h(a) = f (a. . we deﬁne polynomial maps of degree at most m. in particular splines. . whereas Cartan does not. . sometimes called “blossoming” (a term introduced by Ramshaw. . an aﬃne polynomial function of polar degree m. − ) + · · · + f1 (− ) + f0 . called the polar form of h. . yn )) = x1 y1 + x2 y2 + · · · + xn yn .126 CHAPTER 4. xn ). Deﬁnition 4.1. The corresponding polynomial h : Rn → R. − ). Given two aﬃne spaces E and F . who was among the ﬁrst to introduce it in the context of curve and surface representation). is a map h : E → F . MULTIAFFINE MAPS AND POLAR FORMS also that we can deﬁne (parameterized) “polynomial curves” in a very elegant and convenient manner. . such that there is some symmetric m-aﬃne map f : E m → F . . . − ) + fm−1 (− . . or for short an aﬃne polynomial of polar degree m. such that v − → − → − → there are m symmetric k-linear map fk : E k → F . called the m-polar form of h. v The deﬁnition of a homogeneous polynomial function of degree m given in deﬁnition 4. . .1. a). . m − → − → for all a ∈ E.

4. when E is a vector space − → of ﬁnite dimension n. vi vi g(−1 . . This is the deﬁnition commonly used by the CAGD community. a polynomial function h of polar degree m can be − → − → deﬁned by a symmetric m-aﬃne map f : E m → F . y.2. . AFFINE POLYNOMIALS AND POLAR FORMS However the triaﬃne map f : R3 → R deﬁned such that f (x. from the point of view of algebraic geometry). in view of lemma 4. j e1 n. .4. − → Let us see what homogeneous polynomials of degree m are. . . we will usually allow ourselves this abuse of language. . . f1 are the unique (symmetric) multilinear maps associated − → − → with f . . . . .<ik ≤m − → − → g0 = f ( 0 . From the point of view of terminology. and F is a vector space (readers who are nervous. . Thus. . . j en . . − ) of E . for any e en m vectors − = v − +···+v − ∈ − .. . −k ) + f0 . induces the polynomial h : R → R such that h(x) = 3x2 . z) = xy + yz + xz. and because it makes the correspondence with multiaﬃne polar forms nicer. . which is of polar degree 3 but a polynomial of degree 2 in x. if a map h : E → F is a polynomial function of polar degree m deﬁned by m symmetric k-linear maps fk . − ) = v vm k k=1 − → − → Conversely. . if a map h : E → F is deﬁned by some symmetric − → − → m-aﬃne map f : E m → F . . having been suﬃciently forwarned. it is cumbersome to constantly have to say “polar degree” rather than degree. Let (− . with → → → h(− ) = f (− . − ). . − → − → Clearly. and any vector space F . Nevertheless. . for any symmetric multilinear map f : E m → F . .2. . may assume for − → − → → → simplicity that F = R). 0 ). . . then h is also deﬁned by the m symmetric k-linear maps gk = v m fk and k 1≤i1 <. Given any vector space E of ﬁnite dimension n. and by f0 . and g0 = f ( 0 . then f is also deﬁned by the symmetric m-aﬃne map m −1 m → → → → fk (−1 . . v v v → → − for all − ∈ E .2. .1. .. where fm . 0 ). although degree is confusing (and wrong. . e e 1 n − → − → Lemma 4. . . . − → − → − → → → for any basis (−1 . → → → → vj E 1. 127 We adopt the more inclusive deﬁnition of a polynomial function (of polar degree m) because it is more convenient algorithmically. − ) be a basis of E .

. − . we get the same product v1 1 · · · vnn a multiple v v v number of times. . . . . in in ∈In → → → → f (−1 . . ∪ In = {1. 1 · · · vim . e e en en |I1 | |In | k → → → k When we calculate h(− ) = f (− . e e en en k1 . .. . in in ∈In → → → → f (−1 .... m − → − → for some “coeﬃcients” ck1 .. .2 shows that we can write h(− ) as v → h(− ) = v k1 +···+kn =m 0≤ki . which explains the dinality ki . By multilinearity of f . kn second formula. − ) = v I1 ∪. .j≤n i1 ∈I1 v1.. the homogeneous polynomial function h associated with f is given by v → h(− ) = v k1 +···+kn =m 0≤ki . −1 . which are vectors. In such that I1 ∪ . .. . . .. . . . .kn ∈ F .n}m → vi1 .2. . . . . . . −m ).. . . .. . − ). . kn 1 k1 kn Proof..kn . − ). . − .. .. . MULTIAFFINE MAPS AND POLAR FORMS v1.. . 1≤i≤n m → → → → k v k1 · · · vnn f (−1 . . . which is the number of ways of choosing n disjoints sets Ij . . − . each of carm . . . . i=j 1≤i. −1 . . we get e → → vm f (−1 .. . . . agrees with the notion of polynomial function deﬁned by a homogeneous polynomial.∪In ={1. . . . .im )∈{1. . i1 I1 ∪. vn . 1≤i≤n k k v1 1 · · · vnn ck1 ...j≤n i1 ∈I1 ··· vn. . . −1 . . . .. − ). . . − ) = v vm CHAPTER 4. . which is precisely k1 . . we have → → f (−1 . i=j 1≤i. . lemma 4.. we can reorder the basis vectors arguments of f . . . . → Thus. i1 ··· vn.. . . .. m f (−1 . the homogeneous polynomial function h of degree m in n arguments v1 .∪In ={1. − ) = v vm (i1 . . where each Ij speciﬁes → which arguments of f are the basis vector −j . h is the homogeneous . . .m} Ii ∩Ij =∅. . . Thus. . e e en en |I1 | |In | → → − and for any − ∈ E . . . . and this amounts to choosing n disjoint sets I1 . .m} Ii ∩Ij =∅. When F = R.. ei e→ i Since f is symmetric. ..128 we have → → f (−1 . − )... . .... . m}. Indeed. where k1 + · · · + kn = m.

. − ) of E . when E is of ﬁnite dimension... k k ck1 ... AFFINE POLYNOMIALS AND POLAR FORMS 129 polynomial function induced by the homogeneous polynomial of degree m in the variables X1 .. . . . .. Lemma 4.. The standard approach is to deﬁne formal polynomials whose coeﬃcients belong to a (commutative) ring. j en for any points a1 . one should not confuse such polynomial functions with the polynomials deﬁned as usual. when E = Rn and F = R. for − → → → any basis (−1 . (k1 . ..2...... we deﬁne directly certain functions that behave like generalized polynomial functions.. .. am + − ) = b + v vm 1≤p≤m I1 ∪.. w Lemma 4.. j e1 n. and any aﬃne space F . . we obtain the following useful characterization of multiaﬃne maps f : E → F . Given any aﬃne space E of ﬁnite dimension n.1.kn X1 1 · · · Xnn . . .. and some − |I1 |. .2. or an aﬃne space. the notion of (aﬃne) polynomial of polar degree m in n arguments. Xn ). . w − → → for some b ∈ F . kj ≥0 k1 +···+kn =m Using the characterization of symmetric multiaﬃne maps given by lemma 4. . we have → → f (a1 + −1 . Another major diﬀerence .2. for any symmetric multiaﬃne map f : E m → F .kn ∈ F . . for any m e en vectors − = v − +···+v − ∈ − . say in Lang [47].kn ).p} Ii ∩Ij =∅.|In | ∈ F . Artin [1]. . and lemma 4..|In| .2. − → → → → − for some b ∈ F .4. or Mac Lane and Birkhoﬀ [52]. and for any a ∈ E. 1≤i≤n k k → v1 1 · · · vnn − k1 .4. . am ∈ E. .3.... when E is of ﬁnite dimension. agrees with the notion of polynomial function induced by a polynomial of degree ≤ m in n variables (X1 . and some − k1 . i=j 1≤i. . in in ∈In − → w |I1 |. and − ∈ E . → → → → vj E 1.. the aﬃne w v polynomial function h associated with f is given by → h(a + − ) = b + v 1≤p≤m k1 +···+kn =p 0≤ki . . i1 ··· vn. − → − → Thus. . We could have taken the form of an aﬃne map given by this lemma as a deﬁnition... it is shown how a polynomial deﬁnes a polynomial function.kn . Then..j≤n i1 ∈I1 v1.3 shows the crucial role played by homogeneous polynomials. − → When F is a vector space of dimension greater than one. .. In the present approach... Xn .2.∪In ={1.

s]) in polar form of degree m is the restriction F : [r. . s] as F ([r. such as F : A → E.130 CHAPTER 4.1 (see deﬁnition 3. and E is any aﬃne space (of dimension at least 2). Deﬁnition 4. it is convenient to denote the polynomial map deﬁning the curve by an upper-case letter. which is some symmetric m-aﬃne map f : Am → E. in which case.1 and formal polynomials.4 turns out to be more general and equivalent to deﬁnition 3. Although we can make sense of addition as aﬃne combination in the case of polynomial functions with range an aﬃne space.1). Typically. we will allows ourselves the abuse of language where we abbreviate “polynomial curve in polar form” to “polynomial curve”. we are led to consider symmetric m-aﬃne maps f : Am → F . .2.2. Nevertheless. unless confusions arise. . It would then be confusing to denote the aﬃne space which is the range of the maps F and f also as F . with r < s. Recall that the canonical aﬃne space associated with the ﬁeld R is denoted as A. we can deﬁne (parameterized) polynomial curves in polar form. and the polar form of F by the same. F = A3 . we denote it as E (or at least. because an aﬃne polynomial map f of polar degree m may end up being degenerate. . s]). for example. as given in section 3. deﬁnition 4. and thus. this generalization of the notion of a polynomial function is very fruitful. Thus. the aﬃne space E is the real aﬃne space A3 of dimension 3. is that formal polynomials can be added and multiplied. We deﬁne the trace of F as F (A).1.4. we use a letter diﬀerent from the letter used to denote the polynomial map deﬁning the curve). fm−1 . Given any r. f . as the next example will show. Deﬁnition 4. in the sense that it could be equivalent to a polynomial map of lower polar degree (the symmetric multilinear maps fm . rather than a polynomial curve in polar form of degree exactly m.1 when E is of ﬁnite dimension. where F is any aﬃne space. where A is the real aﬃne line.2.1. Remark: When deﬁning polynomial curves. However. multiplication does not make any sense.2. deﬁned by its m-polar form. A (parameterized) polynomial curve in polar form of degree m is an aﬃne polynomial map F : A → E of polar degree m. but lower-case letter. f is also deﬁned by a polynomial map of polar degree m − k). fm−k+1 involved in the unique decomposition of f as a sum of multilinear maps may be identically null. s] → E of an aﬃne polynomial curve F : A → E in polar form of degree m. Also note that we deﬁned a polynomial curve in polar form of degree at most m. a (parameterized) polynomial curve segment F ([r. and the the trace of F [r. s ∈ A. For convenience. and it is also more convenient for the purpose of designing curves satisfying some simple geometric constraints. MULTIAFFINE MAPS AND POLAR FORMS between the polynomial functions of deﬁnition 4.4 is not the standard deﬁnition of a parameterized polynomial curve. . Indeed.

Let us now consider the general case of a symmetric m-aﬃne map f : Am → F . we considered the case of symmetric biaﬃne functions f : A2 → A3 and symmetric triaﬃne functions f : A3 → A3 . Thus.m} i∈I I∩J=∅.. j∈J m−k k and since λi = ti −r . . . . . . t2 . tm ) = f ((1 − λ1 )r + λ1 s. . . . . . . . . s. r. . . . . . m−k k where r = s are elements of A. by a simple induction. . t2 .4. . r. where F is any aﬃne space. r . tm ) + λ1 f (s.. we get m k=0 I∪J={1. . s) in A. m−k k The coeﬃcient pk (t1 . .. .3. s). |J|=k (1 − λi ) λj f (r. . . . ..m} i∈I I∩J=∅. tm ) = (1 − λ1 ) f (r. . . . .1.. tm ) m = k=0 I∪J={1. . . s. . . tm ) = I∪J={1. . . .. (1 − λm )r + λm s). . . . . we get f (t1 . POLYNOMIAL CURVES AND CONTROL POINTS 131 4.3 Polynomial Curves and Control Points In section 3. . . . r . . s). we showed that every symmetric m-aﬃne map f : Am → F is completely determined by the sequence of m + 1 points f (r. s) m−k k is obviously a symmetric m-aﬃne function. .. . Since f is symmetric and m-aﬃne.. . . tm ) = s − ti s−r j∈J tj − r s−r f (r. . .. . and we saw a pattern emerge. . . . |J|=k f (t1 . . .. and let us compute f (t1 . and these functions add up to 1. tm ) = f ((1 − λ1 )r + λ1 s. t2 . . .. . s). . with r = s. s−r for 1 ≤ i ≤ m. .m} i∈I I∩J=∅. . as it is easily veriﬁed by expanding the product i=m i=1 s − ti ti − r + s−r s−r = 1. . |J|=k s − ti s−r j∈J tj − r s−r of f (r.. Let us pick an aﬃne basis (r. s. s.

k=0 This is shown using the binomial expansion formula: m m Bk [r. . . the map m (t1 . s]. . . am ∈ F . . . . k m−k k . m−k k The polynomials m Bk [r. e they play a major role in the de Casteljau algorithm and its extensions. . .. . . some simpliﬁcations take place. . 1. . tm ) → k=0 I∪J={1. . For r = 0 and s = 1. . s). m h(t) = k=0 m k s−t s−r m−k t−r s−r k f (r. or B´zier control points.m} i∈I I∩J=∅. . s](t) = 1. . . 0.. . . and we have f (r. . . . . . .. . s. . . s](t) = m k s−t s−r m−k t−r s−r k are the Bernstein polynomials of degree m over [r. 1). m−k k The points ak = f (r. |J|=k s − ti s−r j∈J tj − r s−r ak is symmetric m-aﬃne. . The polynomial function associated with f is given by h(t) = f (t. . s) m−k k are called control points.132 CHAPTER 4. . s) = ak . . given any sequence of m + 1 points a0 . . MULTIAFFINE MAPS AND POLAR FORMS Conversely. . s](t) k=0 m = k=0 m k s−t s−r m−k t−r s−r k = t−r s−t + s−r s−r m = 1. r. and as we have already said several times. s. . . r. s. . and the polynomial function h associated with f is given by m h(t) = k=0 m (1 − t)m−k tk f (0. since ti = λi . . r . These polynomials form a partition of unity: m m Bk [r. . t). . .. . that is. .

. . s](t) = Bk t−r s−r . . r. . s]. . s ∈ A. . Of course. s](t) ak . 4. we showed the following lemma. but we hope that the above considerations are striking motivations for using polar forms. It is not hard to show that they form a basis for the vector space of polynomials of degree ≤ m. s) = ak . . 1]). We could use Cartan’s proof in the case of polynomial . |J|=k s − ti s−r j∈J tj − r s−r ak .4. Furthermore. we will come back to polynomial curves and the de Casteljau algorithm and its generalizations. am in some aﬃne space E. and F (t) is given by the formula m F (t) = k=0 m Bk [r. . Lemma 4. UNIQUENESS OF THE POLAR FORM OF AN AFFINE POLYNOMIAL MAP 133 The polynomials m Bk (t) = m (1 − t)m−k tk k are the Bernstein polynomials of degree m (over [0. whose polar form f : Am → E satisﬁes the conditions f (r. Given any sequence of m + 1 points a0 . Clearly. tm ) = k=0 I∪J={1. . . . . . there is a unique polynomial curve F : A → E of degree m.. . we have m m Bk [r. .4. where the polynomials m Bk [r. r = s).1. the polar form f of F is given by the formula m f (t1 . Summarizing the above considerations.. s](t) = m k s−t s−r m−k t−r s−r k are the Bernstein polynomials of degree m over [r.4 Uniqueness of the Polar Form of an Aﬃne Polynomial Map Remarkably. s. . .3.. we can prove in full generality that the polar form f deﬁning an aﬃne polynomial h of degree m is unique. m−k k (where r.m} i∈I I∩J=∅.

4. Section B.1 is far from being economical.5 Polarizing Polynomials in One or Several Variables We now use lemma 4. It is quite technical. Lemma 4. proposition 2).134 CHAPTER 4. Lemma 4. of degree ≤ m. The expression of lemma 4. . such that p(x) = f (x.1 to show that polynomials in one or several variables are uniquely deﬁned by polar forms which are multiaﬃne maps. x. a formula giving the polar form for a polynomial h(X) of degree 3. x2 ) = 1 4h 2 x1 + x2 2 − h(x1 ) − h(x2 ) . proposition 3). .I. there is a symmetric m-aﬃne form f : Rm → R. section §8. since it contains 2m − 1 terms. . Before plunging into the proof of lemma 4.2. since it applies to arbitrary aﬃne spaces. . k≥1 Proof. you may want to verify that for a polynomial h(X) of degree 2. Note that when h(X) is a homogeneous polynomial of degree 2. x2 ) = 1 [h(x1 + x2 ) − h(x1 ) − h(x2 )] .. and is given by the following expression: f (a1 . the above identity reduces to the (perhaps more familiar) identity f (x1 . k It should be noted that lemma 4. the polar form f : E m → F of h is unique. .4.4. for any polynomial function h of degree m. .1. All the ingredients to prove this result are in Bourbaki [14] (chapter A. MULTIAFFINE MAPS AND POLAR FORMS functions. If p(X) ∈ R[X] is a homogeneous polynomial of degree exactly m.5. am ) = 1 m! (−1)m−k k m h i∈H H⊆{1. and [15] (chapter A.1. then the symmetric m-aﬃne form f is multilinear.IV. ai . x) for all x ∈ R.1 is very general.m} k=|H|. (1) For every polynomial p(X) ∈ R[X]. . section §5. .4. the polar form is given by the identity f (x1 .. . 4. even of inﬁnite dimension (for example.1. In particular cases. Hilbert spaces). but they are deeply buried! We now prove a general lemma giving the polar form of a polynomial in terms of this polynomial. 2 used for passing from a quadratic form to a bilinear form... but we can give a slightly more direct proof which yields an explicit expression for f in terms of h. You may also want to try working out on your own. Given two aﬃne spaces E and F .4. it is often possible to reduce the number of terms.1.4. We ﬁrst show the following simple lemma. and can be found in Chapter B.

. . where k1 + · · · + kn = d ≤ m. in in ∈In . . . xn ) ∈ Rn . . . . m .. POLARIZING POLYNOMIALS IN ONE OR SEVERAL VARIABLES 135 Proof. . . . . 1 . . . . . Xn ] is a homogeneous polynomial of total degree exactly m. . kn . Xn ) ∈ R[X1 . . (1) It is enough to prove it for a monomial of the form X k . xn. and k1 + · · · + kn = d ≤ m. . xn ) ∈ R . we get a multilinear k map. f (x1 . .. .. . . . m − d such families of n disjoint sets. One can also argue as follows: There are k1 m − k1 choices for the second subset I2 choices for the ﬁrst subset I1 of size k1 . . |Ij |=kj i1 ∈I1 ··· xn. x. There are m! = k1 ! · · · kn !(m − d)! m k1 . 1 n m for all x = (x1 . which consists of = k!(m−k)! terms). . xm ) = k!(m − k)! σk m! (2) For every polynomial p(X1 . x). . is a symmetric m-aﬃne form satisfying the lemma (where σk is the k-th elementary symmetric m m! function. . where ki ≥ 0. . x) = xk1 · · · xkn . Clearly. . . k ≤ m. . . . . such that p(x1 . . m} consisting of d ≤ m elements into n disjoint subsets I1 . . . . .. Let f be deﬁned such that f ((x1. (x1. . it is easy to see that f is multilinear. . .m} Ii ∩Ij =∅. kn . . . . . m )) = k1 ! · · · kn !(m − d)! m! x1. and ﬁnally. m − d It is clear that f is symmetric m-aﬃne in x1 . .. k1 . this is the number of ways of choosing n + 1 disjoint subsets of {1. k k (2) It is enough to prove it for a homogeneous monomial of the form X1 1 · · · Xnn . xn. . xm . and when k = m. . 1 ). n . . . there is a symmetric m-aﬃne form f : (Rn )m → R. Xn ]. kn After some simple arithmetic. . . . . . . . m and m − d elements. . i1 I1 ∪. . . where Ij is of size kj (and with k1 + · · · + kn = d). . Indeed. . . . where xj = (x1. the number of such choices is indeed m! = k1 ! · · · kn !(m − d)! m . . In . and that f (x. . .∪In ⊆{1. . Also. etc. then f is a symmetric multilinear map f : (Rn )m → R. . for all x = (x1 . Xn ) ∈ R[X1 . If p(X1 . . . kn .4. and then k2 m − (k1 + · · · + kn−1 ) choices for the last subset In of size kn . when d = m. j ). . j . The idea is to split any subset of {1. . m} consisting respectively of k1 . . . . . . xn. of size k2 . where k1 + · · · + kn = d. . i=j. .5. of total degree ≤ m. . . xn ) = f (x. . .

Xn ) ∈ R[X1 . . Xn ] of total degree ≤ m. .m} I∩J=∅ |I|=h. x. Xn ]. Xn ]. in the following sense: (1) If f : (Rn )m → R is a symmetric m-aﬃne map. with h + k = d ≤ m. . . . .1. if we get CHAPTER 4. . and symmetric m-aﬃne maps f : (Rn )m → R. and conversely. .. then the function p : Rn → R deﬁned such that p(x1 . . . V ) = UV + U 2 + V 2 . . . if p(U. . . . Theorem 4. . when p(X1 . . xn ) ∈ Rn . . . x2 . . . x) for all x = (x1 . . Writing U = X1 and V = X2 . . . (um . Xn ) ∈ R[X1 . to minimize the number of subscripts. There is an equivalence between polynomials in R[X1 . we get f ((u1 . . 3 When n = 2. . . . observe that the existence of some symmetric m-aﬃne map f : (Rn )m → R with the desired property is given by lemma 4. v1 ). . . . there is a unique symmetric m-aﬃne map f : (Rn )m → R. of total degree ≤ m.. f is a symmetric multilinear map f : (Rn )m → R. . Xn ] is a homogeneous polynomial of total degree exactly m. . . . x3 ) = x1 x2 x3 + x1 x2 + x1 x3 + x2 x3 + (x1 + x2 + x3 ) − 1. (u2 . vm )) = h!k!(m − (h + k))! m! ui I∪J⊆{1. .5. . is a polynomial (function) corresponding to a unique polynomial p(X1 . Furthermore. . . and the uniqueness of such an f is given by lemma 4.. . Part (1) is trivial. 2 We can now prove the following theorem showing a certain equivalence between polynomials and multiaﬃne maps. Xn ) ∈ R[X1 . . . .2. . x. 5 f (x1 . . v1 ). MULTIAFFINE MAPS AND POLAR FORMS p(X) = X 3 + 3X 2 + 5X − 1.136 As an example. . xn ) ∈ Rn .1. which corresponds to the case of surfaces. . of total degree ≤ m. . . xn ) = f (x. xn ) = f (x. . . . . we can give an expression which is easier to understand.5.4. Proof. given the monomial U h V k . To prove part (2). such that p(x1 . . . For a concrete example involving two variables. x) for all x = (x1 . . |J|=k i∈I j∈J vj . . (2) For every polynomial p(X1 . v2 )) = u1 v2 + u2 v1 + u1 u2 + v1 v2 .. we get f ((u1.

1).1.n ) denote the → → coordinates of the point bk = f (r m−k sk ) over the aﬃne basis (a0 . . . deﬁned such that → → f (t1 . . . .4. . s).4 to the more standard deﬁnition (deﬁnition 3. .2. the curve F is completely determined by the m+1 points bk = f (r m−k sk ).i −i . Indeed. in the sense of deﬁnition 4. tm ) f (r m−k sk ). tm ) = I∪J={1. . if we let (bk. . . . . in the sense of deﬁnition 3.1 . we showed that m f (t1 . in the sense of deﬁnition 4. . . . We will denote f (r. t)bk. t) = b0 + i=1 k=0 → pk (t. t). . where the coeﬃcient pk (t1 . . . . m and f (sm ) = f (s. (−1 .3. bk. r. .2. . . . with r < s.1. tm )− . . when E is of ﬁnite dimension n. tm )−1 + · · · + fn (t1 .1..4. |J|=k s − ti s−r j∈J tj − r s−r of f (r m−k sk ).4. we show that a standard polynomial curve of degree at most m in the sense of deﬁnition 3. is a standard polynomial curve of degree at most m. is a symmetric m-aﬃne function. . . Let us introduce the following abbreviations. . e en is clearly a symmetric aﬃne map such that F (t) = f (t..5. POLARIZING POLYNOMIALS IN ONE OR SEVERAL VARIABLES 137 We can now relate the deﬁnition of a (parameterized) polynomial curve in polar form of degree (at most) m given in deﬁnition 4. m Remark: The abbreviation f (r m−k sk ) can be justiﬁed rigorously in terms of symmetric tensor products (see section 11. . . . . . By lemma 4.2. with f (r m ) = f (r.. . Conversely. . .5. . . . s). − )). using lemma 4. and the map f : Am → E. . Thus. . m−k k as f (r m−k sk ).m} i∈I I∩J=∅.1. . . .1) given in section 3.. e . . . we have e en n m F (t) = f (t. First. tm ) = k=0 pk (t1 . . . tm ) = a0 + f1 (t1 . . .1. . Assume that the aﬃne polynomial curve F of polar degree m is deﬁned by a polar form f : Am → E. and in fact. . . s. . is an aﬃne polynomial curve of polar degree m. . . . .1. . we show that an aﬃne polynomial curve of polar degree m.1. 0 ≤ k ≤ m. . 1 ≤ i ≤ n.1. Let r. every polynomial Fi (t) corresponds to a unique m-polar form fi : Rm → R. . s ∈ A. r).

i to conclude that m−i (1 − t)m−(i+j) ti+j = j i+j i m i m−i ti Bj (t) = m Bi+j (t). in m terms of the Bernstein polynomials Bj (t) (over [0. where 0 ≤ i ≤ m. j=0 Multiplying both side by ti . . we get m−i ti = j=0 m−i However. among other things. t) are polynomials of degree ≤ m. Recall that the Bernstein polynomials m Bj (t) form a partition of unity: m m Bj (t) = 1. (m − i)!i! (m − (i + j))!j! (m − (i + j))!(i + j)! j!i! . . j m−i ti Bj (t) = ti m−i (1 − t)m−i−j tj = j m Since Bi+j (t) = m (1 − t)m−(i+j) ti+j . 0 ≤ i ≤ m. how polar forms of polynomials simplify quite considerably the treatment of B´zier curves and splines. e m m We conclude this chapter by proving that the Bernstein polynomials B0 (t).138 CHAPTER 4. . m−i (1 − t)m−i−j tj . we know that Bj (t) = m−i ti Bj (t). Bm (t) i also form a basis of the polynomials of degree ≤ m . MULTIAFFINE MAPS AND POLAR FORMS and since the pk (t. . The veriﬁcation consists in showing that m! (m − i)! m! (i + j)! = . we express each t . this shows that F is a standard polynomial curve of degree at most m. . 1]). For this. . and thus. j=0 Using this identity for m − i (instead of m). we just have to prove that i+j m i m−i j = m i+j i+j . j m−i (1 − t)m−(i+j) ti+j . We will see later on. . . we have m−i m−i Bj (t) = 1.

.<ik ≤m → → f (a1 . . for any a1 . j=0 we get m−i ti = j=0 i+j i m i m Bi+j (t). . Since 1. . .. . aik + −k . and n ≥ 0.. .3: m ∆vm · · · ∆v1 f (a) = (−1)m−k k=0 1≤i1 <. . . prove the identity (a1 + · · · + am )n = k1 +···+km 0≤ki ≤n n! ak1 · · · akm .6. . . t. . m k1 ! · · · km ! 1 =n Problem 2 (20 pts). substituting i+j i m i 139 m−i ti Bj (t) = m Bi+j (t) in ti = m−i m−i ti Bj (t). am ∈ R. . Prove that for any a. and there are m + 1 of them). tm form a basis of the polynomials of degree ≤ m. Bm (t) also form a basis of the polynomials of degree ≤ m (since they generate this space. . .6 Problems Problem 1 (20 pts). vi vi Problem 3 (10 pts). . am ). 4. . Prove the following statement assumed in the proof of lemma 4. . k More generally. the following identity holds for all n ≥ 0: n (a + b) = k=0 n n k n−k a b . ai1 + −1 . m ≥ 2. . .4. . . the m + 1 Bernstein m m polynomials B0 (t). Show that the Bernstein polynomial m Bk (t) = m (1 − t)m−k tk k . .1. . PROBLEMS which is indeed true! Thus. t2 . b ∈ R.

(ii) Let m fk = 1 m k ti I⊆{1. over [0. m Problem 4 (20 pts). Problem 7 (20 pts).... Prove that the polar form f : A3 → E of F can be expressed as f (u. Estimate the complexity of your algorithm. 1].. v. Prove the following recurrence equations: m−1 m−1 σk + tm σk−1 1 0 m σk = if 1 ≤ k ≤ m.140 reaches a maximum for t = CHAPTER 4. where 1 ≤ k ≤ m. (i) Write a computer program taking a polynomial F (X) of degree n (in one variable X). w) = (w − v)2 F (u) (w − u)2 F (v) (v − u)2F (w) + + . w) = 1 27F 24 u+v+w 3 − F (u + v − w) − F (u + w − v) − F (v + w − u) Problem 5 (20 pts). You may use Mathematica of any other language with symbolic facilities. Plot the Bernstein polynomials Bi4 (t). 3(w − u)(u − v) 3(w − v)(v − u) 3(v − w)(w − u) Advice: There is no need to do horrendous calculations. where n ≤ m. v. show that fk can be computed directly using the recurrence formula m fk = (m − k) m−1 k m−1 fk + tm fk−1 . m m Can you improve the complexity of the algorithm of question (i) if you just want to compute the polar values f (0m−i . and returning its m-polar form f . MULTIAFFINE MAPS AND POLAR FORMS k .m} |I|=k i∈I . Let F : A → E be a polynomial cubic curve. Think hard! Problem 6 (50 pts). . Prove that the polar form f : A3 → E of F can be expressed as f (u. Let F : A → E be a polynomial cubic curve. m and σk = m k m fk . 0 ≤ i ≤ 4. where 0 ≤ i ≤ m. m Alternatively. if k = 0 and m ≥ 0. 1i ). otherwise.

t2 . Show that in general.4.6. m Bim (t) = j=i (−1)j−i m j j i tj . B1 (t). Give the matrix expressing the polynomials 1. t. B2 (t). t3 in terms of the 3 3 3 3 Bernstein polynomials B0 (t). . PROBLEMS 141 Problem 8 (20 pts). B3 (t).

142 CHAPTER 4. MULTIAFFINE MAPS AND POLAR FORMS .

the de Casteljau algorithm presented earlier for curves of degree 3 in section 3. ..8 is generalized to polynomial curves of arbitrary degree m. The de Casteljau algorithm gives a geometric iterative method for determining any point F (t) = f (t. . t) on the curve segment F ([r. . b1 . is a symmetric m-aﬃne function. the de Casteljau algorithm can be used to calculate any point F (t) = f (t. Typically.3. that an aﬃne polynomial curve F : A → E of degree m deﬁned by its m-polar form f : Am → E.Chapter 5 Polynomial Curves as B´zier Curves e 5. . . . or B´zier e control points. the formulae giving the derivatives of polynomial curves are given.3. . In preparation for the discussion of spline curves. . . Actually. . bm . r = s. . we are interested in a polynomial curve segment F ([r.1 The de Casteljau Algorithm In this chapter. s]). . where r. . The powerful method of subdivision is also discussed extensively. . the de Boor algorithm is also introduced. Some programs written in Mathematica illustrate concretely the de Casteljau algorithm and its version using subdivision. and we showed that m f (t1 . . s ∈ A. . . lemma 4. b1 . |J|=k s − ti s−r j∈J tj − r s−r of f (r m−k sk ). and the conditions for joining polynomial curve segments with C k -continuity are shown. ..1. The only diﬀerence is that 143 .. . s]). . speciﬁed by the sequence of its m + 1 control points. . b0 . . Finally. . tm ) f (r m−k sk ).. tm ) = k=0 pk (t1 . bm . . is completely determined by the sequence of m + 1 points bk = f (r m−k sk ). s]. . for t ∈ A not necessarily in [r.m} i∈I I∩J=∅. 0 ≤ k ≤ m. where the coeﬃcient pk (t1 . where bk = f (r m−k sk ). tm ) = I∪J={1. . . t) on the curve F speciﬁed by the sequence of control points b0 . We saw in section 4. .

. When t is outside [r. where r. t) by repeated linear interpolations. and the result is the point F (t) on the curve. we can think of its m arguments as a multiset rather than a sequence. r) f (r. . The essence of the de Casteljau algorithm is to compute f (t. What’s good about the algorithm is that it does not assume any prior knowledge of the curve. . and the idea is to approximate the shape of the polygonal line consisting of the m line segments (b0 . t.1 The curve goes through the two end points b0 and bm . . such as the fact that the curve segment F ([r. as shown below: 1 f (r. m + 1 − j interpolations are performed. Let us review this case (polynomial cubic curves). s]) is contained in the convex hull of the control polygon (or control polyline) determined by the control points b0 . s) f (s. r. r. are arbitrary: f (t. . s. s) f (t. . using the fact that f is symmetric and m-aﬃne. we usually say that F (t) = f (t. . the computation of the point F (t) on a polynomial cubic curve F can be arranged in a triangular array. b1 . bm . . t. t3 ) (which is not generally on the curve). POLYNOMIAL CURVES AS BEZIER CURVES in the more general case.. The computation consists of m phases. r. b1 ). . and t.8. t. only one interpolation is performed. t) 2 3 The de Casteljau algorithm can also be used to compute any polar value f (t1 . certain properties holding for the curve segment F ([r. t2 . some of the points bk and bk+1 may coincide. s]. s]) may not hold for larger curve segments of F . but the algorithm still works ﬁne. s) f (r. . . bm of m + 1 control points. t. bm ). b2 ). s]. where in phase j.144 ´ CHAPTER 5. In phase m (the last phase). corresponding to the parameter value t ∈ A. t. t) f (r. . s]. . The following diagram shows an example of the de Casteljau algorithm for computing the point F (t) on a cubic. as shown 1 Actually. s. . s. b1 . even outside [r. t) is computed by extrapolation. s) The above computation is usually performed for t ∈ [r. s) f (r. We already discussed the de Casteljau algorithm in some detail in section 3. we can write the arguments in any order we please. s. (b1 . and thus. All that is given is the sequence b0 . but not through the other control points. We strongly advise our readers to look at de Casteljau’s original presentation in de Casteljau [23]. r) f (t. s) f (t. All we have to do is to use tj during phase j. As we observed. Since f is symmetric. . (bm−1 . but it works just as well for any t ∈ A. .

t1 . s) f (r. r. t2. t.1. t1 . . 0. t. s) f (r. the de Casteljau algorithm can also be used for computing other control points. s) Figure 5. . t1 . t) f (s. . t3 ) f (t1 . . s) 145 F (r) = f (r. .1: The de Casteljau algorithm below in the case where m = 3: 1 f (r. s. We will abbreviate f (t. 6). 6). This turns out to be very useful. t2 . 6. and f (6. t1 ) f (r. s. s) Since control points are polar values. r. t3). f (0. f (t3 . THE DE CASTELJAU ALGORITHM f (r. s) f (r. r) F (s) = f (s. t3 ). t1 = 2. s) f (r. f (0. r. f (0.5. s. t3 ): The general case for computing the point F (t) on the curve F determined by the sequence of control points b0 . t2 . t2 ). s. s) f (t1 . t) F (t) = f (t. The diagram below shows the computation of the polar values f (0. s = 6. s. t1 . s). r) f (r. r. bm . t) f (r. t2 . . s) f (r. t1 ). The following diagram shows an example of the de Casteljau algorithm for computing the polar value f (t1 . and t3 = 4. . t2 . r) f (t1 . t) f (t. . t. t2 = 3. . t3 . t3 ) on a cubic. There are several possible computations. i j k 2 3 f (t1 . t2 ): The polar value f (t1 . f (t1 . . t. s. . . s. and f (6. is shown below. s) f (s. t2 . r. 6. r. r. t2 . . r. where bk = f (r m−k sk ). f (0. . where r = 0. 6). . 0. s) . . t. 6). t3 ) is also obtained by computing the polar values f (0.

t2 . POLYNOMIAL CURVES AS BEZIER CURVES f (0. t2 . t3) f (0. t2 . 6) F (0) = f (0. t1) F (0) = f (0. t2 ) f (t1 .146 ´ CHAPTER 5. 6) Figure 5. 0. 0) F (6) = f (6. t2 = 3. 6. 0. 6. 0. t3 ) f (t3 . 0. t2 ) f (0. 6. for t1 = 2. 0.2: The de Casteljau algorithm. t3. 6.3: The de Casteljau algorithm. 6. t1. 6) f (0. 6) f (0. t2 . 6) f (0. 6) f (0. 6. t1 . t1 . for t1 = 2. 0) F (6) = f (6. t3 = 4 . t3 ) f (t1 . 6) Figure 5. 6) f (6. t3 ) f (6. 6) f (t1 . t3 = 4 f (0. t3 ) f (0. 0. t2 = 3. 6) f (0.

we have the following equations: bi.j . let us deﬁne the following points bi. f (tj r m−i−j si ) if 1 ≤ j ≤ m.. The point f (tj r m−i−j si ) is obtained at step i of phase j.. where i + j + k = m.. f (t j−1 s−t s−r f (tj−1r m−i−j+1 si ) + j −1 t−r s−r j f (tj−1r m−i−j si+1 ). by the interpolation step f (tj r m−i−j si ) = 0 f (r m ) f (r m−1 s) . used during the computation: bi. f (tj−1 r m−j+1) f (tj r m−j ) .j−1 + t−r s−r bi+1.. for 1 ≤ j ≤ m.5.. . f (tj r m−i−j si ) ... m−1 m 1 f (tr m−1 ) 2 . THE DE CASTELJAU ALGORITHM 147 as f (ti r j sk ).. j−1 m−i−j+1 i f (t r s) f (tj−1r m−i−j si+1 ) f (tm−1 r) .j−1 . ... f (rsm−1 ) f (tsm−1 ) f (sm ) In order to make the above triangular array a bit more readable..j = s−t s−r bi. 0 ≤ i ≤ m − j... .j = bi if j = 0.. f (tm−1 s) m−j f (tm ) rs ) f (tj sm−j ) f (tj−1 sm−j+1 ) .. 0 ≤ i ≤ m.1... 0 ≤ i ≤ m − j. Then.. f (tj−1 r m−j s) .

.1 . bk.0 . . (b1. bm ) is also called a control polygon of the curve.0 . b1 )..j−1 . . bm.1 . the algorithm consists of a diagram consisting of the m polylines (b0.0 ).j 1 . bm−2. . . bm−1. bm−j. . b2. s]. m .2 .0 ). . .1 ) (b0. .0 When r ≤ t ≤ s. (b1. b1. b1.m−2 . When t is outside [r. . bm−k−j+1. and bi.m . we still obtain m shells and a de Casteljau diagram.2 ). b0.m−2 ) (b0. .0 ). (b2. (bm−2. .. . b0.2 ). j −1 j .. (b3 ..0 . b2 ). b4 ).m−k . . .m−1 . (b2 .m−2 ). . (b2.m−1 ) called shells.j lies between bi.m−2 .j . . but the shells are not nicely nested. b3. (b1. b2. . (b3.1 ).j−1 bi+1.j−1 . b1. (b1.j−1 b0. b3. Note that the shells are nested nicely.0 . .j−1 .0 ) (b0.2 ) . and with the point b0.2 .2 . . bi. b1. bi. .1 bm−k.j . In this case. . bm−1. they form the de Casteljau diagram. (bm−1 .0 ). . . The polyline (b0 . (b0.1 ). POLYNOMIAL CURVES AS BEZIER CURVES Such a computation can be conveniently represented in the following triangular form: 0 b0. .148 ´ CHAPTER 5.. . . (bm−3. (bm−1. b2. . m− k . .j . b2.0 .1 ).0 b0..1 b1. bm−k−j...0 .1 . . . .0 . . . (b1 .1 .m−k b0.j−1 bm−k−1. each interpolation step computes a convex combination.. . . geometrically. bm−j+1.0 bm−1. b3 )..1 bm. b4. b1. .j−1 and bi+1.m . .

and not necessarily only in [r. . . s]. or B[r. . . in the sense that f (r.3. THE DE CASTELJAU ALGORITHM 149 By lemma 4. without actually using the Bernstein polynomials. . Note that the parameter t can take any value in A. s]. bm . we are assuming that t ∈ [r. s]. m−i i where f is the polar form of the B´zier curve. s. as B b0 . bm . . . Thus. *) . the de Casteljau algorithm provides an iterative method for computing F (t). s]. .t. s](t) bk . . The function decas computes the point F (t) on a polynomial curve F speciﬁed by a control polygon cpoly (over [r. The point F (t) is given by the formula m F (t) = k=0 m Bk [r. and the second one being F (t) itself. . we have an explicit formula giving any point F (t) associated with a parameter t ∈ A. s]. s](t) = m k s−t s−r m−k t−r s−r k are the Bernstein polynomials of degree m over [r. for a value t of the parameter.5. . on the unique polynomial curve F : A → E of degree m determined by the sequence of control points b0 . . These functions all use a simple function lerp performing aﬃne interpolation between two points p1 and p2. and the point e corresponding to the parameter value t as B b0 .s_. s] . . with respect to the aﬃne frame [r. s]). s]).1. s]. but when we refer to the B´zier e curve segment over [r.t)/(s . affine basis [r. (* Performs general affine interpolation between two points p. . .t_] := (s . This can be advantageous for numerical stability. [r. r . . The function badecas simply computes the point F (t) on a polynomial curve F speciﬁed by a control polygon cpoly (over [r. s) = bi . bm . and interpolating value t *) lerp[p_List. where the polynomials m Bk [r. but also the shells of the de Casteljau diagram. .r) q. . We will sometimes denote the B´zier curve determined by the sequence of control points b0 .r_.r)/(s .q_List. bm .1. . .r) p + (t . and we give below several versions in Mathematica. .r. . and deﬁned with respect e to the interval [r. The result is the point F (t). q (* w. The output is a list consisting of two sublists. . . s]. s] (t). The de Casteljau algorithm is very easy to implement. [r. the ﬁrst one being the shells of the de Casteljau diagram. s].

s_. b = {}.1. r_. res}. 1. lseg = Append[lseg. {i. POLYNOMIAL CURVES AS BEZIER CURVES (* (* (* computes a point F(t) on a curve using the de Casteljau algorithm *) this is the simplest version of de Casteljau *) the auxiliary points involved in the algorithm are not computed *) badecas[{cpoly__}. {j. bb[[i+1]]. j. {i. j}. t_] := Block[ {bb = {cpoly}.1. b = {}. t]]. Do[ Do[ b = Append[b. t]].150 ´ CHAPTER 5. s. bb = b. r. 1. {b[[i . lseg = {}. m . (m = Length[bb] . m} ]. bb[[1]] ) ]. bb = b. m. res ) ]. s_. If[i > 1. (* computes the point F(t) and the line segments involved in computing F(t) using the de Casteljau algorithm *) decas[{cpoly__}. lerp[bb[[i]]. {j. Do[ Do[ b = Append[b. 1.j + 1} ]. r. m} ]. i. t_] := Block[ {bb = {cpoly}. bb[[1]]]. (m = Length[bb] . b[[i]]}]] . .1]]. res := Append[lseg. lerp[bb[[i]]. r_. bb[[i+1]]. b = {}. i. b = {}. The following function pdecas creates a list consisting of Mathematica line segments and of the point of the curve. m. ready for display. s. 1. m .j + 1} ].

Line[edge]]. . res = Drop[res. t]. f (t1 . res ]. . tj−1 r m−j s) . tm ) is shown below.1. tj−1 rsm−j ) f (t1 . tj−1r m−j+1 ) f (t1 . l1. tj−1 r m−i−j+1 si ) f (t1 . and computes the line segments in Mathematica. tj−1 s . . {i. The general computation of the polar value f (t1 ..01]. tm ) ) . f (t1 . .. l1} ]. .. tj sm−j ) f (t1 . res. tj−1 r m−i−j si+1 ) . res = Append[ll.5.. pt = Last[res].. . 1.. f (t1 . .. .. f (rsm−1 ) f (t1 sm−1 ) f (sm ) m−j+1 151 1 f (t1 r m−1 ) j−1 j m . . {RGBColor[1. . r_. 0 f (r m ) f (r m−1 s) . ll. f (t1 . . . tj r m−i−j si ) . . . . .. s. -1]. THE DE CASTELJAU ALGORITHM (* this function calls decas.. l1 = Length[res].. tj r m−j ) . ll = {}. t_] := Block[ {bb = {cpoly}. pt. . f (t1 . f (t1 .. r.. . Point[pt]}]. . Do[ edge = res[[i]]. ll = Append[ll. .0. . edge}. with colors *) pdecas[{cpoly__}. . . PointSize[0. i.0]. res = decas[bb.. . s_.

0 ≤ i ≤ m − j. . m−i i as f (r m−i si ). res}.152 We abbreviate ´ CHAPTER 5. . deﬁning the points bi. b = {}. by the interpolation step f (t1 . tj r m−i−j si ). lseg = Append[lseg. . t[[j]]]]. If[i > 1. and 0 ≤ i ≤ m − j. and in the case where j = 0. m. . tj−1 r m−i−j+1 si ) + tj − r s−r f (t1 . lseg = {}. s). .j−1 + tj − r s−r bi+1. j m−i−j i as f (t1 . j. . . tm) *) the input is a list tt of m numbers *) gdecas[{cpoly__}. r. i. tj . . for 1 ≤ j ≤ m. t = {tt}. 0 ≤ i ≤ m − j. s.1. . tj r m−i−j si ) = s − tj s−r f (t1 . . tj r m−i−j si ) is obtained at step i of phase j. .j = bi if j = 0. . bb[[i+1]]. . lerp[bb[[i]]. we have the following more readable equations: bi. r. . b[[i]]}]] . s). . we abbreviate f (r. where 0 ≤ i ≤ m. f (t1 . . tj r m−i−j si ) if 1 ≤ j ≤ m. s. .j used during the computation as bi. . s. r. {tt__}. (* (* (* computes a polar value using the de Casteljau algorithm *) and the line segments involved in computing f(t1. s_] := Block[ {bb = {cpoly}.1]]. 0 ≤ i ≤ m. . POLYNOMIAL CURVES AS BEZIER CURVES f (t1 . . . tj−1 r m−i−j si+1 ). (m = Length[bb] .. . .j−1 . r_. where 1 ≤ j ≤ m. {b[[i . .j = s − tj s−r bi. r. . . . . Do[ Do[ b = Append[b... Again. . The computation of polar values is implemented in Mathematica as follows. . . The point f (t1 . . .

. tm ) that it computes. is symmetry.j + 1} ]. The above result is closely related to a standard result known as Menela¨ s’s theorem. yields the same result a interpolating ﬁrst with respect to µ. Since the algorithm proceeds by aﬃne interpolation steps. We can establish this fact. . which is obvious. as follows. This is because. . and then with respect to λ. . res ) ]. b = {}. interpolating ﬁrst with respect to λ. C be three points. since both of these points coincide with the point R = (1 − λ)(1 − µ)A + (λ + µ − 2λµ)B + λµC. and that aﬃne maps preserve aﬃne combinations. . This can be expressed as h(B b0 . . . and let Pλ = (1 − λ)A + λB. then the B´zier curve F ′ determined by the sequence of control points h(b0 ). . h(bm ). is a symmetric multiaﬃne map.5. . points on a B´zier curve speciﬁed by a sequence of control points e b0 . s]] . What is not entirely obvious. and then with respect to µ. Let A. {j. . m . Qµ = (1 − µ)B + µC. . obtaining a curve h(F ). tm ) remains invariant if we exchange any two arguments. This means that if an aﬃne map h is applied to a B´zier curve F e speciﬁed by the sequence of control points b0 . is identical to the curve h(F ). u We now consider a number of remarkable properties of B´zier curves. it is clear that it yields a multiaﬃne map. . . B. . s] ) = B [h(b0 ). . Since every permutation is a product of transpositions. . 153 Remark: The version of the de Casteljau algorithm for computing polar values provides a geometric argument for proving that the function f (t1 . [r. bm . . . . . Pµ = (1 − µ)A + µB. bm . Thus. (1 − µ)Pλ + µQλ = (1 − λ)Pµ + λQµ . bm . . THE DE CASTELJAU ALGORITHM . images e of the original control points b0 . . . 1. m} ]. . . {i. . . we claim that Qλ = (1 − λ)B + λC. bb[[1]]]. 1. and also Then. bb = b. . h(bm ). . . we only need to show that f (t1 . . bm are obtained by computing aﬃne combinations. e Aﬃne Invariance. . [r. . res := Append[lseg.1.

bm . b0 . . This is because. bm . rather than applying the aﬃne map to all the points computed on the original curve. with the same sequence of control points b0 . . bm and deﬁned over the interval [r. over the interval [r. . [r. who can also verify the following two properties: B b0 . over [0. r] (t). . . . . r + h] (t) = B b0 . . is the same as the B´zier e t−r curve F r−s . . This fact is basically obvious. . we simply apply the aﬃne map to the control points. . . and B b0 . 1] t−r r−s . . . . s]. bm . The B´zier curve F (t) speciﬁed by the see quence of control points b0 . s] (t) = B b0 . . [r. . . when r ≤ t ≤ s. . all aﬃne combinations involved in computing a point F (t) on the curve segment are convex barycentric combinations. [s. . . If we want to move a curve using an aﬃne map. . s] (r < s). . The segment of B´zier curve F (t) speciﬁed by the sequence of e control points b0 . . [0. and then contruct the new B´zier curve. This can be expressed as B b0 . [r. . . . h] (t − r). [0. Invariance under aﬃne parameter change. . . . POLYNOMIAL CURVES AS BEZIER CURVES B Pµ R Pλ Qλ Qµ A Figure 5. . This is usually a lot cheaper than moving e every point around. . 1]. . . bm . is contained within the convex hull of the control points b0 . . s] (t) = B bm . . bm . bm . bm . . . . .154 ´ CHAPTER 5. Convex Hull Property. .4: Symmetry of biaﬃne interpolation C This property can be used to save a lot of computation time. bm . and left to the reader.

. Another way to see it. Pseudo-local control. r) = bm−i . It will be shown in section 5. . . . it is indeed F ′ (t). . . . . . . . m−1 = f (t. s] (r + s − t) = B bm . . This can be expressed as B b0 . [r. where f is the polar form of the original curve F (t) speciﬁed by the sequence of control points b0 . . bm are collinear (belong to the same line). m−i i m−i i and since this curve is unique. . . . t. Given a B´zier curve F speciﬁed by a sequence of control points e b0 . . This is because it can be shown i that the Bernstein polynomial Bin reaches its maximum at t = n . . . . If the points b0 . . s) = f (s. passes trough the points b0 and bm . . . . [r. is to observe that the curve F (r + s − t). . . bm . . . Furthermore. is determined by the two points b0. . bm is that same line. . Symmetry. . . s]. . This can be seen easily using the symmetry of the Bernstein polynomials. . s. bm . whose polar form is g(t1 . THE DE CASTELJAU ALGORITHM 155 This property can be used to determine whether two B´zier curve segments intersect e each other. . . e This is obvious since the points on the curve are obtained by aﬃne combinations. . . s]. . . . . . Similarly. . r) and b1. r. . . The B´zier curve F (t) speciﬁed by the sequence of control points e b0 . . . Linear Precision. Endpoint Interpolation. the curve is most aﬀected i around the points whose parameter value is close to n .5. . . r + s − tm ). . the tangent at the point bm is the line determined by bm−1 and bm (provided that these points are distinct). is equal to the B´zier curve F ′ (t) speciﬁed by the e sequence of control points bm . b0 . s). s]. over the interval [r. tm ) = f (r + s − t1 . over the interval [r.1. . . then the B´zier curve determined by the sequence of control points b0 . bm . . the tangent at the current point F (t) determined by the parameter t. r. s] (t). Determination of tangents. b0 . The B´zier curve F (r + s − t) speciﬁed by the sequence of control points e b0 . if some control point bi is moved a little bit. . bm .4. s. . over the interval [r. . . . . . the tangent to the B´zier curve at the point b0 is the line determined by b0 e and b1 . . . bm . . . . t. m−1 m−1 given by the de Casteljau algorithm. . m−1 = f (t. satisﬁes the conditions g(r. that when b0 and b1 are distinct. . .

[r. We will prove the variation diminishing property as a consequence of another property.1 bm−k.. . bm−j+1. Observe that the two diagonals b0. .0 . . and the computation can be conveniently represented in the following triangular form: 0 b0. bm . . .1 . bi. the number of intersections between the B´zier curve segment F [r.. the subdivision property. . subdivision can be used to approximate a curve using a polygon. . . bm−k−j. . . . b0.0 b0. . . . j −1 j . is less than or equal e to the number of intersections between the control polygon determined by b0 . b0. Given a sequence of control points b0 .m .. . bm−1.0 .. .. . .j−1 bi+1. ..j−1 .2 Subdivision Algorithms for Polynomial Curves We now consider the subdivision method. As we will see. . . .0 Let us now assume that r < t < s. for every t ∈ A. POLYNOMIAL CURVES AS BEZIER CURVES Variation Diminishing Property. s] and the hyperplane H. . . bm . .j−1 b0.1 bm.. . . s] (t) = b0. . .j .1 b1. Given a B´zier curve F speciﬁed by a sequence of e control points b0 . bm . b0. over [r. .j . and the hyperplane H.m .j . s]. . . bi. m .m on the B´zier e curve. . 5. and an interval [r. a convex control polygon corresponds to a convex curve. . . b0. s]. b0. bk. bm . . and the convergence is very fast. bm−j. .j . . .0 bm−1. m− k .156 ´ CHAPTER 5. . .0 .m−k b0.j−1 bm−k−1. bm−k−j+1. . As a consequence. . for every hyperplane H. . we saw how the de Casteljau algorithm gives a way of computing the point B b0 . .j−1 .j 1 .. .m−k .

. . Among these points. This is indeed the case.j . . form a subdivision of the curve segment B b0 .j . .m . bm over [r. s] (u) = B b0. . [r. . . . . . t] and B b0. . . . . . we say that the two curve segments B b0.m . . . there are 2n + 1 points on the original curve.2.j . bm−j. . . each consist of m + 1 points. . .m . . . bm−j. bm. . the points corresponding to parameter values t = 2k . .0 .0 . s]. b0. . . . bm−j.j . . given a control polygon Π with m sides. .j . . and h is the polar form associated with the B´zier curve speciﬁed by the sequence of control points e b0. bm. . b0.0 . We claim that we have B b0 . . bm . . . and so 4 on. Clearly. (i + 1)/m]. for all u ∈ A. For the n following lemma. we assume that E is a normed aﬃne space. 0 ≤ k ≤ 2n . and continue recursively in this manner. g is the polar form associated with the B´zier curve e speciﬁed by the sequence of control points b0. s] . Also.m . .0 . . t] (u) = B b0.j . . we can in turn subdivide each of the two segments.m−1 . t]. bm−j. .0 .0 over [t. . and 2n control subpolygons.j . SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES and b0.j . . we have 2n B´zier segments. [t. For t ∈ [r. . . .3. bm−j. if f is the polar form associated with the B´zier curve speciﬁed by the sequence e of control points b0 . . . since f and g agree on the sequence of m + 1 points b0. bm.m over [r. 157 Indeed. . . and then t = 4 and t = 3 . . . . . s] (u). if we ﬁrst choose t = 2 . whose union e forms a polygon Πn with m2n + 1 nodes. . b0. [r. . by lemma 4. b0. and the convergence is in fact very fast. It seems intuitively clear that the polygon obtained by repeated subdivision converges to the original curve segment. b1. and f and h agree on the sequence of m + 1 points b0. . . . at the n-th step. . s] as above. [r.0 . Assuming for 1 1 simplicity that r = 0 and s = 1.5. . we assume that Π is viewed as the piecewise linear curve deﬁned such that over [i/m. . . . b0. .j . . . . . bm. we have f = g = h. . with 0 ≤ i ≤ m − 1. b0. b0. Π(u) = (i + 1 − m u)ai + (m u − i)ai+1 . . [t. . . .m . . . . . . s]. .m . s] .m . [r. .m . . bm . . . . bm.0 . . .0 .1. b0.

converges uniformly to the curve segment F = B b0 . . . .|Π|=m 2 max 0≤u≤1 where Π is any subpolygon of Πn consisting of m sides. .s] . and as B[t.2. . 0≤u≤1 Π⊆Πn . . . this yields a fast method for plotting the curve segment! The subdivision method can easily be implemented. Since we are subdividing in a binary fashion. POLYNOMIAL CURVES AS BEZIER CURVES Lemma 5. from above.0 . the polygon obtained by subdivision becomes indistinguishable from the curve. . whose endpoints are on the curve F . .s] the control polygon b0. bm. . . bm . Given a polynomial curve F deﬁned by a control polygon B = (b0 .j . The following Mathematica function returns a pair consisting of B[r. we have −− − − − − −→ max Πn (u)F (u) ≤ −− −→ −−− mM max Π(u)F (u) ≤ n . [0.j≤m − → bi bj ≤ m max 0≤i≤m−1 −− −→ bi bi+1 . . which proves the lemma. . and thus. 1] . −− −→ by the triangle inequality. s]. .1 . .t] and B[t. . . If Π is any control polygon with m + 1 nodes. and since only convex combinations are involved. for a B´zier curve segment F . b0. Then. e over the interval [0. since F e is contained in the convex hull of the control polygon. b0. in the sense that −− − − − − −→ C max Πn (u)F (u) ≤ n . . . The above lemma is the key to eﬃcient methods for rendering polynomial (and rational) curves. Given a B´zier curve speciﬁed by a sequence of m+1 control points b0 . . .m .m . b0. . . . b1. 0≤u≤1 2 for some constant C > 0 independent of n.t] the control polygon b0. bm . bm . . by the triangle inequality. . due to the screen resolution. .j . .158 ´ CHAPTER 5. . 1]. . the maximum length of the sides of M the polygon Πn is 2n . After a certain number of steps. .1. for the original control polygon with control points b0 . Let M = max bi bi+1 . if we subdivide in a binary fashion. for every t ∈ A. bm ) over an aﬃne frame [r. Proof.m−1 . from an input control polygon cpoly.0 . the distance between the B´zier curve e segment F and the control polygon satisﬁes the inequality 0≤u≤1 −− −→ −−− max Π(u)F (u) ≤ max 0≤i. the polygon Πn obtained after n steps of subdivision. . bm−j. we denote as B[r. .

bb[[i+1]]. i}.. . res ) ].5.. res}.. t]] . s. (* subdivides each control polygon in a list of control polygons (* using subdecas.. t]]. Uses t = (r + s)/2 *) subdivstep[{poly__}..r. bb = b. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES (* (* (* Performs a single subdivision step using the de Casteljau algorithm Returns the control poly (f(r. . lerp[bb[[i]]. i. {i. lpoly ) *) .. t.. In order to approximate the curve segment over [r..1. r. l} ].. (m = Length[bb] . b = {}. l. t_] := Block[ {bb = {cpoly}.. ld = {}. ud = {}. s]. we recursively apply subdivision to a list consisting originally of a single control polygon. b[[1]]]. 1. The function subdiv performs n calls to subdivstep. .. t.{ld}]. t = (r + s)/2. s.j + 1} ]. b = {}. {i.. ld = Prepend[ld. m. s_. s_] := Block[ {cpoly = {poly}. ud = Append[ud. s. t. in order to display the resulting curve. r_. m . b[[m . 1. j. Do[ lpoly = Join[lpoly. ud = {bb[[1]]}. Do[ Do[ b = Append[b.j + 1]]]. r_. (l = Length[cpoly]. r. lpoly = {}.. subdecas[cpoly[[i]]. 1. the function makedgelis makes a list of Mathematica line segments from a list of control polygons. {j. res := Join[{ud}. m} ].2. s)) 159 *) *) *) subdecas[{cpoly__}. t)) and (f(t. ld = {bb[[m + 1]]}. The function subdivstep subdivides each control polygon in a list of control polygons. Finally.

r. n} ]. 1. (* To create a list of line segments from a list of control polygons *) makedgelis[{poly__}] := Block[ {res. ( newp = {pol1}. {i. res = {}. l2 = Length[sl]. n_] := Block[ {pol1 = {poly}. 1. The subdivision method is illustrated by the following example of a curve of degree 4 given by the control polygon cpoly = ((0. j. sl[[j]]}]]]. for n = 1. 1. 5. (10. (0. −4)). 4. sl. 2. Do[ newp = subdivstep[newp. 3. −20). Line[{sl[[j-1]]. (l1 = Length[newsl]. newp ) ]. res = Append[res. ´ CHAPTER 5. s]. s_. (10. . l1} ]. i. 30). 30). i}. {j.160 ]. Do[ sl = newsl[[i]]. newp = {}. newsl = {poly}. l1. res ) ]. The following 6 pictures show polygonal approximations of the curve segment over [0. 1] using subdiv. −4). (5. POLYNOMIAL CURVES AS BEZIER CURVES (* calls subdivstep n times *) subdiv[{poly__}. l2}. 6. r_. Do[If[j > 1. l2} ]. {i.

1 iteration .2. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 161 Figure 5.5.5: Subdivision.

162 ´ CHAPTER 5. 2 iterations . POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.6: Subdivision.

7: Subdivision. 3 iterations . SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 163 Figure 5.2.5.

164 ´ CHAPTER 5.8: Subdivision. 4 iterations . POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.

5. 5 iterations . SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 165 Figure 5.2.9: Subdivision.

10: Subdivision. 6 iterations .166 ´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.

(b′ . When r = a. . We can now prove the variation diminishing property. wrt original frame (s.r. c) of the control polygon. assuming a = r. using b. if we contruct the points b′ = (1−λ)a+λb and b′′ = (1−λ)b+λc. Do[ pt = pola[[i]]. s_. . b) and (b. [r.. (* (* (* (* Computes the control polygon wrt new affine frame (a. we get the control polygon B[r. pt].. This immediately follows by convexity. s] using the parameter a. r. s] over which the original control polygon is deﬁned. {i. a. b. s. (* Print[" npoly: ".lambda) r + lambda t and that b = (1 . a].a] . r. t) Returns control poly (f(a. and modify the control polygon so that instead of having the two edges (a. b′′ ). and then we reverse this control polygon and subdivide again w. [a. we now have the three edges (a.2. npoly] *) npoly = subdecas[poly. pola. and (b′′ . 1. r_. Given any two adjacent edges (a. r] using b. npoly[[1]] ) ]. npoly = subdecas[pol2. b)) *) *) *) *) newcpoly[{cpoly__}. i. b) Assumes that a = (1 . s.. ( If[a =!= r.b] over a new aﬃne frame [a. r. a_. where 0 ≤ λ ≤ 1. m.r. c). we subdivide w.5. b_] := Block[ {poly = {cpoly}.mu) r + mu t. b) and (b. b′ ). we observe that a hyperplane intersects the new polygon in a number of points which is at most the number of times that it intersects the original polygon. pol2. Then. m = Length[pola].t. c). Observe that the subdivision process only involves convex aﬃne combinations. pol1. b]. s].r.. a. to get B[a. . s]. b] diﬀerent from the interval [r. pol1 = subdecas[poly. pola = pol1[[1]]. Another nice application of the subdivision method is that we can compute very cheaply the control polygon B[a.. by subdividing once w.t. b] of a polynomial curve given by a control polygon B over [r. [r. pt}. pol2 = Prepend[pol2. Indeed.. pol2 = {}. The above function can be used to render curve segments over intervals [a. m} ].b] . npoly. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 167 The convergence is indeed very fast. b] ].t.

. For example. 1 g(t1 . ti . .. tm+1 ). . Instead of the above notation. . with b1 = b0 . . then F considered of degree m + 1 (and thus g). Indeed. . . it is sometimes necessary to view F as a curve of polar degree m + 1. b1 = i m+1 m+1 where 1 ≤ i ≤ m. b1 . . . This can be done very easily in terms of polar forms. .168 ´ CHAPTER 5. and since it is unique. . . degree raising. in the sense that g(t. and b1 0 m+1 = bm . by the j equations: m+1−i i bi−1 + bi . Since these polygons obtained via subdivision converge to the B´zier curve. tim ) . . if f is biaﬃne. t2 . . . Or a system may only accept curves of a speciﬁed degree. t) = F (t). it may be necessary to raise the (polar) degree of the curve. . for example. it is equal to F on the diagonal. . . . t2 ) + f (t1 . certain algorithms can only be applied to curve segments of the same degree. e a hyperplane intersects the B´zier curve in a number of points which is at most the number e of times that it intersects its control polygon. 1≤i1 <. . i=1 where the hat over the argument ti indicates that this argument is omitted. if F is deﬁned by the polar form f : Am → E. . . g as deﬁned above is clearly m + 1-aﬃne and symmetric. say 3. . we can show that a hyperplane intersects any polygon obtained by subdivision in a number of points which is at most the number of times that it intersects the original control polygon. the polar form g : Am+1 → E that will yield the same curve F . . . For example. t3 ) = f (t1 . is speciﬁed by m + 2 control points b1 . . . 3 If F (and thus f ) is speciﬁed by the m + 1 control points b0 . we have g(t1. . the following notation is often used. . We consider one more property of B´zier curves. and thus. m+1 m is necessarily g(t1 . t3 ) .<im ≤m+1 Indeed. . t3 ) + f (t2 . Given a B´zier curve e e F of polar degree m. . . POLYNOMIAL CURVES AS BEZIER CURVES by induction. . in order to use such a system on a curve of lower degree. . bm . and it is an 0 m+1 easy exercise to show that the points b1 are given in terms of the original points bi . . it is the desired polar form. . . a curve of degree 2. tm+1 ) = 1 m+1 f (ti1 . and speciﬁed by a sequence of m + 1 control points b0 . . bm . . tm+1 ) = m+1 m+1 f (t1 .. . . t) = f (t.

u6 ) . this convergence is much slower than the convergence obtained by subdivision. u3) f (t1 . u2. f (u3. u5 . THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM 169 One can also raise the degree again. u4 . u4. we say that this sequence is progressive iﬀ the inequalities indicated in the following array hold: u1 = u2 = = u3 = = = u4 u5 u6 Then. where the ui are real numbers taken from a sequence u1 . converge to the original curve segment. for reasons that will become clear shortly. u2 . . u5 ). u3. . it is convenient to consider control points not just of the form f (r m−i si ). t2 . u3 ) f (u2. . u2m of length 2m. u6 . u3 . u5 ) f (u3. u4 . t3 ) from the above control points. t2 . u4) f (t1 . . u4). u4 ) f (t1 . and it is not useful in practice. Such a version will be called the progressive version. satisfying certain inequality conditions. 5. f (u2 . However. Now. u2 . u4 .3. u5 ) f (u4. u3). u3 ) 2 3 f (t1 . This explains the name “progressive case”. t3 ) f (t1 . u6 . u3 . u4 ) 1 f (t1 . u2 . using the following triangular array obtained using the de Casteljau algorithm: 0 f (u1. we can compute any polar value f (t1 . . u5 . uk+m). f (u4. but of the form f (uk+1. Observe that these points are obtained from the sequence u1 . Given a sequence u1 . . u3. Let us begin with the case m = 3. u5 . u6 ). . and so on. we consider the following four control points: f (u1 .5. u5. t2 . . from left to right. by sliding a window of length 3 over the sequence. When dealing with splines. u3 . u4 . t2 . u2. It can be shown that the control polygons obtained by successive degree raising.3 The Progressive Version of the de Casteljau Algorithm (the de Boor Algorithm) We now consider one more generalization of the de Casteljau algorithm that will be useful when we deal with splines.

170 f (u2 , u3 , u4) f (t1 , u2, u3 )

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES f (u3 , u4 , u5) f (t1 , u3, u4 ) f (t1 , t2 , u3 ) f (t1 , t2 , t3 ) f (t1 , t2 , u4 )

f (t1 , u4, u5 )

f (u1 , u2 , u3) f (u4 , u5 , u6) Figure 5.11: The de Casteljau algorithm, progressive case

At stage 1, we can successfully interpolate because u1 = u4 , u2 = u5 , and u3 = u6 . This corresponds to the inequalities on the main descending diagonal of the array of inequality conditions. At stage 2, we can successfully interpolate because u2 = u4 , and u3 = u5 . This corresponds to the inequalities on the second descending diagonal of the array of inequality conditions. At stage 3 we can successfully interpolate because u3 = u4 . This corresponds to the third lowest descending diagonal. Thus, we used exactly all of the “progressive” inequality conditions.

The following diagram shows an example of the de Casteljau algorithm for computing the polar value f (t1 , t2 , t3 ) on a cubic, given the progressive sequence u1 , u2 , u3 , u4 , u5 , u6 :

In the general case, we have a sequence u1 , . . . , u2m of numbers ui ∈ R.

Deﬁnition 5.3.1. A sequence u1, . . . , u2m of numbers ui ∈ R is progressive iﬀ uj = um+i , for all j, and all i, 1 ≤ i ≤ j ≤ m. These m(m+1) conditions correspond to the lower 2

5.3. THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM triangular part of the following array: u1 u2 . . . uj . . . . . . . . . um−1 um = = =

171

= = ... ... ... ... ... = ... = . . . um+j = ... ... = ... ... = ... = = . . . u2m−1 u2m ... ... = ... = . . . u2m−j+1

= =

= =

um+1 um+2

Note that the j-th descending diagonal of the array of progressive inequalities begins with uj (on the vertical axis), and ends with u2m−j+1 (on the horizontal axis). The entry u2m−j+1 will be before or after um+j , depending on the inequality 2j ≤ m + 1. We will abbreviate f (t1 , . . . , tj , ui+j+1, . . . , um+i ),

j m−j

**as f (t1 . . . tj ui+j+1 . . . um+i ), and when j = 0, we abbreviate f (ui+1 , . . . , um+i ),
**

m

as f (ui+1 . . . um+i ). The point f (t1 . . . tj ui+j+1 . . . um+i ) is obtained at step i of phase j, for 1 ≤ j ≤ m, 0 ≤ i ≤ m − j, by the interpolation step f (t1 . . . tj ui+j+1 . . . um+i ) = um+i+1 − tj f (t1 . . . tj−1 ui+j . . . um+i ) um+i+1 − ui+j tj − ui+j f (t1 . . . tj−1 ui+j+1 . . . um+i+1 ). + um+i+1 − ui+j

Phase j of the general computation of the polar value f (t1 , . . . , tm ), in the progressive

172 case, is shown below:

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

j−1 f (t1 . . . tj−1 uj . . . um ) f (t1 . . . tj−1 uj+1 . . . um+1 ) ... f (t1 . . . tj−1 ui+j . . . um+i ) f (t1 . . . tj−1 ui+j+1 . . . um+i+1 ) ... f (t1 . . . tj−1 um . . . u2m−j ) f (t1 . . . tj−1 um+1 . . . u2m−j+1 )

j f (t1 . . . tj uj+1 . . . um ) ... f (t1 . . . tj ui+j+1 . . . um+i ) ... f (t1 . . . tj um+1 . . . u2m−j )

Note that the reason why the interpolation steps can be performed is that we have the inequalities uj = um+1 , uj+1 = um+2 , . . . , ui+j = um+i+1 , . . . , um = u2m−j+1, which corresponds to the j-th descending diagonal of the array of progressive inequalities, counting from the main descending diagonal. In order to make the above triangular array a bit more readable, let us deﬁne the following points bi,j , used during the computation: bi,j = f (t1 . . . tj ui+j+1 . . . um+i ), for 1 ≤ j ≤ m, 0 ≤ i ≤ m − j, with bi,0 = f (ui+1 , . . . , um+i ), for 0 ≤ i ≤ m. Then, we have the following equations:

bi,j =

um+i+1 − tj um+i+1 − ui+j

bi,j−1 +

tj − ui+j um+i+1 − ui+j

bi+1,j−1 .

The progressive version of the de Casteljau algorithm is also called the de Boor algorithm. It is the major algorithm used in dealing with splines. One may wonder whether it is possible to give a closed form for f (t1 , . . . , tm ), as computed by the progressive case of the de Casteljau algorithm, and come up with a version of lemma 4.3.1. This turns out to be diﬃcult, as the case m = 2 already reveals!

5.3. THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM

173

Consider a progressive sequence u1, u2 , u3 , u4 , where the following inequalities hold: u1 = u2 = = u3 u4 We would like to compute f (t1 , t2 ) in terms of f (u1 , u2 ), f (u2, u3 ), and f (u3 , u4 ). We could apply the algorithm, but we can also proceed directly as follows. Since u1 = u3 and u2 = u4 , we can express t1 in two ways using two parameters λ1 and λ2 , as t1 = (1 − λ1 )u1 + λ1 u3 = (1 − λ2 )u2 + λ2 u4 , and since u2 = u3 , we can express t2 in terms of λ3 , as t2 = (1 − λ3 )u2 + λ3 u3 . Now, we compute f (t1 , t2 ), by ﬁrst expanding t2 : f (t1 , t2 ) = f (t1 , (1 − λ3 )u2 + λ3 u3 ) = (1 − λ3 ) f (t1 , u2 ) + λ3 f (t1 , u3 ), = (1 − λ3 ) f ((1 − λ1 )u1 + λ1 u3 , u2 ) + λ3 f ((1 − λ2 )u2 + λ2 u4 , u3 ), = (1 − λ1 )(1 − λ3 ) f (u1, u2 ) + [λ1 (1 − λ3 ) + λ3 (1 − λ2 )] f (u2, u3 ) + λ2 λ3 f (u3 , u4 ), and by expressing λ1 , λ2 , λ3 in terms of t1 and t2 , we get f (t1 , t2 ) = u3 − t1 u3 − t2 f (u1, u2 ) u3 − u1 u3 − u2 u3 − t2 t2 − u2 t1 − u1 + + u3 − u1 u3 − u2 u3 − u2 t1 − u2 t2 − u2 + f (u3 , u4 ). u4 − u2 u3 − u2

u4 − t1 u4 − u2

f (u2, u3 )

The coeﬃcients of f (u1, u2 ) and f (u3 , u4 ) are symmetric in t1 and t2 , but it is certainly not obvious that the coeﬃcient of f (u2 , u3 ) is symmetric in t1 and t2 . Actually, by doing more calculations, it can be veriﬁed that t1 − u1 u3 − u1 is symmetric. These calculations are already rather involved for m = 2. What are we going to do for the general case m ≥ 3? u3 − t2 u3 − u2 + t2 − u2 u3 − u2 u4 − t1 u4 − u2

We can still prove the following theorem generalizing lemma 4.3.1 to the progressive case. The easy half follows from the progressive version of the de Casteljau algorithm, and the converse will be proved later.

174

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

Theorem 5.3.2. Let u1 , . . . , u2m be a progressive sequence of numbers ui ∈ R. Given any sequence of m+1 points b0 , . . . , bm in some aﬃne space E, there is a unique polynomial curve F : A → E of degree m, whose polar form f : Am → E satisﬁes the conditions f (uk+1, . . . , um+k ) = bk , for every k, 0 ≤ k ≤ m. Proof. If such a curve exists, and f : Am → E is its polar form, the progressive version of the de Casteljau algorithm shows that f (t1 , . . . , tm ) = b0,m , where b0,m is uniquely determined by the inductive computation bi,j = where bi,j = f (t1 . . . tj ui+j+1 . . . um+i ), for 1 ≤ j ≤ m, 0 ≤ i ≤ m − j, and with bi,0 = f (ui+1, . . . , um+i ) = bi , for 0 ≤ i ≤ m. The above computation is well-deﬁned because the sequence u1, . . . , u2m is progressive. The existence of a curve is much more diﬃcult to prove, and we postpone giving such an argument until section 11.1. There are at least two ways of proving the existence of a curve satisfying the conditions of theorem 5.3.2. One proof is fairly computational, and requires computing a certain determinant, which turns out to be nonzero precisely because the sequence is progressive. The other proof, is more elegant and conceptual, but it uses the more sophisticated concept of symmetric tensor product (see section 11.1). um+i+1 − tj um+i+1 − ui+j bi,j−1 + tj − ui+j um+i+1 − ui+j bi+1,j−1 ,

5.4

Derivatives of Polynomial Curves

In this section, it is assumed that E is some aﬃne space An , with n ≥ 2. Our intention is to give the formulae for the derivatives of polynomial curves F : A → E in terms of control points. This way, we will be able to describe the tangents to polynomial curves, as well as the higher-order derivatives, in terms of control points. This characterization will be used in the next section dealing with the conditions for joining polynomial curves with C k -continuity. A more general treatment of (directional) derivatives of aﬃne polynomial functions F : Am → E will be given in section 10.5, as an application of the homogenization of an aﬃne space presented in chapter 10. In this section, we decided to go easy on our readers,

5.4. DERIVATIVES OF POLYNOMIAL CURVES

175

and proofs are omitted. Such proofs are easily supplied (by direct computation). Our experience shows that most readers are happy to skip proofs, since they can ﬁnd them later in chapter 10. In this section, following Ramshaw, it will be convenient to denote a point in A as a, to distinguish it from the vector a ∈ R. The unit vector 1 ∈ R is denoted as δ. When dealing → − with derivatives, it is also more convenient to denote the vector ab as b − a.

Given a polynomial curve F : A → E, for any a ∈ A, recall that the derivative DF (a) is the limit F (a + tδ) − F (a) lim , t→0, t=0 t if it exists.

Recall that since F : A → E, where E is an aﬃne space, the derivative DF (a) of F at a − → is a vector in E , and not a point in E. Since coeﬃcients of the form m(m−1) · · · (m−k + 1) occur a lot when taking derivatives, following Knuth, it is useful to introduce the falling power notation. We deﬁne the falling power mk , as mk = m(m − 1) · · · (m − k + 1), for 0 ≤ k ≤ m, with m0 = 1, and with the convention that mk = 0 when k > m. The falling powers mk have some interesting combinatorial properties of their own. The following lemma giving the k-th derivative Dk F (r) of F at r in terms of polar values, can be shown. Lemma 5.4.1. Given an aﬃne polynomial function F : A → E of polar degree m, for any r, s ∈ A, with r = s, the k-th derivative Dk F (r) can be computed from the polar form f of F as follows, where 1 ≤ k ≤ m: Dk F (r) = mk (s − r)k

i=k

i=0

k (−1)k−i f (r, . . . , r, s, . . . , s). i

m−i i

A proof is given in section 10.5. It is also possible to obtain this formula by expressing F (r) in terms of the Bernstein polynomials and computing their derivatives. If F is speciﬁed by the sequence of m + 1 control points bi = f (r m−i s i ), 0 ≤ i ≤ m, the above lemma shows that the k-th derivative Dk F (r) of F at r, depends only on the k + 1 control points b0 , . . . , bk In terms of the control points b0 , . . . , bk , the formula of lemma 5.4.1 reads as follows: i=k mk k k D F (r) = (−1)k−i bi . k i (s − r)

i=0

176

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

In particular, if b0 = b1 , then DF (r) is the velocity vector of F at b0 , and it is given by DF (r) = − m −→ m (b1 − b0 ). b0 b1 = s−r s−r

This shows that when b0 and b1 are distinct, the tangent to the B´zier curve at the point e b0 is the line determined by b0 and b1 . Similarly, the tangent at the point bm is the line determined by bm−1 and bm (provided that these points are distinct). More generally, the tangent at the current point F (t) deﬁned by the parameter t, is determined by the two points b0, m−1 = f (t, . . . , t, r) and b1, m−1 = f (t, . . . , t, s),

m−1 m−1

given by the de Casteljau algorithm. It can be shown that DF (t) = m (b1,m−1 − b0,m−1 ). s−r

The acceleration vector D2 F (r) is given by D2 F (r) = − −→ − m(m − 1) m(m − 1) −→ (b0 b2 − 2b0 b1 ) = (b2 − 2b1 + b0 ). 2 (s − r) (s − r)2

More generally, if b0 = b1 = . . . = bk , and bk = bk+1 , it can be shown that the tangent at the point b0 is determined by the points b0 and bk+1 . In the next section, we use lemma 5.4.1 to give a very nice condition for joining two polynomial curves with certain speciﬁed smoothness conditions. This material will be useful when we deal with splines. We also urge the readers who have not yet looked at the treatment of derivatives given in section 10.5 to read chapter 10.

5.5

Joining Aﬃne Polynomial Functions

The weakest condition is no condition at all, called C −1 -continuity. This means that we don’t even care whether F (q) = G(q), that is, there could be a discontinuity at q. In this case, we say that q is a discontinuity knot. The next weakest condition, called C 0 -continuity, is that F (q) = G(q). In other words, we impose continuity at q, but no conditions on the derivatives. Generally, we have the following deﬁnition.

When dealing with splines, we have several curve segments that need to be joined with certain required continuity conditions ensuring smoothness. The typical situation is that we have two intervals [p, q] and [q, r], where p, q, r ∈ A, with p < q < r, and two aﬃne curve segments F : [p, q] → E and G : [q, r] → E, of polar degree m, that we wish to join at q.

5.5. JOINING AFFINE POLYNOMIAL FUNCTIONS

177

Deﬁnition 5.5.1. Two curve segments F ([p, q]) and G[q, r]) of polar degree m are said to join with C k -continuity at q, where 0 ≤ k ≤ m, iﬀ Di F (q) = Di G(q), for all i, 0 ≤ i ≤ k, where by convention, D0 F (q) = F (q), and D0 G(q) = G(q). As we will see, for curve segments F and G of polar degree m, C m -continuity imposes that F = G, which is too strong, and thus, we usually consider C k -continuity, where 0 ≤ k ≤ m−1 (or even k = −1, as mentioned above). The continuity conditions of deﬁnition 5.5.1 are ususally referred to as parametric continuity. There are other useful kinds of continuity, for example geometric continuity. We can characterize C k -continuity of joins of curve segments very conveniently in terms of polar forms. A more conceptual proof of a slightly more general lemma, will be given in section 11.1, using symmetric tensor products (see lemma B.4.5). The proof below uses lemma 10.5.1, which is given in section 10.5. As a consequence, readers who have only read section 5.4 may skip the proof. Lemma 5.5.2. Given two intervals [p, q] and [q, r], where p, q, r ∈ A, with p < q < r, and two aﬃne curve segments F : [p, q] → E and G : [q, r] → E, of polar degree m, the curve segments F ([p, q]) and G[q, r]) join with continuity C k at q, where 0 ≤ k ≤ m, iﬀ their polar forms f : Am → E and g : Am → E agree on all multisets of points that contain at most k points distinct from q, i.e., f (u1 , . . . , uk , q, . . . , q) = g(u1, . . . , uk , q, . . . , q ),

m−k m−k

**for all u1 , . . . , uk ∈ A. Proof. First, assume that the polar forms f and g satisfy the condition f (u1 , . . . , uk , q, . . . , q) = g(u1, . . . , uk , q, . . . , q ),
**

m−k m−k

**for all u1, . . . , uk ∈ A. If ui = q, 1 ≤ i ≤ k, we are requiring that f (q, . . . , q) = g(q, . . . , q ),
**

m m

that is, F (q) = G(q), which is C 0 -continuity. Let f : (A)m → E and g : (A)m → E be the homogenized versions of f and g. For every j, 1 ≤ j ≤ k, by lemma 5.4.1, the j-th derivative Dj F (q) can be computed from the polar form f of F as follows: mj D F (q) = (r − q)j

j i=j

i=0

j (−1)j−i f (q, . . . , q, r, . . . , r ). i

m−i i

178 Similarly, we have

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

mj D G(q) = (r − q)j

j

i=j

i=0

j (−1)j−i g(q, . . . , q , r, . . . , r ). i

m−i i

**Since i ≤ j ≤ k, by the assumption, we have f (q, . . . , q , r, . . . , r) = g(q, . . . , q , r, . . . , r),
**

m−i i m−i i

and thus, Dj F (q) = Dj G(q). Thus, we have C k -continuity of the join at q. Conversely, assume that we have C k -continuity at q. Thus, we have Di F (q) = Di G(q), for all i, 0 ≤ i ≤ k, where by convention, D0 F (q) = F (q), and D0 G(q) = G(q). Thus, for i = 0, we get f (q, . . . , q) = g(q, . . . , q ).

m m

**By lemma 10.5.1, we have Di F (q) = mi f (q, . . . , q, δ, . . . , δ ),
**

m−i i

and similarly, Di G(q) = mi g(q, . . . , q, δ, . . . , δ ),

m−i k i

**for 1 ≤ i ≤ m. Then, the assumption of C -continuity implies that f (q, . . . , q, δ, . . . , δ ) = g(q, . . . , q , δ, . . . , δ),
**

m−i i m−i i

**for 1 ≤ i ≤ k. However, for any ui ∈ A, we have (in A) ui = q + (ui − q)δ, and thus, for any j, 1 ≤ j ≤ k, we have f (u1 , . . . , uj , q, . . . , q ) = f (q + (u1 − q)δ, . . . , q + (uj − q)δ, q, . . . , q ),
**

m−j m−j

**which can be expanded using multilinearity and symmetry, and yields
**

i=j

f (u1 , . . . , uj , q, . . . , q) =

m−j i=0 L⊆{1,...,j} l∈L |L|=i

(ul − q) f (δ, . . . , δ , q, . . . , q).

i m−i

**5.5. JOINING AFFINE POLYNOMIAL FUNCTIONS Similarly, we have
**

i=j

179

g(u1 , . . . , uj , q, . . . , q) =

m−j i=0 L⊆{1,...,j} l∈L |L|=i

(ul − q) g(δ, . . . , δ, q, . . . , q ).

i m−i

**However, we know that f (δ, . . . , δ , q, . . . , q) = g(δ, . . . , δ, q, . . . , q ),
**

i m−i i m−i

**for all i, 1 ≤ i ≤ k, and thus, we have f (u1 , . . . , uj , q, . . . , q) = g(u1, . . . , uj , q, . . . , q),
**

m−j m−j

**for all j, 1 ≤ j ≤ k. Since f extends f and g extends g, together with f (q, . . . , q) = g(q, . . . , q ),
**

m m

which we already proved, we have established the conditions of the lemma. Another way to state lemma 5.5.2 is to say that the curve segments F ([p, q]) and G[q, r]) join with continuity C k at q, where 0 ≤ k ≤ m, iﬀ their polar forms f : Am → E and g : Am → E agree on all multisets of points that contain at least m−k copies of the argument q. Thus, the number k is the number of arguments that can be varied away from q without disturbing the values of the polar forms f and g. When k = 0, we can’t change any of the arguments, and this means that f and g agree on the multiset q, . . . , q ,

m

i.e., the curve segments F and G simply join at q, without any further conditions. On the other hand, for k = m − 1, we can vary m − 1 arguments away from q without changing the value of the polar forms, which means that the curve segments F and G join with a high degre of smoothness (C m−1 -continuity). In the extreme case where k = m (C m -continuity), the polar forms f and g must agree when all arguments vary, and thus f = g, i.e. F and G coincide. We will see that lemma 5.5.2 yields a very pleasant treatment of parametric continuity for splines. The following diagrams illustrate the geometric conditions that must hold so that two segments of cubic curves F : A → E and G : A → E deﬁned on the intervals [p, q] and [q, r], join at q with C k -continuity, for k = 0, 1, 2, 3. Let f and g denote the polar forms of F and G.

q. r j . The above examples show that the points corresponding to the common values f (p i . constitute a de Casteljau diagram with k shells. q. r. where i + j ≤ k ≤ 3. r j . p) g(q. r) f (p. j with i + j ≤ k ≤ m. q 3−i−j ) of the polar forms f and g.. q. q) f (p. We are now ready to consider B-spline curves. p. p. iﬀ f = g. r j . i. q. where k is the degree of continuity required. q.e. The curve segments F and G join at q with C 2 -continuity iﬀ the polar forms f and g agree on all (multiset) triplets including the argument q. q 3−i−j ) = g(p i . This is a general fact.180 ´ CHAPTER 5. r) g(q. q) f (p. . r) Figure 5. q m−i−j ) = g(p i . POLYNOMIAL CURVES AS BEZIER CURVES f = g(q. These de Casteljau diagrams are represented in bold. The curve segments F and G join at q with C 3 -continuity iﬀ the polar forms f and g agree on all (multiset) triplets. then f (p i . and these points form a de Casteljau diagram with k shells.12: Cubic curves joining at q with C 0 -continuity The curve segments F and G join at q with C 0 -continuity iﬀ the polar forms f and g agree on the (multiset) triplet q. q) g(r. r j . r. The curve segments F and G join at q with C 1 -continuity iﬀ the polar forms f and g agree on all (multiset) triplets including two copies of the argument q. When two polynomial curves F and G of degree m join at q with C k -continuity (where 0 ≤ k ≤ m). q m−i−j ) for all i.

p) g(q.5. r.5. q) f = g(q. q) f = g(q. p. r) g(r. q) f = g(p. r. q.14: Cubic curves joining at q with C 2 -continuity . r. r) f (p. JOINING AFFINE POLYNOMIAL FUNCTIONS 181 f = g(p. r) f (p. q. r) f = g(q. q) f = g(q. r) f (p. p. q. r) f = g(p.13: Cubic curves joining at q with C 1 -continuity f = g(p. q. r. p) Figure 5. p. q. q) f = g(q. q. q. r) Figure 5. q) g(r. p.

r) f = g(p. over some interval [r. r) f = g(q. p) f = g(r. r. = (6.182 f = g(p. Problem 2 (10 pts). r) Figure 5. 0). −1).15: Cubic curves joining at q with C 3 -continuity 5. You may use Mathematica. Problem 3 (10 pts). = (0. q) f = g(q. = (6. Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/2) and F (3/4). 6). s]. Write a computer program implementing the subdivision version of the de Casteljau algorithm. p. q. POLYNOMIAL CURVES AS BEZIER CURVES f = g(p. Consider (in the plane) the curve F deﬁned by the following 5 control . Test your program extensively. q. it is assumed that r = 0 and s = 1. or any other available software in which graphics primitives are available. In the next three problems. r) f = g(p. = (0. Consider (in the plane) the curve F deﬁned by the following 5 control points: b0 b1 b2 b3 b4 = (6. p. Does the curve self intersect? Plot the curve segment (in the convex hull of the control polygon) as well as you can. q) f = g(q. q. 6). r) f = g(p. p. r. 0).6 Problems Problem 1 (60 pts). q. r) ´ CHAPTER 5. q) f = g(p. r.

b3 . and t1 < t2 . Problem 4 (20 pts). b1 . we would like to ﬁnd a cubic F : A → E such that F (ti ) = xi (i. assume that t0 = 0 and t3 = 1.e. and given any sequence of four points (x0 . −20). PROBLEMS points: b0 b1 b2 b3 b4 = (6. 1].6. given any four distinct values t0 < t1 < t2 < t3 . 0). −4). x1 .. 30). If any of the control points bi changes (one only) to a new point b′i . 1]. Does the curve self intersect? Plot the curve segment (in the convex hull of the control polygon) as well as you can. = (6. = (5. an interpolating cubic curve). t = 1/2. x3 ). −1).5. Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/2). = (10. What is F ′ (t) − F (t) for i = 2. = (0. = (10. −1). Consider (in the plane) the curve F deﬁned by the following 5 control points: b0 b1 b2 b3 b4 = (0. x1 . 183 Use the de Casteljau algorithm to ﬁnd the coordinates of the points F (1/4) and F (1/2). x2 . b2 . in terms of x0 . Let F be a cubic curve given by its control points b0 . x3 . 30). Does the curve self intersect? Plot the curve segment (in the convex hull of the control polygon) as well as you can. x2 . = (3. b2 . 6). where Bi3 (t) is the i-th Bernstein polynomial of degree 3. −4). Prove that there exists a unique cubic satisfying the above conditions. 6). b3 . = (0. b1 . we get a diﬀerent cubic F ′ . To simplify the calculations. Problem 6 (20 pts). and compute its control points b0 .5. we have F ′ (t) − F (t) = Bi3 (t) b′i − bi . Consider the arc of cubic F [0. Show that for any t ∈ [0. Problem 5 (10 pts). = (6. and t = 1/4? . (baby Lagrange interpolation via control points) Given any aﬃne space E.

(Cubic Hermite interpolation) → → u u Let a0 . Show that there is a unique cubic curve F : A → A3 such that F (0) = a0 . b1 = a0 + 1− → u0 . v ′′ → F (1) = −1 . and let −0 . 1 3 3 H1 (t) = B1 (t). a1 be any two points in A3 . (Quintic Hermite interpolation) → → v v Let a0 . 3 b2 = a1 − 1− → u1 . u 5 v v u 5 . −1 . −1 . u and show that its control points are given by b0 = a0 . 3 1 3 3 H2 (t) = − B2 (t).184 ´ CHAPTER 5. u u → → Show that there is a unique quintic curve F : A → A3 such that F (0) = a0 . u → F ′′ (0) = − . The polynomials Hi3 (t) are called the cubic Hermite polynomials. u 3 u 3 Compute explicitly the polynomials Hi3 (t). 0 ≤ i ≤ 3. a1 be any two points in A3 . Show that → → 5 → 5 → 5 5 F (t) = a0 H0 (t) + −0 H1 (t) + −0 H2 (t) + −1 H3 (t) + −1 H4 (t) + a1 H5 (t). Show that they are linearly independent. → F ′ (0) = − . POLYNOMIAL CURVES AS BEZIER CURVES Problem 7 (30 pts). Problem 8 (40 pts). −0 . → F ′ (0) = − . v and compute its control points. 3 b3 = a1 . F (1) = a1 . Show that where 3 3 3 H0 (t) = B0 (t) + B1 (t). F (1) = a1 . u 0 ′ → F (1) = −1 . and let −0 and −1 be any two vectors in R3 . → → 3 3 F (t) = a0 H0 (t) + −0 H1 (t) + −1 H2 (t) + a1 H3 (t). u 0 ′ 0 → F (1) = −1 . be any four vectors in R3 . 3 3 3 3 H3 (t) = B2 (t) + B3 (t).

or any other available software in which graphics primitives are available. Problem 9 (30 pts). 5 1 5 5 H2 (t) = B (t). for t = 1/2). Hermite interpolants were deﬁned with respect to the interval [0. over [0. 0 ≤ i ≤ 3. 1] in terms of their control points. Problem 15 (30 pts). 0 ≤ i ≤ 5. over [0. What if F and G have a common component? What if F and G have diﬀerent degrees? Problem 14 (30 pts). Problem 10 (20 pts). Problem 12 (20 pts). 185 Compute explicitly the polynomials Hi5 (t).6. Use your implementation of the subdivision version of the Casteljau algorithm to experiment with cubic and quintic Hermite interpolants. Draw diagrams showing C 3 -continuity for curves of degree 4.5. 1 5 5 5 H1 (t) = (B1 (t) + 2B2 (t)). Draw diagrams showing C 5 -continuity . Plot the Hermite polynomials Hi5 (t). 1]. PROBLEMS where 5 5 5 5 H0 (t) = B0 (t) + B1 (t) + B2 (t). Plot the Hermite polynomials Hi3 (t). s]. Draw diagrams showing C 4 -continuity for curves of degree 5. 1]. Assume that two Bezier curve segments F and G are deﬁned over [0. What happens if the aﬃne map t → (1 − t)a + tb is applied to the domain of the Hermite interpolants? How can you modify the Hermite polynomials to obtain the same kind of expression as in problems 7 and 8? Problem 11 (20 pts). 0 ≤ i ≤ 5. H3 (t) = 20 3 1 5 5 5 H4 (t) = − (2B3 (t) + B4 (t)). 5 5 5 5 5 H5 (t) = B3 (t) + B4 (t) + B5 (t). You may use Mathematica. 1]. Problem 13 (30 pts). Try many diﬀerent cases. over some interval [r. Show that they are linearly independent. Write a computer program implementing the progressive version of the de Casteljau algorithm. Use the de Casteljau algorithm to design a curve of degree four whose third control point b2 belongs to the curve (in fact. 20 2 1 5 5 B (t). The polynomials Hi5 (t) are called the quintic Hermite polynomials. Give a method for ﬁnding all the intersection points between the curve segments F and G.

this convergence is very slow. . As a consequence. Experiment with various ways of perturbing the middle control point. Prove that m bi = j=0 (r) m j r i−j m+r i bj . .186 ´ CHAPTER 5. 1]. However. Let F be a polynomial curve deﬁned by its control polygon B = (r) (r) (b0 . POLYNOMIAL CURVES AS BEZIER CURVES for curves of degree 6. lim (r) bi = j=0 m bj Bj (t) = F (t). for each r ≥ 1. You may want to write computer programs to draw such diagrams. . and is not useful in practice. Let B(r) = (b0 . . This means that the control polygons B(r) converge towards the curve segment F [0. by a random displacement. . you should get “fractal-style” curves with C 1 -continuity. bm+r ) be the control polygon for the curve F obtained after r steps of degree elevation. it can be shown (using Stirling’s formula) that lim r i−j m+r i m i/(m+r)→t i/(m+r)→t = tj (1 − t)m−j . Problem 17 (20 pts). there is some i such that i/(m + r) is closest to t. Then. Remark: For any t ∈ [0. allow the middle control point (b2 ) to be perturbed in each of the two subpolygons. . or a controlled displacement. . During a subdivision step. as r → ∞. Write a computer program implementing a version of the de Casteljau algorithm applied to curves of degree four modiﬁed as exlained below. After a number of subdivision steps. . 1]. . Problem 16 (30 pts). bm ).

We know that it takes m(m+1) 2 steps to compute a point on the curve. this may be too costly. In order to 187 . we will have to compute control points from points on the curve. For the above reasons. We also discuss interpolation using B-splines. Each segment of the curve will be controlled by some small subpolygon of the global polygon. de Boor Control Points Polynomial curves have many virtues for CAGD.1 Introduction: Knot Sequences. but they are also unsatisfactory in a number of ways: 1. We show how knot sequences and sequences of de Boor control points can be used to specify B-splines and we present the de Boor algorithm for B-splines. Given a control polygon containing m sides (m + 1 vertices). and thus impractical. 3. When m is large. and the segments will be joined together in some smooth fashion. This leads to systems of linear equations. the degree of the polynomial curve determined by these control points is m. and brieﬂy present the more traditional approach to B-splines in terms of basis functions. people thought about segmenting a curve speciﬁed by a complex control polygon into smaller and more manageable segments. we present a class of spline curves known as B-splines and explain how to use knots to control the degree of continuity between the curve segments forming a spline curve. in the sense that moving a control point only aﬀects a small region of the curve. Moving any control point will aﬀect the entire curve. If we are interested in interpolation rather than just approximating a shape. In this chapter. It would be desirable to have better local control. This is the idea behind splines. 2.Chapter 6 B-Spline Curves 6. as well as the useful knot insertion algorithm. and solving such a system can be impractical when the degree of the curve is large.

6]. 9. 9]. 3]. 3] is equal to the ﬁrst control point of the curve segment F [3. . 1. 15. 3. 12. 3]. we would need four control points for each of these intervals. Thus. Such a sequence is called a knot sequence. . 5]. . that the fourth control point of the curve segment F [2. s] as in the case of polynomial curves. For example. obtaining the sequence . 5]. 3. . 2. 2. We will see that it is useful to collapse intervals. 9]. . It is also possible to handle cyclic sequences. . 9]. rather than a single interval [r. This can be achieved. . 3]. since this is a way to lower the degree of continuity of a join. Extending our sequence a bit. 6]. 2]. . [5. F [6. Clearly. 1. the above knot sequence becomes . if we want to collapse the interval [3. [2. 3. [3. 6) than just contact. 6. 6. We also allow collapsing several consecutive intervals. 5. . as we will explain shortly. . . . [6. 1 and 9). 5]. we are just focusing on a particular subsequence of some bi-inﬁnite sequence. 3]. in the above sequence. 9. F [2. it becomes necessary to consider several contiguous parameter intervals. . 3. and that such ﬂexibility is in fact useful. that the fourth control point of the curve segment F [5. 3. . . 3. B-SPLINE CURVES achieve this. . 2]. . 5] to [3. 2]. Since we want to join these cubic curve segments. where the sequences extend to inﬁnity in both directions. [6. Usually. . 9]. 6] is equal to the ﬁrst control point of the curve segment F [6. . 1. 3. . . 6. 10. For example. we can assume that we are dealing with inﬁnite sequences of contiguous intervals. and so on. . we will want better continuity at the junction points (2. and ﬁnally. . When looking at a ﬁnite sequence such as . 3]. 6]. . we may also want to be more careful about endpoints (in this case. This can be captured by a knot sequence by letting a knot appear more than once. . For the time being. 2] is equal to the ﬁrst control point of the curve segment F [2. . F [5. [2. Why did we choose a nonuniform spacing of the intervals? Because it would not really simplify anything. 5. . and if we want to use cubic segments. . F [3. Let us denote the corresponding cubic curve segments as F [1. we could have the intervals [1. 1. 3. 3. For example. 6. [3.188 CHAPTER 6. 5]. 3. 3] to [3. . . 9. 9. . 3 has multiplicity 3. [5. we will assume that the fourth control point of the curve segment F [1. . . say to . [1. as in the following sequence: . . . . as we shall see later. The number of consecutive occurrences of a knot is called its multiplicity. we can also collapse [2. Note that it is slightly more economical to specify the sequence of intervals by just listing the junction points of these intervals. 3].

F4 . 9. INTRODUCTION: KNOT SEQUENCES. . As we will see. The more mathematical presentation is to consider the polar form fi of each curve segment Fi associated with an interval [ui . 15. 3]. 9]). 12] to [10. . 10.1. and a double knot 10. F [5. 15. 3. . uk+m . We will also see how to extend the de e Casteljau algorithm in order to compute points on any curve segment directly from the de Boor control points. F [2. 6]. and F5 . 2]. we allow knot multiplicity at most m (although it is easy to accommodate knots of multiplicity m + 1). Fortunately. 9. . 6. as shown by collapsing [10. F [3. we will denote F [1. F [6. . . 6. . multiplicity m + 1 corresponds to a discontinuity at the control point associated with that multiple knot). . F [1. .6. Knots of multiplicity 1 are called simple knots. 1. F9 . given the knot sequence . . Note that we need to take care of multiple knots. 9]. . . 3]. For example. .2 will yield a very pleasant answer to the problem of continuity of joins and this answer will also show that there are natural control points called de Boor points. 2. 3. 5]. and knots of multiplicity greater than 1 are called multiple knots. 3. 5. The above sequence has a triple knot 3. . and to ﬁnd more convenient control points than the B´zier control points e of the curve segments (in our example. 10. 3. 1. . and for simplicity. There are several possible presentations. 2]. . . simply as F1 . and to ﬁgure out the conditions that C n -continuity at ui+1 impose on the polar forms fi and fi+1 . and thus. 16 . without having to ﬁrst compute the B´zier control points for the given e curve segment. 10. F2 . The problem now is to ﬁnd a convenient way of specifying the degree of continuity that we want at each join. and get several multiple knots. it does not make sense for the knot multiplicity to exceed m + 1.5. . F5 . F [3. . If the degree of all curve segments is ≤ m. 10. as in the sequence . F3 . ui+1 ]. we could compute the B´zier control points using this algorithm. where m is the degree of each curve segment (in fact. e which is called the de Boor algorithm. there is a nice answer to both questions. However. . F [2. We simply consider the subsequence of strictly increasing knots. 6. F6 . . 3. we have curve segments: F1 . . F8 . 3. . F4 . . and we index each curve segment by the index (position) of the last occurrence of the knot corresponding to the left of its interval domain. 3. 10]: . Since we are now using knot sequences to represent contiguous intervals. F [6. it turns out that we are led to consider sequences of consecutive knots of length m of the form uk+1. which turn out to be more convenient (and more economical) than the B´zier control points of the curve segments. we can simplify our notation of curve segments by using the index (position) of the knot corresponding to the beginning of an interval as the index of the curve segment on that interval. . Lemma 5. We now have to explain how the de Boor control points arise. F [5. 9. 6]. 5]. 1. DE BOOR CONTROL POINTS 189 we can collapse several intervals.

uk . given the following (portion of a) knot sequence . any polar value of fk for parameter values in [uk . . . 14. B-SPLINE CURVES fi (uk+1. . . . 6. Observe that if uk is a simple knot as above. . each of length m. a knot such that uk < uk+1 . and uk+m = u8 = 11. 8]. . uk+1. . 5. . This is illustrated by the following progressive sequence of 6 knots: 3. . the value CHAPTER 6. . 2. 11 . . . 15. . 6. 8. 9. .190 and that for all i ∈ [k. the middle interval is [6.3. 9. uk+1]. 8. uk+1. . . . and thus. to compute points on the curve Fk . . where 0 ≤ i ≤ m. These points dk are the de Boor points. uk+m is progressive. . . k + m]. . and these sequences turn out to deﬁne m + 1 de Boor control points for the curve segment Fk associated with the middle interval [uk . In fact. if m = 3. . . 9. then the m + 1 sequences of consecutive knots uk−m+i+1. . . 1. these de Boor points are the polar values dk+i = fk (uk−m+i+1. uk−m+1 = u3 = 3. uk+m) of the polar form fi associated with the interval beginning with knot ui is constant and denoted as dk . . uk+i . Since uk < uk+1 . . . . 5. . k = 5. and more generally. 5. if fk is the polar form of Fk . also called the de Boor algorithm. 6. and uk = u5 = 6. where 0 ≤ i ≤ m. . we have the sequence 3. uk+1]. the sequence of 2m consecutives knots uk−m+1. . uk+i ). 8. For example. and so uk+1 = u6 = 8. . . uk+m yields m + 1 sequences of consecutive knots uk−m+i+1. . 11. . it is possible to use the progressive version of the de Casteljau algorithm presented in section 5. . uk+i . . Then. 3. for any simple knot uk . uk . that is. 11 consisting of 6 = 2 · 3 knots. . the sequence uk−m+1.

we can view each side (di . the line segment (di . . the interval [9. 9. . . uk+1. . and given the following (portion of a) sequence of control points . 3. . uk+2]. 5] maps onto (d1 . . where uj < uj+1 for all j). . and the interval [1. which for simplicity. d7 . due to Ken Shoemake. . di+l . Thus. . [uk+m . uk+m+1 ] onto the line segment (di . This property is the point of departure of another rather intuitive explanation of the de Boor algorithm. . If we color the m intervals [uk+1 . uk . deﬁned as u→ uk+m+1 − u u − uk+1 di + di+1 . d4 . if di is mapped to the knot uk+1 . . 1. 8. uk+m+1 − uk+1 uk+m+1 − uk+1 where u ∈ [uk+1. . . . 15] maps onto (d7 . uj+k . and uk = u5 = 6. Assuming that we color all intervals [uk+1 .. . . consists only of simple knots (i. . . 5. DE BOOR CONTROL POINTS 191 each of length m (where 0 ≤ i ≤ m). . . d8 ). 14. . . . . and a bi-inﬁnite sequence di . . .1. d2 . . 9. Instead. uk+m+1 ] with diﬀerent colors. uk+1] of the sequence uk−m+1 . 6] maps onto (d2 . d3 ). For example. d2 ). we can see that m consecutive line segments (di . d8 . . di+m ) of the control polygon share exactly one color: that of the interval [uk+m . . di+1 ). . . 6. . (di+m−1 . d6 . . 8. of (distinct) control points.6. . 5. 2. 11 . we ﬁx the maximum degree m of the curve segments that will arise. . uk+m . . . the interval [2. uk+m+1]. uk+2] (assuming inﬁnitely many colors). . .e. Let us now forget that we have curve segments. . with an additional constraint: we assume that there is a bijective function from the sequence di of control points to the knot sequence uj . di . . assuming m = 3. the sequence 3. d5 . then di+1 is mapped to uk+2. . . . . . . ﬁgure 6. and we assume that we are given a bi-inﬁnite knot sequence uj . uk+m+1 ]. . di+1 ) of the control polygon as being divided into m subsegments. d1 . .1 shows part of a cubic spline. given the following (portion of a) knot sequence . there is obviously an aﬃne bijection mapping the interval [uk+1. Since consecutive control points map to consecutive knots. . INTRODUCTION: KNOT SEQUENCES. For k = 5. uj . 11. . overlap precisely on the middle interval [uk . d3 . . 15. . . di+1 ). . di+1 ) is also colored in a similar fashion. . with the property that for every control point di . . 6.

. 1.14. 15. 5. . . 11.6. . B-SPLINE CURVES d6 : 89 11 d2 : 235 d3 : 356 d7 : 9 11 14 d1 : 123 d8 : 11 14 15 d4 : 568 d5 : 689 Figure 6.1: Part of a cubic spline with knot sequence .3. . 2. . Thick segments are images of [6. 8]. . . 8.9.192 CHAPTER 6.

d6 ). which is mapped aﬃnely onto the line segment (di . 8]. di+j+1). which consists of [6. d5 ). 9]. . . DE BOOR CONTROL POINTS 193 whose middle interval is [6. . di+m . 1 . 5 . 9]. the interval [uk+1.1. Note that the control point di corresponds to the knot sequence uk+1 . Then. . d5 ) both contain images of the interval [5. This is an easy way to remember which interval maps onto the line segment (di . 3 . we can index each control point di by the knot sequence uk+1. or equivalently. uk+2m . di+2 ) are the aﬃne images of intervals that overlap on exactly m − 1 consecutive subintervals of the knot sequence. . . di+1 ) and (di+1 . . . . The connection with the previous explanation becomes clearer. uk+2 . uk+m+1 ]. . d2 corresponds to 2. correspond to a sequence of 2m knots uk+1. Therefore. we consider the new control polygon determined by the m points d0. di+1 ). uk+2 . and [8. . . . di+2 ) correspond to intervals that overlap on m − 1 consecutive subintervals of the knot sequence. 15 . and d8 corresponds to 11. 8]. uk+m+1 ]. uk+2m . d1 corresponds to 1. 6]. .. . 1 . 8]. uk+m+j+1 − uk+j+1 uk+m+j+1 − uk+j+1 mapping the interval [uk+j+1. . . 9]. d5 ) is the aﬃne image of the interval [5. 2. . . d4 ) and (d4 . Thus. and to the rightmost knot in the sequence associated with di+1 . di+m ) on the control polygon. 6] and [6. 8]. For example. . di+1 ) and (di+1 . . 9]. 14. 3. d6 ) both contain images of the interval [6. 8] and [8. uk+m+1 . and that the control point di+1 corresponds to the knot sequence uk+2. Given a sequence of 2m knots uk+1. as follows: Using the mapping t→ uk+m+j+1 − t t − uk+j+1 di+j + di+j+1. d1. corresponds to the three line segments (d3 . di+1 ). . . . di+1 .6. which gives us a point dj. INTRODUCTION: KNOT SEQUENCES. . and the line segments (d4 . uk+m+1] onto the line segment (di+j . dm−1. m + 1 consecutive control points di . is computed by repeated aﬃne interpolation. a point on the curve segment speciﬁed by the m + 1 control points di . (di+m−1 . uk+m+j+1] onto the line segment (di+j . . di+m (where di is mapped onto uk+1). (d4 . . . . we map t ∈ [uk+m. . corresponds to the leftmost knot in the sequence associated with di . Since any two consecutive line segments (di . where di is mapped to uk+1. d4 ). The line segment (d4 . di+1 ). where 0 ≤ j ≤ m − 1. . . which itself consists of the three subintervals [5. m consecutive line segments (di . . uk+m of m knots. d5 ) and (d5 . . [6. for any parameter value in the middle interval t ∈ [uk+m . . . . uk+m . . For example. and (d5 . 1 . di+j+1). 1 . Note that any two consecutive line segments (di . . which consists of [5. . the line segments (d3 .

the number of consecutive intervals aﬃnely mapped onto a line segment of the current control polygon decreases by one. so that at the m-th round. .1 : 789.1 : 567. The point d0. we only have one interval. 8−5 3 the interpolation ratio associated with the point d2.194 CHAPTER 6. dj+1. 2 . The above round gives us a new control polygon determined by the m − 1 points d0. 1 . d1. the middle interval [uk+m.2 : 677. The interpolation ratio associated with the point d0. uk+m+j+1]. For example. . 1 ). 1 . d2. d0. and d0.1 is 4 7−3 = .2 : 778. 2 on (dj.1 is the interpolation ratio associated with the point d0. 9−5 4 2 7−6 1 = . Note that each interval [uk+j+2. 1 ). we get a point dj. These points are also shown as labels of polar values. 8−3 5 the interpolation ratio associated with the point d1. and that the leftmost interval [uk+2. uk+m+j+1] now consists of m − 1 consecutive subintervals. m obtained during the m-th round is a point on the curve segment. dm−2. the intersection of the m original intervals [uk+j+1. and for t ∈ [uk+m . uk+m+j+1] onto the line segment (dj. uk+m+1 ]. 8−6 2 and the interpolation ratio associated with the point d0. uk+m+1] starts at knot uk+2 .2 illustrates the computation of the point corresponding to t = 7 on the spline of the previous ﬁgure. where 0 ≤ j ≤ m − 1. 9−6 3 1 7−6 = . d1. we have d0. .1 : 678. and the starting knot of the leftmost interval used during this round is the (right) successor of the starting knot of the leftmost interval used at the previous round.2 is 7−6 1 = . d1. the immediate successor of the starting knot uk+1 of the leftmost interval used at the previous stage.3 : 777.3 is . . At every round. 2 .1 is 7−5 2 1 = = . Figure 6. B-SPLINE CURVES and we map aﬃnely each of the m − 1 intervals [uk+j+2. where 0 ≤ j ≤ m − 2. dj+1. 11 − 6 5 2 7−5 = . and we repeat the procedure.2 is the interpolation ratio associated with the point d1. 2 . uk+m+1].

9. 11..1 : 789 d1. . . .1 : 678 d5 : 689 Figure 6. and construction of the point corresponding to t = 7. DE BOOR CONTROL POINTS 195 d6 : 89 11 d2 : 235 d3 : 356 d7 : 9 11 14 d1 : 123 d8 : 11 14 15 d0.6.2 : 778 d2. . INTRODUCTION: KNOT SEQUENCES. .3. 15.2 : 677 d0.1.3 : 777 d1.2: Part of a cubic spline with knot sequence . 8. 2. . 8].14. . Thick segments are images of [6.6.1 : 567 d4 : 568 d0. 1. 5.

2.2. and [9. d2 . 11] (previously [9. 5. 5] and [5. [5. we see how the knot multiplicity can be used to control the degree of continuity of joins between curve segments. 8. The bookkeeping which consists in labeling control points using sequences of m consecutive knots becomes clearer: it is used to keep track of the consecutive intervals (on the knot line) and how they are mapped onto line segments of the current control polygon. we are also shrinking the corresponding curve segment to a single point. We can now provide a better intuition for the use of multiple knots. 8] to the empty interval. Open B-Spline Curves We begin with knot sequences. 9] (previously [8. 5] this will have the eﬀect that the corresponding curve segment shrinks to a single point. 6. . . . 5] and [5. say [5. . we will denote knots as points of the real aﬃne line A. d6 . d5 . 6]. . 8] (which used to be [6. Going back to the previous example of the (portion of a) knot sequence . 3. the curve segments corresponding to the intervals [3. A knot sequence is a bi-inﬁnite nondecreasing sequence uk k∈Z of points uk ∈ A (i.4). 11]. Deﬁnition 6.1. to the empty interval [5. 1. . and in fact. . d4 . . The extreme is to squeeze one more interval. . . 6. as u ∈ A (as explained in section 5. we may not even have C 1 -continuity. 8]) will be lower. 9]). d1 . 9.e. uk ≤ uk+1 for all k ∈ Z). 9]) will join with even less continuity. This time. we can see that these control points determine ﬁve curve segments.3 shows the construction of the B´zier control points of the ﬁve B´zier segments forming e e this part of the spline. . As usual. 6]. 11]) may not even join at the point associated with the knot 5. If we “squeeze” any of these intervals. and the result will be that the degree of continuity of the junction between the curve segments associated with [3. 8]. . 11. meaning that the tangents may not agree. now that 5 is a triple knot. d7 .196 CHAPTER 6.3.2 Inﬁnite Knot Sequences. say [5. d3 . We can now be more precise and prove some results showing that splines are uniquely determined by de Boor control points (given a knot sequence). 9]. . 14. and now. such that every knot in the sequence has ﬁnitely many . 5]. corresponding to the intervals [3. Figure 6. 15. 9] (previously [8. B-SPLINE CURVES We recognize the progressive version of the de Casteljau algorithm presented in section 5. [8. [6. in the sense that the curve segments associated with [3. If we also squeeze the interval [5. 5] and [5. and the (portion of a) sequence of control points . Thus. . we may even have a discontinuity at the parameter value 5. to distinguish between real numbers in R and points in A. d8 .

. . 1. . . 15. 11. 8. . OPEN B-SPLINE CURVES 197 d6 : 89 11 d2 : 235 11 11 11 d3 : 356 333 555 d1 : 123 999 d7 : 9 11 14 d8 : 11 14 15 666 888 d4 : 568 d5 : 689 Figure 6.6.3: Part of a cubic spline with knot sequence . 5. and some of its B´zier control points e .9.3. .6. 2..2.14. INFINITE KNOT SEQUENCES.

A spline curve F of degree m based on the knot sequence uk k∈Z is a piecewise polynomial curve F : A → E. The curve segments Fi and Fi+n join with continuity (at least) C m−n at ui+1 . ui+1 [ agrees with a polynomial curve Fi of polar degree m. we must have uk ≤ uk+1 for all k ∈ Z. A knot uk of multiplicity m + 1 is called a discontinuity (knot). if ui+1 is a knot of multiplicity n. . in the sense of deﬁnition 5. Thus. A knot of multiplicity 1 is called a simple knot. = uk+n .e. for any two consecutive distinct knots ui < ui+1 . if ui+1 is a discontinuity knot. the next distinct knot being ui+n+1 (since we must have ui+1 = . F agrees with a polynomial curve Fi on the interval [ui . . for a knot sequence of degree of multiplicity at most m + 1. for every two consecutive distinct knots ui < ui+1 . then the following condition holds: 1. B-SPLINE CURVES occurrences. ui+n+1 [.2. there are at most m + 1 occurrences of identical knots in the sequence. such that. ui+1 [. ui+1 [ by the last occurrence of the knot p = ui in the knot sequence. then we have C −1 -continuity.2. it is more convenient to index the curve segment on the interval [ui . and any knot sequence uk k∈Z of degree of multiplicity at most m + 1. . Thus. The restriction of F to [ui .1. with associated polar form fi . . where E is some aﬃne space (of dimension at least 2). = ui+n < ui+n+1 ). the following condition holds: 2. such that. A knot sequence uk k∈Z is uniform iﬀ uk+1 = uk +h. We can now deﬁne spline (B-spline) curves. Given any natural number m ≥ 1. and with a polynomial curve Fi+n on the interval [ui+1 . The set F (A) is called the trace of the spline F . a knot of multiplicity m + 1. . i. Given any natural number m ≥ 1. so that the junction knot is indeed ui+1 . in particular.198 CHAPTER 6. Deﬁnition 6. if uk+1 = uk+2 = . that is. a piecewise polynomial curve of degree m based on the knot sequence uk k∈Z is a function F : A → E. for some ﬁxed h ∈ R+ . Thus.5. where n is the multiplicity of the knot ui+1 (1 ≤ n ≤ m + 1). Remarks: (1) Note that by deﬁnition. and Fi (ui+1 ) and Fi+n (ui+1 ) may diﬀer. rather than its ﬁrst occurrence. A knot uk in a knot sequence uk k∈Z has multiplicity n (n ≥ 1) iﬀ it occurs exactly n (consecutive) times in the knot sequence. and for every k ∈ Z. a knot sequence has degree of multiplicity at most m + 1 iﬀ every knot has multiplicity at most m + 1. then 1 ≤ n ≤ m + 1.

ui+1 ] agrees with a polynomial curve Fi of polar degree m. since we have at least C 0 -continuity. Practically. t<ui+1 lim F (t) = Fi (ui+1 ). when ui+1 has multiplicity n ≤ m. This ensures that F (ui+1 ) = Fi+m+1 (ui+1 ). ui+m+2 [. we mention that the kind of discontinuity arising at a discontinuity knot ui+1 . this would complicate the treatment of control points (we would need special control points corresponding to the “dicontinuity values” F (ui+1 )). (5) It is possible for a piecewise polynomial curve. agrees with a polynomial curve Fi+m+1 . which amounts to say that each join has continuity C −1 (but may be better). lim F (t) = Fi+m+1 (ui+1 ). when ui+1 has multiplicity m + 1. the limit F (ui+1 −) of F (t) when t approaches ui+1 from below. (3) The number m + 1 is often called the order of the B-spline curve. that every knot has multiplicity ≤ m. We could have instead used intervals ]ui+1 . we would have F (ui+1 −) = and F (ui+1 +) = t→ui+1 . (4) Note that no requirements at all are placed on the joins of a piecewise polynomial curve. Thus. when ui+1 is a knot of multiplicity m + 1. Since F agrees with Fi on [ui . although possibly discontinuous. This is achieved by requiring that the restriction of F to the interval [ui+1 . ui+1 [. we want the spline function F to be deﬁned at ui+1 . INFINITE KNOT SEQUENCES. there is no advantage in viewing F as a spline. However. t<ui+1 lim F (t) = Fi (ui+1 ).e.2. and one can safely ignore these subtleties. and thus. In this case. ui+m+2 [. open on the left. where we require that the restriction of F to the open interval ]ui+1 . are called a discontinuity of the ﬁrst kind (see Schwartz. [71]). We could also have used a more symmetric approach. to have C m continuity at all joins: this is the case when F is a polynomial curve! In this case. is equal to the limit of Fi (t) when t approaches ui+1 (from below).6. open on the right. then clause (1) can be simpliﬁed a little bit: we simply require that the restriction of F to the closed interval [ui . or for a spline curve. ui+m+2 ]. F (ui+1 −) = t→ui+1 . For the curious reader. discontinuities are rare anyway. t>ui+1 t→ui+1 . i. The ﬁrst option seems the one used in most books. agrees with a polynomial curve Fi+m+1 . OPEN B-SPLINE CURVES 199 (2) If we assume that there are no discontinuities. we have F (ui+1 ) = Fi (ui+1 ) = Fi+n (ui+1 ). and by giving an arbitrary value to F (ui+1 ). However. .

0. . or equivalently. . the polar values are denoted as triplets of consecutive knots ui ui+1 ui+2 . . For simplicity of notation. . . . 6. .2. 3.2. we often say that the spline has ﬂoating ends. 4. they should be denoted as fk (ui . Figure 6. By lemma 5. 5. B-SPLINE CURVES 456 567 012 234 345 Figure 6. 1. .4. when in fact. for some appropriate k. 5. .200 123 CHAPTER 6. 0. 2. .5. The following ﬁgure represents a part of a cubic spline based on the uniform knot sequence .6. 7. ui+2 ). 1. 3. When considering part of a spline curve obtained by restricting our attention to a ﬁnite subsequence of an inﬁnite knot sequence. ui+1 . iﬀ their polar forms fi : Am → E and fi+n : Am → E agree on all multisets of points that contain at most m − n points distinct from q = ui+1 . the curve segments Fi and Fi+n join with continuity C m−n at q = ui+1 (where 1 ≤ n ≤ m + 1). . 7. .5 shows the construction of the control points for the three B´zier curve segments e constituting this part of the spline (with ﬂoating ends).4: Part of a cubic spline with knot sequence . iﬀ the polar forms fi : Am → E and fi+n : Am → E agree on all multisets (supermultisets) of . .

. 5.4.5: Construction of part of a cubic spline with knot sequence .2. . 7. OPEN B-SPLINE CURVES 201 123 122 456 556 567 555 222 223 012 455 233 333 444 445 234 334 344 345 Figure 6. .2.6. 1. . .6. . INFINITE KNOT SEQUENCES. . 0. 3.

Proof. n Thus. ui+2 . . . If the polar forms fi and fj agree on all multisets of m elements from A containing the multiset of intervening knots {ui+1 . the condition is vacuous. uj }. . and any knot sequence uk k∈Z of degree of multiplicity at most m + 1. As we will prove. . . . as long as the number j − i of intervening knots is at most m. two non-adjacent curve segments Fi and Fj are still related to each other. Given any m ≥ 1. . ui+2 . then for any two adjacent line segments Fi and Fi+n (1 ≤ n ≤ m). ui+n1 }. where i < j ≤ i + m. ui+2 . . . . B-SPLINE CURVES {ui+1 . where i < j ≤ i + m. In fact. n2 . fi and fi+n1 agree on all multisets containing the multiset {ui+1 .5. . . uj }. . . Consider any two curve segments Fi and Fj . ui+2 . suppose that the curve segments Fi ﬁt together to form a spline.2. the curve F is a spline iﬀ the following condition holds: For all i. . . . fi+n1 and fj agree on all multisets containing the multiset . . but that’s ﬁne.2. . . Lemma 6. the polar forms fi and fj must agree on all supermultisets (of m elements) of the multiset {ui+1 . the polar forms fi and fj agree on all multisets of m elements from A (supermultisets) containing the multiset of intervening knots {ui+1 .2. for any piecewise polynomial curve F of (polar) degree m based on the knot sequence uk k∈Z . . q }. by lemma 5. fi and fi+n agree on all multisets containing the multiset {ui+1 .202 m points from A containing the multiset CHAPTER 6. so that n1 + n2 + · · · + nh = j − i. with i < j ≤ i + m. . . Let n1 . implies that the join at ui+1 = ui+n has continuity at least C m−n . ui+2 . . ui+n }. ui+n } = {q. . . uj }. j. ui < ui+1 and uj < uj+1 . . the continuity conditions for joining curve segments forming a spline impose constraints on the polar forms of adjacent curve segments. . {ui+n1 +1 . By the induction hypothesis. .3. . uj }. Since Fi and Fi+n1 join with C m−n1 -continuity at ui+1 = ui+n1 . ui < ui+1 and uj < uj+1.5. . . nh be the multiplicities of the knots of the intervening sequence of knots {ui+1 . ui < ui+1 and uj < uj+1 . . . . uj }. . which by lemma 5. . . since C −1 -continuity does not impose any continuity at all! In the other direction. . We proceed by induction on h. When n = m + 1. .

u) f = g(s. s. s. v) h = k(v. . t) k(t. fi and fj agree on all multisets containing the multiset {ui+1 . g. with C 2 -continuity at the knots s. . v. v. t. r) Figure 6. t) g = h = k(u. and [v. The following ﬁgure shows part of a cubic spline corresponding to the knot sequence . t) h = k(v. and h and k agree on all triplets including the argument v: The fact that a knot u of multiplicity 2 generally corresponds to a join with only C 1 continuity can be derived by the following reasoning. s) f = g(r. s. s]. u) g = h(u. u. v. s. g and h agree on all triplets including the argument u. h. .6: Part of a cubic spline with C 2 -continuity at the knots s.2. t) h = k(v. [u. u) f = g = h(s. . t. r. v) f = g = h(s. .6. v. v) 203 f = g(r. s) f (r. v and by transitivity. If we assume that the points labeled . . u. r. . [s. v. v means that. u. k denote the polar forms corresponding to the intervals [r. v. uj }. OPEN B-SPLINE CURVES f = g = h = k(s. r. then f and g agree on all (multiset) triplets including the argument s. s. u. u]. u. u) f = g = h(r. t. v) g = h = k(u. . if we let f. INFINITE KNOT SEQUENCES. Recall that C 2 -continuity at the knots s. t]. u. . . v]. u. u. s) g = h = k(u.

u) and h(v. u) CHAPTER 6. v. v) = f (s. s) g = k(u. The following ﬁgure illustrates this situation. . u.204 f = g = k(s. Let us now go back to our original ﬁgure showing part of a cubic spline corresponding to the knot sequence . k(v. s. g(u. u). and the two curve segments between f (s. only with C 1 -continuity. in the limit. t) = g(u. u) on the line segment between f (s. r). r) Figure 6. t). and between k(v. with C 2 -continuity at the knots s. and if we let u and v converge to a common value. v. u. f (s. u. s). v. u. and k(t. v. f (r. t). . t) (since the polar form h vanishes). Note that C 1 -continuity at the double knot u corresponds to the fact that the polar forms g and k agree on all (multiset) triplets that include two copies of the argument u. u) f = g(s. u) f = g(r. t. s) g = k(u. t) f = g(r.7: Part of a cubic spline with C 1 -continuity at the knot u f (r. . f (r. v). end up joining at the new point g(u. r. the curve segment between g(u. t) f (r. u. s) f = g(r. r. u). s. s. r. t) do not change. r. . s. t. r. u. t. that is. t). . and let us see what happens when the knot s becomes a knot of multiplicity 3. u. u. u) with diﬀerent acceleration vectors. s. t. u. v) and k(t. . v) (displayed as a dashed curve) is contracted to the single point g(u. u. t. B-SPLINE CURVES f = g(s. u. u) and g(u. v. s) and g(u. u. . u. t) k(u. u) k(t. t. v. s. s.

2. s) (since the polar forms g and h vanish). only with C 0 -continuity. f (r. v) and k(t. f (s. . Note that C 0 -continuity at the triple knot s corresponds to the fact that the polar forms f and k agree on the (multiset) triplet s. u) f = g = h(s. t) end up joining at f (s. s) and between k(v.3 tells us about the values of polar forms on multisets of arguments of the form {uk+1 . s. t. v) h = k(v. u. if we assume that the points labeled f (r. u. v The fact that a knot s of multiplicity 3 generally corresponds to a join with only C 0 continuity can be derived by the following reasoning. s. v. t) h = k(v. . v. s). As in the previous case. t) k(t. g(u. v. that is. t) do not change. and v converge to a common value. in the limit. s. u. s. u. v. r) and f (s. v) (displayed as dashed curves) are contracted to the single point f (s. u. s. and if we let s. v) = f (s. u. s) f = g(r. uk+m }.2. v) = f (s. v) g = h = k(u. s) with diﬀerent tangents. v). v. INFINITE KNOT SEQUENCES. u. v. t. OPEN B-SPLINE CURVES f = g = h = k(s. . t. v) f = g = h(s. s. t. . the two curve segments between f (s. s) and g(u. u) and between g(u. and the two curve segments between f (r. v) 205 f = g(r. u) f = g(s. r. The following ﬁgure illustrates this situation. t). s. and k(t. u) f = g = h(r. u) g = h(u. f (r. s. t). s. u. u. s) f (r. u. r) Figure 6. u. let us see what lemma 6.8: Part of a cubic spline with C 2 -continuity at the knots s. t. r. t) h = k(v. r. t) g = h = k(u. . u) and h(v. s. s. u). If F is a spline curve of degree m. k(v. s) g = h = k(u. r). r. v.6. r.

r. s) f (r. B-SPLINE CURVES f = k(s.9: Part of a cubic spline with C 0 -continuity at the triple knot s . r. s. t) f (r. s) k(t. t. s. t. s. t) k(s.206 CHAPTER 6. s) k(s. t) f (r. r) Figure 6.

.2. . uj }. . ui < ui+1 and uj < uj+1. . Proof. We will use lemma 6. uk+m ) = fj (uk+1. we have shown that the spline curve F is unique. . . Then. . they play for splines the role that B´zier control points play for polynomial curves. . .2. the sequence is progressive. Let i. which can be viewed as a generalization of lemma 4.2. there is a unique polynomial curve Fi of polar degree m. and by lemma 6. by theorem 5. . be such that i < j ≤ i + m. j. the multiset {ui+1 . . .3. . where i − m ≤ k ≤ i. uk+m ) = dk .6.1. .2.2. for all k. if it exists.2. . . . . . . i. .3. . and consider the sequence of 2m knots ui−m+1 . . . for all k. such that the following condition holds: dk = fi (uk+1 . The polar values fi (uk+1 . . for any bi-inﬁnite sequence dk k∈Z of points in some aﬃne space E. For this. where ui < ui+1 and k ≤ i ≤ k + m. . uk+m }. .3. ≤ ui < ui+1 ≤ . Assume that such a spline curve F exists. ui+m . ui+1 ]. ≤ ui+m . uk+m }.3. . uk+m ). . Thus. fi and fj agree on {uk+1 . . Basically. . This is conﬁrmed formally by the following e theorem. Let ui < ui+1 be two consecutive distinct knots. .4 uniquely determine every curve segment Fi .4. and they play an important role for splines. there exists a unique spline curve F : A → E. Given any m ≥ 1. centered at the interval [ui . . . . uk+m ) (where k ≤ i ≤ k + m).4. . We must show that the polar forms fi and fj agree on all multisets of m elements from A (supermultisets) containing the multiset of intervening knots {ui+1 . . Theorem 6. uj } is a submultiset of the multiset {uk+1. and any knot sequence uk k∈Z of degree of multiplicity at most m + 1. . Since we have ui−m+1 ≤ . uk+m ). From the requirements of theorem 6. . . are called de Boor points. . Then. INFINITE KNOT SEQUENCES. . . we have to show that the curve segments Fi ﬁt together in the right way to form a spline with the required continuity conditions. The proof is due to Ramshaw. we need to show the existence of such a spline curve. OPEN B-SPLINE CURVES 207 Consider i < j such that k ≤ i < j ≤ k + m. we know that fi (uk+1 . such that dk = fi (uk+1 . .2. . Since the requirements of theorem 6.

Given a knot ui in the knot sequence. ui+m−1 ui+m Now. This does not depend on the knot multiplicity. and collapse the remaining two triangles to form a smaller parallelogram. ui+m−1 . We may even denote polar values fi (t1 . . cut the middle j − i columns out of this parallelogram.2. and think of the inequalities as i − m ≤ k ≤ i. and since fi and fj agree on the previous parallelogram. . . . . . vl ) = fi (v1 . and we will often do so. it is important to realize that F itself is generally not the polar form of some (unique) symmetric multiaﬃne map. ui+1 [.. .3. . v l . such that ui < ui+1 . . . We can only say that F is a piecewise polar form. . This means that fi and fj agree on the rows of the following parallelogram: uj−m+1 uj−m+2 . . . we can consider i as ﬁxed. that fi = fj . . . v l . uk+m ). . . . ui+m is progressive. . simply as f (uk+1 . . . . . . . . omitting the subscript i. implies that gi = gj . . .. On the other hand. . the inequality k ≤ i ≤ k + m can be interpreted in two ways. uj+1. uj uj+1 . vl ∈ A. . and thus. the curve segment Fi that is the restriction of F to [ui . is equivalent to proving that gi = gj . it is convenient to denote polar values fi (uk+1 . the theorem tells us which de Boor points inﬂuence the speciﬁc curve segment Fi : there are m+1 de Boor points that inﬂuence the curve segment Fi . . the theorem tells us which curve segments Fi of the spline F are inﬂuenced by the speciﬁc de Boor point dk : the de Boor point dk inﬂuences at most m + 1 curve segments. . . tm ) as f (t1 . with j − m ≤ k ≤ i. uk+m ). . uj+1 . ui . . since each element of the left half is strictly less than each element of the right half (since ui < ui+1 ≤ uj ). . uj }. corresponding to control points. uj uj+1 . . . Note that the sequence of 2l knots uj−m+1 . . . . . B-SPLINE CURVES for k. . . . . . for all v 1 . . ui . then gi and gj agree on the l + 1 sequences associated with the progressive sequence uj−m+1 . . . . . . . . and let gi : Al → E and gj : Al → E denote the symmetric multiaﬃne functions of l arguments deﬁned as follows: gi (v1 . . In this case. when the index i is clear from the context. . ui+1 . uj . . Proving that fi and fj agree on all supermultisets of {ui+1 . Let l = m − j + i. . . This is achieved when all the knots are simple. is deﬁned by a unique symmetric multiaﬃne map. . . ui ui+1 uj−m+2 . . ui ui+1 . . . ui ui+1 ui+1 . uj uj+1 . . . . . . If we think of k as ﬁxed. . uj ). . Nevertheless. . Given a spline curve F : A → E. .208 CHAPTER 6. . . . . . tm ). . which by theorem 5. . ui+1 . . . . and gj (v1 . vl ) = fj (v 1 . . . ui+m . . although for every knot ui such that ui < ui+1 . uj ). . . . . . .

FINITE KNOT SEQUENCES. . . the polar forms fi . we denote this common value fi (u1 . for any multiset of arguments {u1 . tm ) is well deﬁned iﬀ ui < uj+1 . Given a nonempty open interval I. q[. . . Given a knot sequence uk k∈Z of degree of multiplicity at most m + 1. . Another reason for letting the end knots have multiplicity m + 1 is that it is needed for the inductive deﬁnition of B-spline basis functions (see section 6. . The interval I is called a validity interval . 6.3. In particular. . um }. . um ) as fS (u1 . We prefer using the notation fI . it is quite complex. and wild overloading. . Then. . It is possible to introduce conventions for overloading the notation. uj . . . . . . . . . We have to be a little careful to deal with knots of multiplicity ≥ 2. where S = {i | ]ui . For details. but multiplicity m + 1 allows us to view a ﬁnite spline curve as a fragment of an inﬁnite spline curve delimited by two discontinuity knots. This way the ﬁrst curve segment is unconstrained at its left end. Actually. provided that this common value makes sense. . tame overloading. um }. ui < ui+1 and uj < uj+1. . Given any natural numbers m ≥ 1 and N ≥ 0. . .3 Finite Knot Sequences. uj . we have to deal with the two end knots. . when i < j ≤ i + m. Although the notation fS is helpful. . . multiplicity m will give the same results. for any multiset of arguments {u1 . .3. Under some reasonable conventions. . . um ). Finite B-Spline Curves In the case of a ﬁnite knot sequence. where i ∈ S. where tj−i+1 . ui+1 [ ∩ I = ∅}. . . Ramshaw introduced two such conventions. .ui+m+1 [ (ui+1 . we will next consider what kinds of adjustments are needed to handle ﬁnite knot sequences and inﬁnite cyclic knot sequences. that is. . . . . if we know that for some nonempty set S of knots. . These adjustments are minor. the terms f]ui . . . . A reasonable method is to assume that the end knots have multiplicity m + 1.1. . ui+m ) (the de Boor points) are always well deﬁned. tm are arbitrary. . we deﬁne fI (u1 . the common value of fi and fj is denoted as f{i. a ﬁnite knot sequence of degree of multiplicity at most m + 1 with N intervening knots is any ﬁnite nondecreasing . the interested reader is referred to Ramshaw [65]. omitting validity intervals in polar forms. According to this convention. um ). FINITE B-SPLINE CURVES 209 A clean way to handle this overloading problem is to deﬁne the notion of a validity interval . and the last curve segment is unconstrained at its right end. tj−i+1. Deﬁnition 6.uj+1 [ (ui+1 . . where I is an open interval ]p. . . . tm ).7). Having considered the case of bi-inﬁnite knot sequences. .6. um }. . tj−i+1 . . . .j} (ui+1 . validity intervals can be inferred automatically. f]ui . um ) as the common value fS (u1 . agree on the multiset {u1 . . .

. . of degree of multiplicity at most m+1 and with N intervening knots. .2. . we now deﬁne the number L of subintervals in the knot sequence. uN uN +m+1 n1 n2 . .3. then N = n1 + · · · + nL−1 . . . Note that some authors use the terminology closed B-splines for such B-splines. . . . B-SPLINE CURVES sequence uk −m≤k≤N +m+1 . . . nL−1 m+1 N = n1 + · · · + nL−1 . uN are n1 . we propose to use the terminology ﬁnite B-splines. . uN . . . where u−m and um+1 are distinct and of multiplicity m + 1. . . We do not favor this terminology. un1 +1 . .. . . if v1 . . . . uN −nL−1 +1 . and 1 ≤ i ≤ L − 1). . . with the convention that n1 + · · · + n0 = 0 when i − 1 = 0. . uN +m+1 . . since it is inconsistent with the traditional meaning of a closed curve. If N ≥ 1. . un1 . v i = ui . . such that u−m < uN +m+1 . m+1 n1 n2 nL−1 m+1 where The picture below gives a clearer idea of the knot multiplicities. and every knot uk has multiplicty at most m + 1. . . . and the knot sequence uk −m≤k≤N +m+1 consists of 2(m + 1) + N = 2(m + 1) + n1 + · · ·+ nL−1 knots. . . . un1 +n2 . then v i = un1 +···+ni−1 +1 . If N = 0. . . . .210 CHAPTER 6. nL−1 (where 1 ≤ ni ≤ m + 1. . . . Given a ﬁnite knot sequence uk −m≤k≤N +m+1 . . A knot uk of multiplicity m + 1 is called a discontinuity (knot). looks as follows: u−m . . . . A knot of multiplicity 1 is called a simple knot. un1 +1 . . where E is some aﬃne space (of dimension at least 2). . A ﬁnite knot sequence of length 2(m + 1) + N containing L + 1 distinct knots. Instead. . If the multiplicities of the L − 1 distinct knots in the sequence u1 . ... and we let L = 1. when N ≥ 1 and L ≥ 2. and 1 ≤ ni ≤ m + 1). . vL−1 is the subsequence of leftmost occurrences of distinct knots in the sequence u1 . . Given a ﬁnite sequence. .. uN . . uN . . such that the following condition holds: . . We can now deﬁne ﬁnite B-spline curves based on ﬁnite knot sequences. u−m . Deﬁnition 6. . . the knot sequence uk −m≤k≤m+1 consists of 2(m + 1) knots. . . . Given any natural numbers m ≥ 1 and N ≥ 0. . uN +1 ] → E. u1 . uN +1 . with L + 1 of them distinct. . . Instead. if the multiplicity of each knot v i is ni (where 1 ≤ i ≤ L − 1. in general. . uN −nL−1 +1 . given any ﬁnite knot sequence uk −m≤k≤N +m+1 of degree of multiplicity at most m+1 and with N intervening knots. un1 un1 +n2 . u0 . . u0 m+1 u1 . then we let L − 1 ≥ 1 be the number of distinct knots in the sequence u1 . a piecewise polynomial curve of degree m based on the ﬁnite knot sequence uk −m≤k≤N +m+1 is a function F : [u0 . uN +1 .

uN uN +m+1 n1 n2 . . un1 +1 . then the restriction of F to [ui . Note that a spline curve deﬁned on the ﬁnite knot sequence u−m . . the following condition holds: 2. uN +1 ] → E. a ﬁnite B-spline. we also want the last curve segment FN to be deﬁned at uN +1 . . with associated polar form fN . When N ≥ 1. . .3. nL−1 m+1 . ui+2 ). . such that. . in the following ﬁgures representing cubic splines. However. . FINITE KNOT SEQUENCES. u1 .11 shows the construction of the control points for the B´zier curve segments e constituting the previous spline. if ui+1 has multiplicity n ≤ m + 1. uN +1 . uN −nL−1 +1 . . . Another reason for letting the end knots have multiplicity m + 1 is that it is needed for the inductive deﬁnition of B-spline basis functions (see section 6. for every two consecutive distinct knots ui < ui+1 (where 0 ≤ i ≤ N − nL−1 ). then for any two consecutive distinct knots ui < ui+1 . . The curve segments Fi and Fi+n join with continuity (at least) C m−n at ui+1 . The set F ([u0 . If N = 0.6. using multiplicity m + 1 allows us to view a ﬁnite spline as a fragment of an inﬁnite spline. uN +1 ] agrees with a polynomial curve FN of polar degree m.1. u0 m+1 where N = n1 + · · · + nL−1 . Fn1 +···+nL−1 = FN . . Remark: The remarks about discontinuities made after deﬁnition 6. Fn1 . . Figure 6. .5. um+1 ] → E agrees with a polynomial curve F0 of polar degree m.. . To simplify notation. . then we get the same curve. . . ui+1 .7). if 0 ≤ i ≤ N − nL−1 . . when N ≥ 1 and L ≥ 2.. they should be denoted as fk (ui . F0 .2.. Note that if we assume that u0 and uN +1 have multiplicity m. . consists of L curve segments... then F : [u0 . when in fact. uN +1 ]) is called the trace of the ﬁnite spline F . A spline curve F of degree m based on the ﬁnite knot sequence uk −m≤k≤N +m+1 or for short. Let us look at some examples of splines. un1 un1 +n2 . . .2 also apply. with associated polar form f0 . and if i = N. . then the restriction of F to [uN . for some appropriate k. . polar values are denoted as triplets of consecutive knots ui ui+1 ui+2 . FINITE B-SPLINE CURVES 211 1. However. . in the sense of deﬁnition 5. is a piecewise polynomial curve F : [u0 . ui+1 [ agrees with a polynomial curve Fi of polar degree m with associated polar form fi .

6.2. 3.1.4. 6 . B-SPLINE CURVES 123 456 566 112 666 111 234 345 Figure 6. 5. 6. 1.212 CHAPTER 6.10: A cubic spline with knot sequence 1.6. 1.

5. 6 . 1.6.6.6. FINITE KNOT SEQUENCES.4. FINITE B-SPLINE CURVES 213 123 456 556 566 122 222 112 223 455 555 233 333 444 445 666 111 234 334 344 345 Figure 6.3. 6. 1.1.11: Construction of a cubic spline with knot sequence 1.2. 3.

T ∈ N. the nodes labeled 112. We now consider closed B-spline curves over cyclic knot sequences. 4. 10. 6. The next two ﬁgures show a cubic spline with knot sequence 0. 7.12 shows another cubic spline with knot sequence 0. For example. 1. 0. the corresponding part of the spline is also pulled towards the control polygon.1. 7. 0. 3/4. 0. Since the knot sequence is non-uniform. 9. and the construction of the control points of the B´zier curves that constitute the spline. 2. Figure 6. where L. cycle length N. Closed (Cyclic) B-Spline Curves First. we deﬁne cyclic knot sequences. 8. uj+N . 1/3. 12. 11. 10 with intervening double knot 8.13 shows the construction of the control points for the B´zier curve segments e constituting the previous spline. 8. 3.e. 0. 7. 0. The non-uniformity of the knot sequence causes the B´zier control points 333 and 555 to e be pulled towards the edges of the control polygon. . is any bi-inﬁnite nondecreasing sequence uk k∈Z of points uk ∈ A (i. 2. 2/3. 223. 13. .4 Cyclic Knot Sequences. 2/3. 9. 1. 7. 0. 5. 667. the interpolation ratios vary. 1. 566. 335. e The example in ﬁgure 6.214 CHAPTER 6. 233. and period size T . 556. 10. 3. and thus. 122. 5. 0. L ≥ 2. . 5. 1/4. such that there is some subsequence uj+1.4. 677. correspond to the ratios 1/3. 555. 11. 3/4. 6. . 0. 10. 2/3. 11. 355. uk ≤ uk+1 for all k ∈ Z). Deﬁnition 6. 1/2. 13. 13. B-SPLINE CURVES Figure 6. A cyclic knot sequence of period L. 7. 222.16 shows a cubic spline based on the non-uniform knot sequence 0. 1/4. 13. 4. 10. 1/2. 3. 0. and 666. 6. 1/2. 1/2. N. 7. 333. and N ≥ L. 7. 6. 1/3. 2. 8.

6. 2. 7.4. 7. CLOSED (CYCLIC) B-SPLINE CURVES 215 677 777 123 456 567 012 001 000 234 345 Figure 6. 4.12: A cubic spline with knot sequence 0. CYCLIC KNOT SEQUENCES. 7 . 0. 1.6. 0. 5. 3. 7. 0.

3. 5. 0. B-SPLINE CURVES 677 667 777 123 122 112 222 012 111 223 455 555 666 456 556 566 567 011 233 333 444 445 001 000 234 334 344 345 Figure 6. 6. 2. 0. 0. 7.13: Construction of a cubic spline with knot sequence 0. 7 . 7.216 CHAPTER 6. 7. 4. 1.

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

217

89 10

10 11 11

11 11 11

9 10 11 789 677

11 11 12

11 12 13 13 13 13

778

123

456

12 13 13 567

012

001 000

234

345

Figure 6.14: Another cubic spline

218

CHAPTER 6. B-SPLINE CURVES

89 10 899 889 789

10 11 11 99 10 10 10 10 10 10 11 999 9 10 10 9 10 11 677

11 11 11

11 12 12 11 11 12 12 12 12

11 12 13 13 13 13

888 777

788

12 12 13 667 666 456 556

778 122 112 222 012 111

123

12 13 13 566 567

555 223 455

011

233 333 444

445

001 000

234 334 344 345

Figure 6.15: Construction of a cubic spline with knot sequence 0, 0, 0,0, 1, 2,3, 4, 5,6, 7, 7, 8, 9, 10,11, 11, 11,12, 13, 13,13, 13

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

219

123

235

012 356

567 001 10 10 10 678 000

889

788

89 10

9 10 10

Figure 6.16: Another cubic spline

220

CHAPTER 6. B-SPLINE CURVES

123 223 233 122 112 012 222 333

235 335

355 356 555

111

011

556 566 666 567

001 677 678 000 778 889 899 89 10 888 788 777

667 10 10 10

999 99 10 9 10 10

Figure 6.17: Construction of another cubic spline

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

221

of N consecutive knots containing exactly L distinct knots, with multiplicities n1 , . . . , nL , uj+N < uj+N +1, and uk+N = uk + T , for every k ∈ Z. Note that we must have N = n1 + · · · + nL (and ni ≥ 1). Given any natural number m ≥ 1, a cyclic knot sequence of period L, cycle length N, and period size T , has degree of multiplicity at most m, iﬀ every knot has multiplicity at most m. As before, a knot sequence (ﬁnite, or cyclic) is uniform iﬀ uk+1 = uk + h, for some ﬁxed h ∈ R+ . A cyclic knot sequence of period L, cycle length N, and period size T is completely determined by a sequence of N + 1 consecutive knots, which looks as follows (assuming for simplicity that the index of the starting knot of the cycle that we are looking at is k = 1) . . . , u1 , . . . , un1 , un1 +1 , . . . , un1 +n2 , . . . , un1 +···+nL−1 +1 , . . . , uN , uN +1 , . . . ,

n1 n2 nL

or showing the knot multiplicities more clearly, as . . . , u1 , un1 +1 , . . . , uN −nL +1 , uN +1 , . . . . . . . . . . . . . ... . . un1 un1 +n2 . . . uN uN +n1 n1 where N = n1 + · · · + nL , uN < uN +1 , and uk+N = uk + T , for every k ∈ Z. Observe that we can think of the knots as labeling N points distributed on a circle, where any two knots uk+N and uk + T label the same point. We will see when we deﬁne closed spline curves that it does not make sense to allow knots of multiplicity m + 1 in a cyclic knot sequence. This is why the multiplicity of knots is at most m. The following is an example of a cyclic knot sequence of period 3, cycle length N = 3, and period size 5: . . . , 1, 3, 4, 6, 8, 9, 11, 13, . . . . Another example of a cyclic knot sequence of period 4, cycle length N = 5, and period size 6 is: . . . , 1, 2, 2, 5, 6, 7, 8, 8, 11, 12, 13, . . . . We now deﬁne B-spline curves based on cyclic knot sequences. Some authors use the terminology cyclic B-splines, and we will also call them closed B-splines. n2 ... nL n1

222 uN +1 = u1 + T u1 · · · u n1 uN −nL +1 ···

CHAPTER 6. B-SPLINE CURVES

uN

un1 +n2

···

un1 +1

Figure 6.18: A cyclic knot sequence Deﬁnition 6.4.2. Given any natural number m ≥ 1, given any cyclic knot sequence uk k∈Z of period L, cycle length N, period size T , and of degree of multiplicity at most m, a piecewise polynomial curve of degree m based on the cyclic knot sequence uk k∈Z is a function F : A → E, where E is some aﬃne space (of dimension at least 2), such that, for any two consecutive distinct knots ui < ui+1 , if ui+1 is a knot of multiplicity n, the next distinct knot being ui+n+1 , then the following condition holds: 1. The restriction of F to [ui , ui+1 ] agrees with a polynomial curve Fi of polar degree m, with associated polar form fi , and Fi+N (t + T ) = Fi (t), for all t ∈ [ui , ui+1 ]. A spline curve F of degree m based on the cyclic knot sequence uk k∈Z or for short, a closed (or cyclic) B-spline, is a closed piecewise polynomial curve F : A → E, such that, for every two consecutive distinct knots ui < ui+1 , the following condition holds: 2. The curve segments Fi and Fi+n join with continuity (at least) C m−n at ui+1 , in the sense of deﬁnition 5.5.1, where n is the multiplicity of the knot ui+1 (1 ≤ n ≤ m). The set F (A) is called the trace of the closed spline F . Remarks:

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

223

(1) Recall that a cyclic knot sequence of period L, cycle length N, and period size T , satisﬁes the property that uk+N = uk + T , for every k ∈ Z. We must have ui+N = ui + T , ui+1+N = ui+1 + T , and thus, the curve segment Fi+N is deﬁned on the interval [ui + T, ui+1 + T ], and it makes sense to require the periodicity condition Fi+N (t + T ) = Fi (t), for all t ∈ [ui , ui+1 ]. (2) In the case of a closed spline curve, it does not make sense to allow discontinuities, because if we do, we obtain a spline curve with discontinuities, which is not a closed curve in the usual mathematical sense. Thus, we allow knots of multiplicity at most m (rather than m + 1). When every knot is simple, we have L = N. Note that a closed spline curve based on the following cyclic knot sequence of period L, cycle length N, and period size T , . . . , u1 , un1 +1 , . . . , uN −nL +1 , uN +1 , . . . . . . . . . . . . . . ... . un1 un1 +n2 . . . uN uN +n1 n1 where N = n1 + · · · + nL , uN < uN +1 , and uk+N = uk + T for every k ∈ Z, consists of L curve segments (the period of the knot sequence). Some examples of closed splines are given next. The example in ﬁgure 6.19 shows a closed cubic spline based on the uniform cyclic knot sequence . . . , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, . . . of period L = 16, cycle length N = 16, and period size T = 16. As usual, for simplicity of notation, the control points are denoted as triplets of consecutive knots ui ui+1 ui+2 . The cyclicity condition is fk (ui , ui+1 , ui+2 ) = fk+16 (ui + 16, ui+1 + 16, ui+2 + 16), which we write more simply as ui ui+1 ui+2 = (ui + 16)(ui+1 + 16)(ui+2 + 16). n2 ... nL n1

Since the knot sequence is uniform, all the interpolation ratios are equal to 1/3, 2/3, or 1/2.

224

CHAPTER 6. B-SPLINE CURVES

123

012 = 16 17 18 14 15 16

234 456

15 16 17 13 14 15 11 12 13

345 567 789

12 13 14 10 11 12 89 10

678

9 10 11 Figure 6.19: A closed cubic spline with cyclic knot sequence

6.4. CYCLIC KNOT SEQUENCES, CLOSED (CYCLIC) B-SPLINE CURVES

225

123

222 012 = 16 17 18 14 15 16 16 16 16 15 15 15 15 16 17 13 14 15 14 14 14 11 12 13 13 13 13 12 12 12 12 13 14 10 11 12 11 11 11 999 89 10 789 777 888 678 444 555 345 666 567 234 456

111

333

10 10 10

9 10 11 Figure 6.20: Construction of a closed cubic spline with cyclic knot sequence

226

CHAPTER 6. B-SPLINE CURVES

The example in ﬁgure 6.21 shows a closed cubic spline based on the non-uniform cyclic knot sequence . . . , −3, −2, 1, 3, 4, 5, 6, 9, 11, 12, . . . of period L = 5, cycle length N = 5, and period size T = 8. As usual, for simplicity of notation, the control points are denoted as triplets of consecutive knots ui ui+1 ui+2 . The cyclicity condition is fk (ui , ui+1 , ui+2 ) = fk+5 (ui + 8, ui+1 + 8, ui+2 + 8), which we write more simply as ui ui+1 ui+2 = (ui + 8)(ui+1 + 8)(ui+2 + 8).

Because the knot sequence is non-uniform, the interpolation ratios vary. The interpolation ratios for the nodes labeled 113, 133, 334, 344, 445, 455, 556, 566, 669, −2 11 = 699, 111, 333, 444, 555, 666, are 1/3, 5/6, 1/2, 3/4, 1/3, 2/3, 1/5, 2/5, 1/6, 2/3, 3/5, 2/3, 1/2, 1/2, 1/4. It is easy to show that lemma 6.2.3 can be simply modiﬁed to hold for ﬁnite spline curves, and for closed spline curves. We can also modify theorem 6.2.4 as follows. Theorem 6.4.3. (1) Given any m ≥ 1, and any ﬁnite knot sequence uk −m≤k≤N +m+1 of degree of multiplicity at most m + 1, for any sequence d−m , . . . , dN of N + m + 1 points in some aﬃne space E, there exists a unique spline curve F : [u0 , uN +1 ] → E, such that dk = fi (uk+1 , . . . , uk+m ), for all k, i, where −m ≤ k ≤ N, ui < ui+1 , and k ≤ i ≤ k + m. (2) Given any m ≥ 1, and any ﬁnite cyclic knot sequence uk k∈Z of period L, cycle length N, period size T , and of degree of multiplicity at most m, for any bi-inﬁnite periodic sequence dk k∈Z of period N of points in some aﬃne space E, i.e., a sequence such that dk+N = dk for all k ∈ Z, there exists a unique closed spline curve F : A → E, such that dk = fi (uk+1 , . . . , uk+m ), for all k, i, where ui < ui+1 and k ≤ i ≤ k + m. Proof. (1) The ﬁnite knot sequence is of the form u−m , . . . , u0 , u1 , . . . , un1 , un1 +1 , . . . , un1 +n2 , . . . , un1 +···+nL−2 +1 , . . . , uN , uN +1 , . . . , uN +m+1 ,

m+1 n1 n2 nL−1 m+1

CYCLIC KNOT SEQUENCES.4. CLOSED (CYCLIC) B-SPLINE CURVES 227 134 −2 13 = 69 11 345 569 456 Figure 6.21: Another cubic spline with cyclic knot sequence .6.

B-SPLINE CURVES 134 133 333 113 334 344 −2 13 = 69 11 111 444 345 −2 11 = 699 445 455 555 669 569 666 566 556 456 Figure 6.228 CHAPTER 6.22: Construction of another closed cubic spline .

the proof of theorem 6. . . we have Fi+N (t + T ) = Fi (t). ui+1 ]. ui+m . . . . . . . . . . . .4. . Let ui < ui+1 be two consecutive distinct knots in the sequence u−m+1 . . . ui+1 ]. . .6. . . . Thus. N = n1 + · · · + nL uN < uN +1 . . for all t ∈ [ui . uN +m+1 do not correspond to any control points (but this is ﬁne!). u0 ). Note that there are (2(m + 1) + N) − m + 1 = m + N + 3 subsequences of m consecutive knots in the entire knot sequence. The rest of the proof is similar to the proof of theorem 6. from a practical point of view.4. We now reconsider the de Boor algorithm. . . say . . . . . . Since there are m + N + 1 subsequences of m consecutive knots in the knot sequence u−m+1 . . uN +m . n1 n2 nL where and uk+N = uk + T . . un1 +···+nL−1 +1 . and we present the very useful “knot insertion” method. . . . and ui+N = ui + T . . . u1 . shows that the ﬁrst and the last knots u−m and uN +m+1 can be safely ignored. given a periodic sequence dk k∈Z of control points with period N. . . . there are indeed m + N + 1 control points associated with the original knot sequence. . . and it consists of 2(m + 1) + N knots. for all t ∈ [ui . u−1 and uN +2 . un1 . CLOSED (CYCLIC) B-SPLINE CURVES 229 where N = n1 + · · · + nL−1 . and dN = fN (uN +1 . Conversely.4. CYCLIC KNOT SEQUENCES. uN +m .2. un1 +1 . (2) It will be enough to consider a cycle of the knot sequence.4 applied to the distinct knots in the above cycle shows that the curve segments Fi are uniquely determined. and that the periodicity condition on curve segments. . for every k ∈ Z. Remark: Theorem 6. If a closed spline curve exists. Indeed.2. centered at the interval [ui . Also observe that there are m + N + 1 subsequences of m consecutive knots in the knot sequence u−m+1 . and since the cycle length N of the knot sequence agrees with the periodicity N of the sequence of control points. . . Assume that a spline satisfying conditions (1) exists. . . they do not contribute to any control points. .3 (1). . . . . Observe that d−m = f0 (u−m+1 . . . uN +m ). . uk+m ) is periodic of period N. namely. we can assume that u0 and uN +1 have multiplicity m. . . . the condition Fi+N (t + T ) = Fi (t). and since the ﬁrst and the last knot have multiplicity m + 1. uN +m . uN +1 . uN .2. . and look at some properties of spline curves. un1 +n2 . . this means that the sequences u−m . . and consider the sequence of 2m knots ui−m+1 . implies that the sequence of control points dk = fi (uk+1 .4 applied to the distinct knots in the knot sequence shows that the curve segments Fi are uniquely deﬁned and ﬁt well together for joining knots. the proof of theorem 6. ui+1 ].

given any parameter t ∈ A (where t ∈ [u0 . b1. . and with bk.3. in case of a ﬁnite spline). in this case [um .3. The computation proceeds by rounds. . we just have to ﬁnd the interval [uI . uI+k−1 . since the indexing will be a bit more convenient. . . . . ﬁnite.j−1. As in section 5. um+k+1 − uk+j where bk. Indeed. or cyclic). . bm−j.230 CHAPTER 6. starting from the m + 1 control points indexed by the sequences uI−m+k . given a knot sequence uk (inﬁnite. for 0 ≤ k ≤ m. and then to apply the progressive version of the de Casteljau algorithm.5 The de Boor Algorithm In section 5. uI+1 ] for which uI ≤ t < uI+1 .j = um+k+1 − t bk. .j . . . let us assume for simplicity that I = m. Such a computation can be conveniently represented in the following trian- .j = f (t uk+j+1 . For the general case. and a sequence dk of control points (corresponding to the nature of the knot sequence). we presented the progressive version of the de Casteljau algorithm. j for 1 ≤ j ≤ m. uN +1 ]. um+1 ] is the middle of the sequence u1 . . . .0 = f (uk+1 . . in order to compute the point F (t) on the spline curve F determined by uk and dk . t) is computed by iteration as the point b0. .j−1 + um+k+1 − uk+j t − uk+j bk+1. the points b0. u2m of length 2m. Recall that F (t) = f (t. .j . . where 1 ≤ k ≤ m + 1. Its relationship to spline curves is that.j are computed. B-SPLINE CURVES 6. . um+k ). 0 ≤ k ≤ m − j. um+k ) = dk . . and during round j. . .m determined by the inductive computation bk. . we translate all knots by I − m.

. .0 . .m−r . . indexed using our original indexing. In order to present the de Boor algorithm. . . bm−1.6. .j differently.j . 0 . . .0 b0. . . . the points b0. we only need to start with the m − r + 1 control points b0. it is convenient to index the points bk. . . m− r .m−r . THE DE BOOR ALGORITHM gular form: 1 b0. ..j−1 bk+1.j .m−r+1 = . 0 . b0. b1.j−1 bm−r−1.1 b1. . bm−j. we will label the starting control points as d1. . for every round j. it will be convenient to index the points in the j-th column with an index i starting at j + 1.j .m−r = b0.m−r b0. at round j.0 . . .. = b0. bm−j+1. .. . under our new indexing.1 . bm−r−j. .m . . .j . m 231 .0 . bk.1 bm−r. bk. Thus. Thus. .. .5. . um ) = F (t). in this case. . . we notice that b0. br.. dk+j+1. . .j . . dm+1. Rewriting the m−r . . = um . and always ending at m + 1.j . and t = because b0. bm−r−1. rather than indexing the points on the j-th column with an index k always starting from 0. . . . . and running up to m − j. . will correspond the to the points dj+1. .j .j . bk. . .j . .0 bm−1. First.0 .1 bm. bm−r−j+1. b0..m um−r+1 .j . . b0.j−1 b0.. j−1 j . bm−r.j . bm−j. and we only need to construct the part of the triangle above the ascending diagonal bm−r. . .m−r = f (t um−r+1 = .0 . dm+1. . . .j−1 . . . .j . . . and second. . . ..0 If t = um and the knot um has multiplicity r (1 ≤ r ≤ m). since um is of multiplicity r.j−1 . dj+2.

0 d2. . dm+1. dm.j = um+i−j − t di−1. The point F (t) on the spline curve is dm+1−r. .. um+i−j − ui−1 where 1 ≤ j ≤ m − r. Letting i = k + j + 1.j−1 + um+k+1 − uk+j t − uk+j dk+j+1. dk+j.m−r dm+1.m dm+1−r. when 0 ≤ k ≤ m − r.j .0 = di−1 . ..0 .1 dm+1. dm+1.j−1 .j−1 . um+k+1 − uk+j where 1 ≤ j ≤ m − r. 0 ≤ k ≤ m − r − j.j−1 + um+i−j − ui−1 t − ui−1 di.j dm+1.j−1.j in terms of dk+j+1. . Finally. dk+j+1. . dm+1−r. . B-SPLINE CURVES triangular array representing the computation with our new indexing.j = um+k+1 − t dk+j.j−1 .m−r . we get the following: 1 d1.j−1. the above equation becomes di. j−1 j . . m−r .. and we get the equation .0 . .232 CHAPTER 6. . dm+1−r. . and r = 0 otherwise. the inductive relation giving dk+j+1. . is given by the equation: dk+j+1.m−r .j dm+1−r. . which does not change diﬀerences of indices.. where r is the multiplicity of um when t = um . when 1 ≤ i ≤ m + 1 − r..j−1 dj+1. .0 . m .1 d2. dk+j+1. .j . . . . .j−1 As we can easily see. j + 1 ≤ i ≤ m + 1 − r. and with di.j−1 and dk+j. in order to deal with the general case where t ∈ [uI . we translate all the knot indices by I − m. dj. .. uI+1 [..0 = dk . .0 dm+1.1 dm+1−r. .. . and with dk+1.j−1.

6. uI+k ) associated with the sequences . where r is the multiplicity of the knot uI when t = uI .m−r . and r = 0 when uI < t < uI+1 (1 ≤ r ≤ m). and in the latter case.6. F (t) := dI+1−r.j−1 + um+i−j − ui−1 t − ui−1 di. .j = where 1 ≤ j ≤ m − r.j := um+i−j −t um+i−j −ui−1 di−1.j−1 endfor endfor. . This is the de Boor algorithm. and with di. If I is the largest knot index such that uI ≤ w < uI+1 . The point F (t) on the spline curve is dI+1−r. if t = uI then r := multiplicity(uI ) else r := 0 endif.j−1.j as dj . and write our di. when I − m + 1 ≤ i ≤ I + 1 − r. Knot insertion can be used either to construct new control points. . THE DE BOOR ALGORITHM AND KNOT INSERTION 233 di. and even e for computing a point on a spline curve. the eﬀect will be to increase the degree of multiplicity of w by 1. for j := 1 to m − r do for i := I − m + j + 1 to I + 1 − r do di. um+i−j − ui−1 begin I = max{k | uk ≤ t < uk+1 }.j−1 + t−ui−1 um+i−j −ui−1 di.0 = di−1 . for i := I − m + 1 to I + 1 − r do di. The knot w may be new or may coincide with some existing knot of multiplicity r < m. i The de Boor algorithm can be described as follows in “pseudo-code”: um+i−j − t di−1. B´zier control points associated with the curve segments forming a spline curve. inserting the knot w will aﬀect the m − 1 − r control points f (uI−m+k+1 . .0 := di−1 endfor.m−r end 6. Note that other books often use a superscript for the “round index” j.6 The de Boor Algorithm and Knot Insertion The process of knot insertion consists of inserting a knot w into a given knot sequence without altering the spline curve. I − m + j + 1 ≤ i ≤ I + 1 − r.

. . insertion of the knot 7 yields the knot sequence . . . 3. . . . 8. uI−m+2 . . . 9. and r = 0 if uI < w: . . v I−m+2 . 7. 6. vI+k ). . 6. 1. and f (789). . 15. vI . v I−r . . For example. given the knot sequence . . . . 8. . uI−r+1 . . 14. . . 11. . after insertion of the knot 7 in the knot sequence . After insertion of w. 3. . and the three polar values f (567). 5. as follows: begin I = max{k | uk ≤ w < uk+1 }. . . Thus. 11. 1. . . where 1 ≤ k ≤ m − r (w = vI+1 belongs to one of these subintervals). 6. . 8. . 11. . where v k = uk . 8. . Thus. . for all k ≤ I. . we need to compute the m − r new control points f (v I−m+k+1. . . uI+m−1−r .234 CHAPTER 6. . . . uI+1 ]. . if w = uI then r := multiplicity(uI ) else r := 0 endif. . 1. . . need to be computed. uI . . we get the new sequence (vk ). v I+1 . . 2. . 14. . . . . . . 15. . . . . and vk+1 = uk . . . and where r is the multiplicity of uI if w = uI (with 1 ≤ r < m). In fact. 5. . we can describe knot insertion in “pseudo-code”. 1. 5. for i := I − m + 1 to I + 1 − r do di. f (678). . . we have the knot sequence . where 1 ≤ k ≤ m − 1 − r. 3. uI+k containing the subinterval [uI . . . 2. v I+2 . . 9. . note that these points constitute the ﬁrst column obtained during the ﬁrst round of the de Boor algorithm. . . . 9. vI−r+1 . . .0 := di−1 endfor. . v I+1 . 9. . 5. . v I+1 = w. 2. for all k ≥ I + 1: . . 11. . 14. 14. . . . . . For example. . . . . 6. v I+k . . 15. 2. v I+m−r . . uI−r . uI+1 . B-SPLINE CURVES uI−m+k+1 . 7. . . . We can use the de Boor algorithm to compute the new m − r control points. . . . . . 15. which are just the polar values corresponding to the m − r subsequences of m − 1 consecutive subintervals vI−m+k+1 . . . v I+m . uI+m−1 . . for which the two polar values f (568) and f (689) no longer exist. 3. v I+1 .

Lyche. in the knot sequence . dI+1−r. 3. 15.0 + w−ui−1 um+i−1 −ui−1 di. bi+1 ). For a cubic B-spline curve speciﬁed by a closed polygon of de Boor control points. 11. Such an algorithm often coined “Olso algorithm”.6. . in the case of a quadratic B-spline curve speciﬁed by a closed polygon of de Boor control points. . + bi+2 .1 end Note that evaluation of a point F (t) on the spline curve amounts to repeated knot insertions: we perform m − r rounds of knot insertion. bi+1 . 6. The interpolation ratios associated with the points d1. It is also possible to formulate a version of knot insertion where a whole sequence of knots. for every edge (bi . to raise the original multiplicity r of the knot t to m (again. is inserted. one may consult Risler [68] or Barsky [4]). for any three consecutive control points bi . in the spirit of our treatment of single knot insertion. and Riesenfeld [20]. 9.1 . and bi+2 . 5. 1. THE DE BOOR ALGORITHM AND KNOT INSERTION for i := I − m + 2 to I + 1 − r do di.1 := um+i−1 −w um+i−1 −ui−1 235 di−1. . We leave the formulation of such an algorithm as an exercise to the reader (for help. Figure 6. consists in inserting the knot t = 7 three times.0 endfor return dI−m+2. . r = 0 if t is distinct from all existing knots). . . two new control points b′2i+1 and b′2i+2 are created according to the formulae b′2i+1 = 1 1 bi + bi+1 . 2. is described in Cohen. 4 4 and b′2i+2 = 1 3 bi + bi+1 . 9−5 4 2 7−6 1 = .1 .1 . . create two new control points according to the formulae b′2i+1 = 3 1 bi + bi+1 . . and d3. d2.6. 11 − 6 5 Evaluation of the point F (7) on the spline curve above. . 2 2 and b′2i+2 = 1 6 1 bi + bi+1 . 8. are 4 7−3 = . as opposed to a single knot. 8 8 8 . An amusing application of this algorithm is that it yields simple rules for inserting knots at every interval midpoint of a uniform cyclic knot sequence.23 illustrates the process of inserting the knot t = 7. more illuminating) presentation of this algorithm in terms of polar forms. For instance. . . 4 4 This is Chaikin’s subdivision method [18].1 . It is rather straightforward to give an equivalent (and in fact. 14. 8−3 5 7−5 2 1 = = .

insertion of the knot t = 7 .1 : 678 d5 : 689 Figure 6.3 : 777 d3. .2 : 778 d3. .23: Part of a cubic spline with knot sequence .236 CHAPTER 6. . 11. B-SPLINE CURVES d6 : 89 11 d2 : 235 d3 : 356 d7 : 9 11 14 d1 : 123 d8 : 11 14 15 d1. 5. . 8..1 : 789 d2.2 : 677 d3. 1. 3.1 : 567 d4 : 568 d2. 6. 2. . 14. 9. 15. .

7 Polar forms of B-Splines Our multiaﬃne approach to spline curves led us to the de Boor algorithm. POLAR FORMS OF B-SPLINES 237 Spline curves inherit a number of the properties of B´zier curves. Strong convex hull property. given a straight line of the form l(u) = au + b. This is a variation diminishing property. the resulting spline curve reproduces the straight line. where u0 and uN +1 are of multiplicity m + 1. this aﬀects m+1 curve segments. u1 . u2 . uN +1 . a spline curve passes through the ﬁrst and the last de Boor control points. for which the variation diminishing e property has been established. uN .7. and we learned that the current point F (t) on a spline curve F can be expressed as an aﬃne combination of its de Boor control points. In case of a ﬁnite knot sequence u0 . . .6. uN −1 . m where 0 ≤ i ≤ N + m. This property is inherited from the corresponding property of the B´zier e segments. uN +1 . uN −1 . Variation diminishing property. In the traditional theory of B´zier curves. . At that stage. Linear Precision. since it consists in aﬃne interpolation steps. . which we now brieﬂy e review. uN . The coeﬃcients of the de Boor points can be viewed as real functions of the real parameter t. An easy way to prove this property is to use knot insertion. Every point on the spline curve lies in the convex hull of no more than m + 1 nearby de Boor control points. u1 . . . where u0 and uN +1 are of multiplicity m + 1. Endpoint interpolation. if we read oﬀ control points on this line at the Greville abscissas. . given the N + m + 1 knots (known as Greville abscissas) 1 ξi = (ui + ui+1 + · · · + ui+m−1 ). The spline curve is not intersected by any straight line more often that is the control polygon. Aﬃne invariance. u2 . 6. Local control. Insert every knot until it has multiplicity m. . a B´zier curve e e is viewed as the result of blending together its B´zier control points using the Bernstein e . the control polygon consists of B´zier subpolygons. Given a ﬁnite knot sequence u0 . If one of de Boor control points is changed.

m+1 : A → A (or Nj. uj+m ). and it would perhaps make more sense to denote it as Bj.m+1. Remark: The word “curve” is sometimes omitted when referring to B-spline curves. . In the traditional theory. .k (t) f]uj . we will only consider an inﬁnite knot sequence uk k∈Z where every knot has multiplicity at most m + 1. For simplicity. . B-splines are piecewise polynomial functions that can be viewed as spline curves whose range is the aﬃne line A.m+1. thus showing the equivalence with the traditional approach. . we tried to be careful in keeping the word “curve” whenever necessary. or by a formula involving so-called divided diﬀerences. . Thus.m+1 is actually of degree ≤ m. . tm ) f]uj . Given an inﬁnite knot sequence uk k∈Z. . the normalized B-splines Bj.m.k (t) f]uj . . . Similarly.m+1. . Deﬁnition 6.7. . where every knot has multiplicity at most m+1. any B-spline curve) F : A → E over the knot sequence uk k∈Z (where E is an arbitrary aﬃne space).m+1. Thus. uj+m ). which may cause a slight confusion with the (normalized) B-splines Bj.k is the segment forming the spline curve Bj. we know that Fk (t) = j Bj. and deﬁned by the de Boor control points dk k∈Z . is the unique spline curve whose de Boor control points are the reals xi = δi. .m+1 which are piecewise polynomial functions.j = 1 iﬀ i = j. but the notation Bj. We deﬁne B-splines as follows. .k are indeed the weights used for blending the de Boor control points of a spline curve. for every k such that uk < uk+1 .m+1.k (t) dj = j Bj. . where δi. uk+1[.m+1 over [uk . where Bj. . such that δi. for every t ∈ [uk . .uj+m+1 [ (uj+1 .uk+m+1 [ (uk+1 . a spline curve can be viewed as the result of blending together its de Boor control points using certain piecewise polynomial functions called B-splines as the weights. and not curves in the traditional sense. .m+1 : A → A) of order m + 1.uj+m+1 [ (uj+1 .j .m+1. since the adaptations needed to handle a ﬁnite or a cyclic knot sequence are quite trivial. . If we polarize both sides of the equation Fk (t) = j Bj. uj+m). . We will now show brieﬂy how the multiaﬃne approach to spline curves leads to the recurrence relation deﬁning B-splines. we get fk (t1 .k (t1 . .j is the Kronecker delta symbol. Remark: The normalized B-spline Bj. the j-th normalized (univariate) B-spline Bj. uk+m ). where dk = f]uk .uj+m+1 [ (uj+1 . .1. uk+1 [. . to avoid ambiguities. . B-splines are usually not deﬁned in terms of the de Boor algorithm. but instead in terms of a recurrence relation. . and δi.j = 0 otherwise.m+1 is well established. tm ) = j bj. Given any spline curve (really. . Some authors use the notation Njm . B-SPLINE CURVES basis polynomials as the weights.238 CHAPTER 6.

. . if we let xi = δi. . . . uj+m ). The ﬁrst method proceeds from the top-down. . . .k (t1 . .k (t1 . . . . . . this lattice will have triangular notches cut out of the bottom of it. . .m+1. . tm ) is the sum of the products of the edge-weights along all descending m paths from xj to yk (there are such paths). . . . The nodes of the above lattice are labeled to reﬂect the computation of the polar value fk (t1 . k]. and bj.k is the polar form of Bj. .m+1. It is interesting to draw the same lattice in the case where the object space is the aﬃne line A.uj+m+1 [ (uj+1 . tm ). Thus.7. where each subsequent row is computed from the row above by taking aﬃne combinations controlled by one of the arguments ti . = tk+n . It is easily seen that the label assigned to every node is the sum of the products of the edge-weights along all descending paths from xj to that node. Fixing an index j.m+1. tm ). . at the ﬁxed multiset {t1 . k].k . . . as speciﬁed in the de Boor algorithm. and it is just the de Boor algorithm.m+1. . . . . if tk+1 = . . since Fk is inﬂuenced by the m + 1 de Boor control points dj only when j ∈ [k − m.m+1 . and the bottom row with the polar values yk . . except that we label the top row with the de Boor points xi (which are real numbers). . . tm ) from the de Boor control points f]uj . but this time. we obtain another interpretation for bj. . . for j outside [k − m. . m−j . . . If there are multiple knots. and the bottom row consists of the values yk = fk (t1 . forming a kind of lattice with m + 1 rows.k . tm ) (where uk < uk+1). uj+m). tm } and we compute fk (t1 . .m+1. then the bottom row node yk gives the value bj. but there are no triangles for fk+1 through fk+n−1 . . . and this is what generates a triangular hole of height n at the bottom of the lattice. . we have computed the inﬂuence of the chosen j-th de Boor control point on all segments fk of the spline.k (t1 .j for the top nodes. POLAR FORMS OF B-SPLINES 239 where bj. . We discover that the triangles used in the computation of the polar values fk (t1 .uj+m+1 [ (uj+1 .m+1. . . omitting the node labels. Our goal is to ﬁnd a recurrence formula for bj. Intuitively. Recall that the above sum only contains at most m + 1 nonzero factors.m+1. . . The de Boor algorithm provides a method for computing the polar value fk (t1 . .k (t1 . whose heights correspond to knot multiplicity. tm ). tm ) associated with the normalized B-spline Bj. We now show how this second lattice can be used to compute the polar value bj. where we let k vary. . the polynomial Bj. then we have a computation triangle for fk and for fk+n .6. If we label the intermediate nodes as we do this top-down computation. Figure 6. More speciﬁcally. . Recall that the computation can be arranged into a triangle. .k is null.m+1. . An interesting phenomenon occurs if we ﬁx the multiset {t1 . tm ). .24 shows a portion of this lattice in the case of a cubic spline. . . tm }. tm ) overlap in large parts. The top row consists of the de Boor control points dj = f]uj .

t2 . t2 . t3 ) Figure 6. B-SPLINE CURVES f]u0 . u3 .u6 [ (t1 .u5 [ (t1 .u7 [ (u4 . u3 ) f]u2 .u6 [ (u3 . u2 ) u4 − t2 u4 − u2 t2 − u2 u4 − u2 u5 − t2 u5 − u3 t2 − u3 u5 − u3 u6 − t2 u6 − u4 f]u4 . u5 ) t2 − u1 u3 − u1 f]u1 .u6 [ (t1 . u2 . u3 .u4 [ (u1 .u5 [ (u2 . u4 ) u3 − t3 u3 − u2 t3 − u2 u3 − u2 u4 − t3 u4 − u3 t3 − u3 u4 − u3 u5 − t3 u5 − u4 t3 − u4 u5 − u4 f]u2 . u4 ) f]u2 . t2 .u5 [ (t1 . u3 ) f]u3 .u5 [ (t1 .u4 [ (t1 . u6 ) u4 − t1 u4 − u1 t1 − u1 u4 − u1 u5 − t1 u5 − u2 t1 − u2 u5 − u2 u6 − t1 u6 − u3 t1 − u3 u6 − u3 f]u1 .u3 [ (t1 . u4 . t2 . t2 . u5 ) f]u2 . u2 . u3 ) f]u1 .240 CHAPTER 6. t3 ) f]u4 .24: Computation scheme of the de Boor algorithm when m = 3 .u4 [ (t1 . t2 . u5 . u4 .u3 [ (t1 . t3 ) f]u3 . t2 .u4 [ (t1 . u5 ) f]u3 . u4 ) f]u3 .

6. POLAR FORMS OF B-SPLINES 241 x0 x1 x2 x3 u4 − t1 u4 − u1 t1 − u1 u4 − u1 u5 − t1 u5 − u2 t1 − u2 u5 − u2 u6 − t1 u6 − u3 t1 − u3 u6 − u3 t2 − u1 u3 − u1 u4 − t2 u4 − u2 t2 − u2 u4 − u2 u5 − t2 u5 − u3 t2 − u3 u5 − u3 u6 − t2 u6 − u4 u3 − t3 u3 − u2 y2 t3 − u2 u3 − u2 u4 − t3 u4 − u3 y3 t3 − u3 u4 − u3 u5 − t3 u5 − u4 y4 t3 − u4 u5 − u4 Figure 6.25: The computation lattice underlying the de Boor algorithm when m = 3 .7.

t − uj uj+m+1 − t Bj.m+1. tm−1 ). tm ): We have bj.k (t1 .m+1.1 (t) = It is easily shown that Bj. Remark: In the case of a ﬁnite spline based on a ﬁnite knot sequence uk −m≤k≤N +m+1 . due to Mansﬁeld. B-SPLINE CURVES The symmetry of this second approach suggests a bottom-up computation. .k for the bottom nodes.k (ti+1 . Intuitively. and Cox: 1 if t ∈ [uj . The bottom-up approach yields a recurrence relation for computing bj.m+1.k (t1 . the above recurrence equations show the necessity for the knots u−m and uN +m+1 .k (t1 . . .k )k−m≤j≤k forms a basis of the vector space m m A . taking linear combinations as speciﬁed by the edge-weights. .m+1. .m+1.m+1 is null outside [uj .k () = δj. .m+1. . If we consider the tensored version b⊙ j. As a consequence. .m+1. the sequence of tensors (b⊙ j. but under the symmetric path interpretation.1. .j . . de Boor.k of bj. . . . it is easy to see that the label of the top row node xj is the polar value bj.m+1.k of the homogenized version bj. This justiﬁes the introduction of end knots u0 and uN +1 of multiplicity m + 1. tm−1 ) + uj+m − uj uj+m+1 − tm bj+1. the polynomials (Bj. uj+m+1 [.m+1 . Bj. Thus. the above equations show that the sequence of symmetric tensors (b⊙ j.m+1.m. the dual space of ∗ A.m. A nice property about this recurrence relation is that it is not necessary to know the degre m ahead of time if we want to compute the B-spline Bj.m+1 (t) = uj+m − uj uj+m+1 − uj+1 Bj. and we let yi = δi. uj+1 [ 0 otherwise. . tm ) = bj. . uj+m+1 − uj+1 If we set all ti to t.m (t). tm − uj bj.k )k−m≤j≤k is the dual basis of the basis of symmetric tensors (uj+1 · · · uj+m )k−m≤j≤k .k (t1 .k . and drop the subscript k. This time. tm ). . . .m+1. . . . the bottom-up approach chooses a spline segment fk and computes how this segment is inﬂuenced by all de Boor control points. Note that the combinations involved are no longer aﬃne (as in the top-down approach). We then assign labels to the nodes in a bottom-up fashion. ti+m ) = δi. . we choose a ﬁxed k with uk < uk+1 . we get the standard recurrence relation deﬁning B-splines. .m (t) + Bj+1. . . One will observe that bj.k (t1 .k )k−m≤j≤k are linearly independent.242 CHAPTER 6.k .

the reader is referred to de Boor [22]. 2. 0. 4 It is then an easy matter to compute the de Boor control points of the quartic spline curve G.7. 4 . 0. 1. in terms of the polar form f of the original cubic spline curve F . 2. 1. t2 . 1). We would like to view this spline curve F as a spline curve G of degree 4. we need to ﬁnd the polar form g of this spline curve G of degree 4. 0. 0. 1) f (0. 1) = 2f (0. or in various other ways. t2 . t4 ) = g(0. t3 . 2. For example. 2.6. 1. we must increase the degree of multiplicity of each knot by 1. We conclude this section by showing how the multiaﬃne approach to B-spline curves yields a quick solution to the “degree-raising” problem. t3 . t3 . 0. 0. 1) f (1. 2) 243 f (0. 1) = f (0. 2. For this. 0. Figure 6. 1. we consider an example. so that the quartic spline curve G is based on the knot sequence 0. t2 . 1. 0. 2) Figure 6. 2. 2) f (1. 0. or Piegl and Tiller [62]. t4 ) + f (t1 . Then. 0. Farin [32]. 1. 1.26 shows a cubic spline curve F based on the knot sequence 0. 0) f (2. it is immediate that the answer is f (t1 . 0. 0. t3 ) + f (t1 . 2. t4 ) + f (t2 . 2) f (1. 2 It is also possible to deﬁne B-splines using divided diﬀerences. Hoschek and Lasser [45]. POLAR FORMS OF B-SPLINES f (0. we have g(t1 . 1) + 2f (0.26: A cubic spline F with knot sequence 0. Risler [68]. 0. First. 1. 2. 0. For more on B-splines. in order for the spline curve to retain the same order of continuity. 2. 2. t4 ) . 1) f (0. 2. 2. 1. 2. First. 0.5. 2. 1.

1. 2.244 g(0. 0) g(2. B-SPLINE CURVES g(0. In the general case. 1. 1. . 4 The point g(0. This is a general phenomenon. 1. tm+1 ) = m+1 i=m+1 fk (t1 . It can be shown that as the degree is raised. 1) g(1. 0. . 2. . . 2) g(0. 2. is related to the polar form fk of the original spline curve F of degree m by the identity 1 gk (t1 . Then. 1. 1. 1). g(0. 2) and f (1. . since if the left-hand side is well deﬁned. where each knot is of multiplicity at most m + 1. 1. it is ﬁrst necessary to form a new knot sequence vk k∈Z . 2) Figure 6. 2) g(0. 2. in bold lines. We observe that the above expression is indeed well deﬁned. ti . . 0. . i=1 where the hat over the argument ti indicates that this argument is omitted. 1. 2) is easily seen to be the middle of the line segment between f (0.27 shows the de Boor control points of the quartic spline curve G and its associated control polygon. 2) g(1. Figure 6. the polar form gk of the spline curve segment G of degree m + 1 over the interval [uv . 2. 2) = We note that the control polygon of G is “closer” to the curve. the control polygon converges to the spline curve. 1. 1. . vk+1 ]. where vk < vk+1 .1.27: Degree raising of a cubic spline as a quartic G and 2f (0. which consists of the knots in the sequence uk k∈Z . . given a knot sequence sequence uk k∈Z. . 1. with the multiplicity of each knot incremented by 1. since the multiplicity of every knot goes down by 1. . 1. 1. 0. 1) CHAPTER 6. 1) + 2f (0. 1. as in section 5. 2) . tm+1 ). 0. 0. . 2) + f (1. then the right-hand side is also well deﬁned. given a spline curve F of degree m based on this knot sequence. . 1) g(1. 1.

the above problem has two degrees of freedom.8. . . we are looking for N + 1 de Boor control points d0 . u0 . . i=1 where [v l . . we only come up with N − 1 equations expressing x1 . . dN . vl+m+1 ) = 1 m+1 i=m+1 f]uk . We note that we are looking for a total of N + 3 de Boor control points d−1 . . we can try to ﬁnd the de Boor control points of a C 2 cubic spline curve F based on the ﬁnite knot sequence u0 . since Lagrange interpolants tend to oscillate in an undesirable manner. . and a sequence of N +1 knots u0 . It is well known that Lagrange interpolation is not very satisfactory when N is greater than 5. such that F (ui ) = xi . Thus. Unlike the problem of approximating a shape by a smooth curve. and the last control point dN +1 coincides with xN . . . Thus. . . interpolation problems require ﬁnding curves passing through some given data points and possibly satisfying some extra constraints. e 6. uN . uN . Thus.28 shows N + 1 = 7 + 1 = 8 data points. . Cubic spline curves happen to do very well for a large class of interpolation problems. . v l+m+2 ] = [uk . The control points d0 and d7 = dN were chosen arbitrarily. . uN . u2 . . . . . . ﬁnd a C 2 cubic spline curve F . with ui < ui+1 for all i. . . For example.8 Cubic Spline Interpolation We now consider the problem of interpolation by smooth curves. as in the case of B´zier curves. xN −1 in terms of the N + 1 unknown variables d0 . . . . which amounts to the assumption that the de Boor control points d0 and dN are known. uN . and we consider one of the most common problems which can be stated as follows: Problem 1: Given N +1 data points x0 . we can add various “end conditions”. uk+m+1 ]. . . To remove these degrees of freedom.vk+m+1 [ (vl+1 . . . Figure 6. . for all i. . and where the hat over the argument v l+i indicates that this argument is omitted. 0 ≤ i ≤ N − 1. . However. . the de Boor control points of the spline curve G of degree m + 1 are given by the formula g]vl . 0 ≤ i ≤ N. v l+m+1 ).vl+m+2 [ (v l+1 . u0 . . v l+i . . and a C 2 cubic spline curve F passing through these points. using the de Boor evaluation algorithm. and it is under-determined. In order to solve the above problem. for a uniform knot sequence. we turn to spline curves. it is not possible to obtain a more explicit formula.6. There are a number of interpolation problems. . uN −2 . we can . dN +1 . since the ﬁrst control point d−1 coincides with x0 . . Actually. CUBIC SPLINE INTERPOLATION 245 as we move from F to G. u1 . . xN . . In general. . . uN −1 . dN .

. x3 . uN −1 uN uN . we have di−1. with 1 ≤ i ≤ N − 1. dN −1 . x6 . ui+2 − ui−1 ui+2 − ui−1 ui − ui−1 ui+1 − ui di−1. correspond respectively to u0 u0 u0 .1 = ui − ui−2 ui+1 − ui di−1 + di . we use the de Boor evaluation algorithm.1 . the de Boor control point di corresponds to the polar label ui−1 ui ui+1 . with 1 ≤ i ≤ N −1. for all i.1 + di. and d−1 . Note that for all i. x4 . We now have a system of N − 1 linear equations in the N − 1 variables d1 .1 = di + di+1 .246 d2 d1 x1 x3 d0 d3 x2 CHAPTER 6. u0 u0 u1 . For every i. xi = ui+1 − ui−1 ui+1 − ui−1 . . dN and dN +1 .28: A C 2 cubic interpolation spline curve passing through the points x0 . x1 . 1 ≤ i ≤ N − 1. xi can be computed from di−1 . B-SPLINE CURVES d7 d6 x6 x4 d4 x5 d5 x0 = d−1 x7 = d8 Figure 6. x5 . d0 . x2 . xi corresponds to the polar label ui ui ui . . and uN uN uN . In order to derive this system of linear equations. di+1 using the following diagram representing the de Boor algorithm: Thus. di . . x7 specify that the tangent vectors at x0 and xN be equal to some desired value. ui+1 − ui−2 ui+1 − ui−2 ui+2 − ui ui − ui−1 di.

ui+1 − ui−1 ui+1 − ui−1 ui+1 − ui−1 xi = with (ui+1 − ui )2 .6. βi = ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 . it is easily veriﬁed that we get α1 β1 γ1 d0 + d1 + d2 . = uN − uN −2 uN − uN −2 uN − uN −2 x1 = xN −1 .29: Computation of xi from di−1 .1 : ui ui ui+1 di−1 : ui−2 ui−1 ui di+1 : ui ui+1 ui+2 Figure 6.8.1 : ui−1 ui ui xi : ui ui ui di. di+1 From the above formulae. CUBIC SPLINE INTERPOLATION di : ui−1 ui ui+1 247 di−1. di . γi = ui+2 − ui−1 αi = At the end points. u2 − u0 u2 − u0 u2 − u0 βN −1 γN −1 αN −1 dN −2 + dN −1 + dN . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) + . we get αi βi γi di−1 + di + di+1 .

and r0 and rN be arbitrary points. . . it is an easy exercise to show that the linear system can be written as for all i. and it is clear that αi . βi . . which means that the matrix is diagonally dominant. this is the case for a uniform knot sequence. There are methods for solving diagonally dominant systems of linear equations very eﬃciently. B-SPLINE CURVES (u2 − u1 )2 . u3 − u0 (uN − uN −1 )2 . It is also easy to show that αi + γi + βi = ui+1 − ui−1 for all i. = . uN − uN −2 ri = (ui+1 − ui−1 ) xi . 1 ≤ i ≤ N − 1. . . u2 − u0 (u2 − u1 )(u1 − u0 ) (u1 − u0 )(u3 − u1 ) + . for example. for all i. . . uN − uN −3 (uN − uN −1 )(uN −1 − uN −3 ) (uN −1 − uN −2 )(uN − uN −1 ) + . 1 ≤ i ≤ N − 1..248 where α1 = β1 = γ1 = αN −1 = βN −1 = γN −1 = Letting CHAPTER 6. then it can be shown that the matrix is invertible. u2 − u0 u3 − u0 (u1 − u0 )2 . using an LU-decomposition. uN − uN −3 uN − uN −2 (uN −1 − uN −2)2 . 1 ≤ i ≤ N − 1. . dN −2 rN −2 0 αN −2 βN −2 γN −2 αN −1 βN −1 γN −1 dN −1 rN −1 rN 1 dN . we obtain the following (N + 1) × (N + 1) system of linear equations in the unknowns d0 . In the case of a uniform knot sequence. . dN : 1 r0 d0 α1 β1 γ1 d 1 r1 d 2 r2 α2 β2 γ2 0 . The matrix of the system of linear equations is tridiagonal. In particular. . Such conditions should not come as a surprise. since the di and the xi are points. γi ≥ 0. If αi + γi < βi .

since the condition x0 = xN implies that d0 = dN . .. The following system of linear equations is easily obtained: r0 d0 β0 γ0 α0 d 1 r1 α1 β1 γ1 d 2 r2 α2 β2 γ2 0 . when ui < ui+1 for all i. For example. for all i. where . xN −1 . N. . see Farin [32]. 0 ≤ i ≤ N − 1. so that we can write a system of N linear equations in the N unknowns d0 . . r0 6x1 6x2 . . . . 0 ≤ i ≤ N − 1. = . .. . uN . such that F (ui ) = xi . . . . . .8. this can be shown by expressing each spline segment in terms of the Hermite polynomials. . with ui < ui+1 for all i. . We can also solve the problem of ﬁnding a closed interpolating spline curve. . . dN −1 . . . . for all k ∈ Z. and a sequence of N +1 knots u0 . ﬁnd a C 2 closed cubic spline curve F . . . . . and such that uk+N = uk + uN − u0 . which means that we consider the inﬁnite cyclic knot sequence uk k∈Z which agrees with u0 . 0 1 4 1 1 7 2 1 = dN −2 6xN −2 3 dN −1 6xN −1 2 rN 1 dN d0 d1 d2 . . and we observe that we are now looking for N de Boor control points d0 . Writing the C 2 conditions leads to a tridiagonal system which is diagonally dominant when the knot sequence is strictly increasing. . uN for i = 0. It can also be shown that the general system of linear equations has a unique solution when the knot sequence is strictly increasing. we consider the cyclic knot sequence determined by the N +1 knots u0 . formulated as follows. dN −3 rN −3 0 αN −3 βN −3 γN −3 αN −2 βN −2 γN −2 dN −2 rN −2 rN −1 dN −1 γN −1 αN −1 βN −1 ri = (ui+1 − ui−1 ) xi . 0 ≤ i ≤ N. . . CUBIC SPLINE INTERPOLATION 249 3 7 1 2 2 1 4 1 0 . This time. . . . . . that is. For details. dN −1 . .6. . . uN . . where we let xN = x0 . . . Problem 2: Given N data points x0 .

250 CHAPTER 6. if we let ∆i = ui+1 −ui . uN − uN −2 + u1 − u0 The system is no longer tridiagonal. we also get α0 = β0 = γ0 = α1 = β1 = γ1 = αN −1 = βN −1 = γN −1 = (u1 − u0 )2 . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) βi = + . but it can still be solved eﬃciently. ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 γi = . and for all i. βi . uN − uN −1 + u2 − u0 u3 − u0 (u1 − u0 )2 . u3 − u0 (uN − uN −1 )2 . since the knot sequence is cyclic. uN − uN −1 + u2 − u0 (u2 − u1 )(uN − uN −1 + u1 − u0 ) (u1 − u0 )(u3 − u1 ) + . B-SPLINE CURVES for all i. The coeﬃcients αi . r0 = (uN − uN −1 + u1 − u0 ) x0 . ui+2 − ui−1 Since the knot sequence is cyclic. uN − uN −2 + u1 − u0 (u1 − u0 )(uN − uN −2 ) (uN − uN −1 )(u2 − u0 ) + . uN − uN −1 + u2 − u0 (u2 − u1 )2 . 2 ≤ i ≤ N − 2. we have αi = (ui+1 − ui )2 . uN − uN −2 + u1 − u0 uN − uN −1 + u2 − u0 (uN − uN −1 )2 . uN − uN −3 (uN − uN −1 )(uN −1 − uN −3 ) (uN −1 − uN −2)(uN − uN −1 + u1 − u0 ) + . It is immediately veriﬁed . uN − uN −3 uN − uN −2 + u1 − u0 (uN −1 − uN −2 )2 . γi can be written in a uniform fashion for both the open and the closed interpolating C 2 cubic spline curves. 1 ≤ i ≤ N − 1.

Since the tangent vector at x0 is given by DF (u0) = we get r0 = d0 = x0 + and similarly rN = dN = xN − 3 (d0 − x0 ). (a) The ﬁrst method consists in specifying the tangent vectors m0 and mN at x0 and xN . 3 uN − uN −1 mN . ∆i−2 + ∆i−1 + ∆i ∆i−1 + ∆i + ∆i+1 ∆2 i−1 . (d) Finally. several end conditions have been proposed to determine r0 = d0 and rN = dN . and we quickly review these conditions. In the case of an open C 2 cubic spline interpolant. In this method. x2 . the method consists in picking the tangent vector to this parabola at x0 . This amounts to requiring that D3 F is continuous at u1 and at uN −1 . ∆−1 = ∆N = 0.6. which forces the ﬁrst two cubic segments to merge into a single cubic segment and similarly for the last two cubic segments. we have the not-a-knot condition. x1 . . u1 − u0 u1 − u0 m0 . γi = ∆i−1 + ∆i + ∆i+1 251 where in the case of an open spline curve.8. 3 One speciﬁc method is the Bessel end condition. usually called the clamped condition method. ∆−2 = ∆N −2 . (c) Another method is the natural end condition. If we consider the parabola interpolating the ﬁrst three data points x0 . and in the case of a closed spline curve. xN −1 . we require that D2 F (u0 ) = D2 F (u1 ) and D2 F (uN −1 ) = D2 F (uN ). ∆i−2 + ∆i−1 + ∆i ∆i (∆i−2 + ∆i−1 ) ∆i−1 (∆i + ∆i+1 ) βi = + . we require that − → D2F (u0 ) = D2 F (uN ) = 0 . xN . (b) Another method is the quadratic end condition. ∆−1 = ∆N −1 . CUBIC SPLINE INTERPOLATION that we have αi = ∆2 i . A similar selection is made using the parabola interpolating the last three points xN −2 . In this method.

1. 5). d2 = (9. . 1. ui+2 − ui+1 xi+2 − xi+1 There are other methods. this method may produce bad results when the data points are heavily clustered in some areas. 6. in particular due to Foley. labeled 666. 1. Although simple. 6. labeled 566. . This method usually works quite well. d3 = (11. 0). The simplest method consists in choosing a uniform knot sequence. uN is not given. the reader is referred to Farin [32]. . 6. d1 = (9. 2). . it is necessary to ﬁnd knot sequences that produce reasonable results. labeled 111. 5. d−1 = (4. d0 = (6. d−2 = (0. Thus. 9). We now brieﬂy survey methods for producing knot sequences. labeled 456. ui+2 − ui+1 xi+2 − xi+1 where xi+1 − xi is the length of the chord between xi and xi+1 . 6. labeled 112. the knot sequence u0 . 9). 0). In practice. . and with the de Boor control points: d−3 = (2. labeled 345. derived from physical heuristics. 2. after choosing u0 and uN . B-SPLINE CURVES We leave the precise formulation of these conditions as an exercise. or Hoschek and Lasser [45]. we determine the other knots in such a way that ui+1 − ui xi+1 − xi = . when attempting to solve an interpolation problem. Another popular method is to use a chord length knot sequence. For details. In this method. and refer the interested reader to Farin [32]. 9). Consider the following cubic spline F with ﬁnite knot sequence 1. 6. Another method is the so-called centripedal method. where we set 1/2 xi+1 − xi ui+1 − ui = . labeled 234. 0). d4 = (14. labeled 123. 4.9 Problems Problem 1 (30 pts).252 CHAPTER 6. 3.

Determine the tangent at F (5/4). 3).6. and whose knot sequence is uniform and consists of simple knots. Consider the following quadratic spline F with ﬁnite knot sequence 0. (iii) Which knot should be inserted to that (−3/4. d4 = (3. 3. 2. Repeat the problem for a uniform knot sequence in which all knots have multiplicity 2. and plot the B´zier e e segments forming the spline as well as possible (you may use programs you have written for previous assignments). 5. 4. and 33. and with the de Boor control points: d−2 = (−6. and plot the e B´zier segments forming the spline as well as possible (you may use programs you have e written for previous assignments). Show that if a B-spline curve consisting of quadratic curve segments (m = 2) has an inﬂexion point. 5. 5). Implement the de Boor algorithm for ﬁnite and closed splines. d0 = (−3. Find the B´zier control points of a closed spline of degree 4 whose e control polygon consists of the edges of a square.9. 444. 333.5 three times. d−1 = (−5. (ii) Compute F (5/4) by repeated knot insertion. labeled 34. (i) Compute the B´zier points corresponding to 11. 5. 2). PROBLEMS 253 (i) Compute the B´zier points corresponding to 222. labeled 01. 4. 0). Implement the knot insertion algorithm. 0. then this point is associated with a knot. labeled 00.5. labeled 44. . 1). 3). d2 = (0. 3/2) becomes a control point? Problem 4 (30 pts). d1 = (−1. Problem 5 (50 pts). d5 = (1. 2). labeled 55. Design a subdivision version of the de Boor algorithm Problem 6 (30 pts). labeled 45. Problem 2 (10 pts). 1. 22. Contruct (geometrically) the tangent at t = 3. Give a geometric construction of the point F (3. 0. d3 = (3. −1). labeled 23. Problem 3 (30 pts). (ii) Insert the knot 3. labeled 12.5) on the spline curve. and 555.

show that the ﬁnite B-spline F deﬁned by the above knot sequence and de Boor control points can be expressed as N F (t) = j=−m dj Bj.m+1 (t) being deﬁned as in problem 7. un1 un1 +n2 . (i) Given a ﬁnite knot sequence u−m . (iii) Show that N Bj.m (t). . .m+1 (t).m (t) + Bj+1. u0 m+1 u1 . . uj+1 [ 0 otherwise. . prove Marsden’s formula: N (x − t) = m i=−m (x − ti+1 ) · · · (x − ti+m )Bi. .m+1 .1 (t) = (ii) Show that Bj.m+1 (t). prove that ′ Bj. uj+m+1 [.. uj+m − uj uj+m+1 − uj+1 .. . uN uN +m+1 n1 n2 . nL−1 m+1 and a sequence of de Boor control points dj −m≤j≤N . Problem 8 (20 pts). .m+1 (t) = uj+m − uj uj+m+1 − uj+1 Bj. . nder the assumptions of Problem 7. .m+1(t) = 1 j=−m for all t.4 associated with problem 1. (iv) Compute the functions Bj. uN −nL−1 +1 .m (t) − Bj+1. Bj. . .m+1 (t) = m m Bj. where the B-splines Bj. Problem 9 (10 pts). t − uj uj+m+1 − t Bj. . . uN +1 . . . .m+1 is null outside [uj . The B-spline basis functions Bj.7 how a B-spline of degree m can be deﬁned in terms of the normalized B-splines Bj.. .m+1 are deﬁned inductively as follows: 1 if t ∈ [uj . B-SPLINE CURVES Problem 7 (40 pts). . It is shown in section 6. un1 +1 .m (t). . . . ..254 CHAPTER 6.

β. G as above. and any piecewise linear function h. . 4. Prove that the above B-spline function F is the only C 2 -function among all C 2 -functions ϕ over [t0 . Problem 12 (20 pts). F ′ (t0 ) = α. . Given any two spline functions F. . . . 0. Hint. 0. given any two real numbers α. tm .4 is given by: 1 3 6t 1 (−3t3 + 12t2 − 12t + 4) B0. . Given any uniform sequence t0 . show that t m t0 [F ′′ (t) − G′′ (t)]h(t)dt = 0. . . 0. Given the knot sequence 0. F ′ (tm ) = β. 4. . . . t1 . (i) Prove that αi + γi + βi = ui+1 − ui−1 . m m such that F (ti ) = yi . 4. Problem 11 (40 pts). 3. . . 4. where ti+1 = ti + h for some h > 0 (0 ≤ i ≤ m − 1). F ′ (t0 ) = α.4 (t) = 6 3 1 6 (3t − 24t2 + 60t − 44) 1 (−t3 + 12t2 − 48t + 64) 6 255 for for for for 0≤t<1 1≤t<2 2≤t<3 3 ≤ t < 4. show that the spline basis function B0. . . tm−1 . . ym of real numbers. . prove that there exists a unique cubic B-spline function F based on the knot sequence t0 . .9. tm . tm of real numbers. given any sequence y0 . 2. 1. that minimizes the integral tm t0 [ϕ′′ (t)]2 dt. PROBLEMS Problem 10 (20 pts).6. t0 . . F ′ (tm ) = β. tm ] such that F (ti ) = yi . .

where αi . . xn ) and (y1 . then the sum of the elements of every row of A−1 is also 1. the sum of the elements of every row is 1. Study the interpolation problem when the end conditions are to prescribe the ﬁrst and the second derivative at x0 .8 (Problem 1 and Problem 2). Compute the de Boor points d0 and dN arising in the interpolation problem (Problem 1) in the following cases: (a) Bessel end condition. (ii) Let (x1 . Prove that the matrix below is invertible. (i) Show that interpolating cubic B-splines reproduce straight lines. (ii) Prove a similar result for quadratic and cubic polynomial curves. Show that n ai j = 1 j=1 for every i. .. . .256 CHAPTER 6. Problem 16 (30 pts). say n yi = j=1 ai j xj . i. βi are deﬁned in section 6. γi . . . . B-SPLINE CURVES for all i. 1 ≤ i ≤ N − 1.e. and assume that each point yi is an aﬃne combination of the points xj . Let A = (ai j ) be the n × n matrix expressing the yi in terms of the xj .. provided that the end conditions are clamped. 1 ≤ i ≤ n. Prove that if A is invertible. 0 1 4 1 7 1 2 3 2 1 Problem 14 (40 pts). Problem 13 (20 pts). (b) Quadratic end condition (c) Natural end condition (d) Not-a-knot condition. yn ) be two sequences of n points (say in A3 ). . and that the tangents are read oﬀ the straight line. 1 3 7 1 2 2 1 4 1 0 . . Problem 15 (20 pts). .

2 2 and b′2i+2 = 1 6 1 bi + bi+1 . Implementent the interpolation method proposed for solving Problem 1. and bi+2 . 4 4 (2) For a cubic B-spline curve speciﬁed by a closed polygon of de Boor control points. prove that knot insertion at midpoints of intervals yields new control points deﬁned such that. for any three consecutive control points bi . Problem 18 (40 pts). Implementent the interpolation method proposed for solving Problem 2. prove that knot insertion at midpoints of intervals yields new control points deﬁned such that for every edge (bi . ﬁnd (or look up) a linear-time method for solving a tridiagonal linear system. PROBLEMS 257 Problem 17 (40 pts). + bi+2 .6.9. b′2i+1 = 1 1 bi + bi+1 . bi+1 ). b′2i+1 = 3 1 bi + bi+1 . bi+1 . 4 4 and b′2i+2 = 1 3 bi + bi+1 . 8 8 8 . Problem 19 (20 pts). ﬁnd (or look up) a linear-time method for solving a tridiagonal linear system. In solving this problem. In solving this problem. (1) For a quadratic B-spline curve speciﬁed by a closed polygon of de Boor control points.

B-SPLINE CURVES .258 CHAPTER 6.

Part III Polynomial Surfaces and Spline Surfaces -5 x 0 5 5 2.5 -5 -5 0 y 5 259 .5 z 0 -2.

260 .

The de Casteljau algorithm splits into two versions. − )) be an aﬃne frame for E. typically. i2 )) for P is chosen. In the case of rectangular nets. things are more tricky.1 Polarizing Polynomial Surfaces In this chapter.Chapter 7 Polynomial Surfaces 7. Let E be some aﬃne space of ﬁnite dimension 0 1 → → n ≥ 3. Because the polynomials involved contain two variables. We show how these versions of the de Casteljau algorithm can be turned into subdivision methods. it is easy to use the algorithms developed for polynomial curves. To reduce the amount of superscripts. the canonical aﬃne frame − → − → 1 0 where O = (0. After a quick review of the traditional parametric deﬁnition in terms of polynomials. . However. . and let (Ω1 . ( i1 . we investigate the possibility of deﬁning polynomial surfaces in terms of polar forms. . and we give an eﬃcient method for performing subdivision. . we take up the study of polynomial surfaces. in the case of triangular nets. there are two natural ways to polarize a polynomial surface. and total degree surfaces are completely determined by triangular nets of control points. (−1 . and the other one for triangular nets. Intuitively. The ﬁrst approach yields bipolynomial surfaces (also called tensor product surfaces). we will also denote the aﬃne plane as P. 0). We assume that − − → → some ﬁxed aﬃne frame (O. This is one of the many indications that dealing with surfaces is far more complex than dealing with curves. We begin with the traditional deﬁnition of polynomial surfaces. and the second approach yields total degree surfaces. and i2 = . We also show how to compute a new control net with respect to a new rectangle (or new triangle) from a given net. As we shall see. e en 261 . Bipolynomial surfaces are completely determined by rectangular nets of control points. Recall that the aﬃne line is denoted as A. and that the aﬃne plane is denoted as A2 . one for rectangular nets. this depends on whether we decide to tile the parameter plane with rectangles or with triangles. there are two natural ways to polarize a polynomial surface. i1 = .

Given a polynomial surface F : P → E. q. The above is also a bipolynomial surface of degree 2. the following polynomials deﬁne a polynomial surface of total degree 2 in A3 : F1 (U. v)−1 + · · · + Fn (u. If the maximum degree of U in all the Fi (U. This way. and the maximum degree of V in all the Fi (U. a polynomial surface is obtained by bending and twisting the real aﬃne plane A2 using a polynomial map. we say that F is a bipolynomial surface of degree p. The trace of the surface F is the set F (P). V ) = V − 3 F3 (U.262 CHAPTER 7. Fn (U. v). is to treat the variables u and v separately. Enneper’s surface is a surface of total degree 3. if p and q are such that F is a bipolynomial surface of degree p. we say that F is a polynomial surface of total degree m. q . and a bipolynomial surface of degree 3. V ) = U − V + 1 F3 (U.1. V ) = U 2 − V 2 . q . such that. 3 . v ∈ R. Intuitively. − − → → The aﬃne frame (O. V ) = U − As deﬁned above. we denote − → − → F (O + u i1 + v i2 ) as F (u. . . . Given natural numbers p. . there are two natural ways to polarize. 2 . ( i1 . v)− . POLYNOMIAL SURFACES Deﬁnition 7. V ). which is symmetric separately in its ﬁrst p arguments and in its last q arguments. For example. and polarize separately in u and v. V ) has total degree ≤ m. i2 )) for P being ﬁxed. . but not symmetric in all its arguments. we get a (p + q)-multiaﬃne map f : (A)p × (A)q → E. for simplicity of notation. if each polynomial Fi (U. The ﬁrst way to polarize. e en where F1 (U. V ]. V ) is ≤ p. for all u. A polynomial surface is a function F : P → E. V ) = UV + U + V + 1. and m. F1 (U. V ) are polynomials in R[U. Another example known as Enneper’s surface is as follows: U3 + UV 2 3 V3 + U 2V F2 (U.1. V ) is ≤ q. we have − → − → → → F (O + u i1 + v i2 ) = Ω1 + F1 (u. V ) = U 2 + V 2 + UV + 2U + V − 1 F2 (U.

.. we consider several examples to illustrate the two ways of polarizing. V ) = U − V + 1 F3 (U. where h ≤ p and k ≤ q.. v) of the form uh v k with respect to the bidegree p. . ui j∈J vj . . However. we get an m-multiaﬃne map f : P m → E. . in which we polarize separately in u and v.q}. . Indeed. vq ) = 1 p h q k I⊆{1. .. (u. it is enough to explain how to polarize a monomial F (u. namely as the coordinates of a point (u. .. POLARIZING POLYNOMIAL SURFACES Note that we are intentionally denoting A × ···× A×A × ···× A p q 263 as (A) × (A) . and investigate appropriate generalizations of the de Casteljau algorithm. 2 : F1 (U. . . . We will present both methods. p q The second way to polarize. . .. up . First. we can view F as a polynomial surface F : P → E. since e F (u. . . v).1. u. V ) = U 2 + V 2 + UV + 2U + V − 1 F2 (U. . .7. since A × A is isomorphic to P = A2 . to avoid the confusion between the aﬃne space Ap and the cartesian product A × · · · × A. In some sense. Consider the following surface viewed as a bipolynomial surface of degree 2. q . v)). V ) = UV + U + V + 1. |I|=h J⊆{1. Using linearity. v) = f (u. This way. m the surface F is really a map F : A × A → E.. It is easily seen that f (u1 . and to polarize the polynomials in both variables simultaneously. v) = f ((u. is to treat the variables u and v as a whole. with parentheses around each factor A. |J|=k i∈I the surface F is indeed a map F : P → E. .p}. . p p q We get what are traditionally called tensor product surfaces. this method is the immediate generalization of B´zier curves. since F (u. v) in P. We begin with the ﬁrst method for polarizing. Example 1. instead of Ap × Aq . v). v1 . v. The advantage of this method is that it allows the use of many algorithms applying in the case of curves. ... Note that in this case. . . if m is such that F is a polynomial surface of total degree m. which is symmetric in all of its m arguments.

j u1 . similarly to the case of curves. u2 . U2 . v1 +v2 . V2 ) = U1 U2 + V1 V2 + U1 + U2 V + U1 + U2 + V − 1 2 V1 + V2 (U1 + U2 )(V1 + V2 ) + U1 + U2 + −1 4 2 U1 + U2 V1 + V2 f2 (U1 . 2 2 and after polarizing with respect to V . that fi (u1 . 0 1 0 2 1 3 1 0. 0}. or conversely. v1 . we get b1 v 1 . v2 . v2 ) = fi ((1 − u1)0 + u1 1. 1 0 4 2 1. 1 1. 1 2 2 3 1 1. U2 . V ) separately in U and V . u2 1 0. V2 ) of F . V1 . 2 . and v1 . where the multiset of polar arguments {u1 .v1 +v2 . b3 1 +u2 . It is quite obvious that the same result is obtained if we ﬁrst polarize with respect to U. v1 . V2 ) = − +1 2 2 (U1 + U2 )(V1 + V2 ) U1 + U2 V1 + V2 + + + 1. v1 +v2 ). 0 −1 − 1 1 2 3 5 0. U2 . U2 . we can express every point u ∈ A over the aﬃne basis (0. v 2 }. u u u Letting i = u1 + u2 . the coordinates of the control point bu1 +u2 . u2 . we see. 0 0. 1 2 3 5 b2 v 1 . we polarize each of the Fi (U. {1. 0 ≤ i. and j = v1 + v2 . 1). as a barycentric combination u = u = (1 − u)0 + u1 = (1 − u)0 + u1. 1 1. and similarly for the multiset of polar arguments {v 1 . v2 ) as bi 1 +u2 . we have f1 (U1 . V ) = V + + V + 1. V2 ) = 4 2 2 Now. v1 . V1 . (1 − v1 )0 + v1 1. we have U f1 (U1 . are Denoting fi (u1 . V ) = U1 U2 + V 2 + U f2 (U1 . (1 − u2 )0 + u2 1. v1 +v2 . {0. f3 (U1 . U2 . 1 2 2 . v2 0. 0 0. V1 . u2 } can take as values any of the 3 multisets {0. V1 . u2 . 1}. U2 . POLYNOMIAL SURFACES In order to ﬁnd the polar form f (U1 . and expanding fi (u1 . u2 . 1}. (1 − v2 )0 + v2 1). u2 0. v 2 ) can be expressed as a barycentric combination involving 9 control points bi. U2 . b2 1 +u2 . v1 . j ≤ 2. V ) = U1 + U2 −V +1 2 U1 + U2 U1 + U2 U f3 (U1 .j u1 . v1 +v2 . 1 i. u2 .264 CHAPTER 7. After polarizing with respect to U. v2 0. u (b1 1 +u2 . viewed as a bipolynomial surface of degree 2. and then with respect to V . 1 i. using multiaﬃneness and symmetry in u1 . corresponding to the 27 polar values fi (u1 . v2 ).j .

given the monomial U h V k . V2 )) = U1 U2 + V1 V2 + V1 + V2 U1 V2 + U2 V1 + U1 + U2 + −1 2 2 U1 + U2 V1 + V2 f2 ((U1 . corresponding to the polar values f (0. 1) (− 2 . 0 1 2 3 9 0. 0). 0 0. but the other 5 control points are not on the surface. One should note that a bipolynomial surface can be viewed as a polynomial curve of polynomial curves. 2 ) (1. Example 2. 0.0 .2 . According to lemma 4. 0. (U2 . if we ﬁx the parameter u. V ) = U 2 + V 2 + UV + 2U + V − 1 F2 (U.. 4) 2 265 Note that the surface contains the 4 control points b0. 3) (5. 1).1.j have coordinates: bi.2 . b0.0 . f (0. 1. 2) 3 3 5 1 (0. 0. 1 1. f (1. 2. 0). V1 ). it is enough to deal with a single monomial. we get the following polar form of degree m: f ((u1. 2 . we get f1 ((U1 . |J|=k i∈I j∈J vj . 1.m} I∩J=∅ |I|=h. f3 ((U1 . 1 3 2 4 1. vm )) = h!k!(m − (h + k))! m! ui I∪J⊆{1.5. 1. (um . . .j j 0 1 2 i 1 1 3 0 (−1. Let us now polarize the surface of Example 1 as a surface of total degree 2. 1 . 1 2 3 4 and the nine control points bi.1. V ) = UV + U + V + 1. 1. 0. 1. V2 )) = 2 2 2 . and f (1. Let us now review how to polarize a polynomial in two variables as a polynomial of total degree m. b2. (U2 . 1. u2 3 2 0.. 9 ) ( 2 . V1 ). There are also some pleasant properties regarding tangent planes. POLARIZING POLYNOMIAL SURFACES b3 v 1 . 1 i.. and the surface is obtained by letting this curve vary as a function of u. (U2 . .7. V ) = U − V + 1 F3 (U.. we get a polynomial curve in v. 1). Using linearity. 3 ) ( 4 . and b2. 2) (3.j u1 . . v1 ). 3) 2 4 2 2 (2. V1 ). 2 . Indeed. v2 0. V2 )) = − +1 2 2 U1 V2 + U2 V1 U1 + U2 V1 + V2 + + + 1. in preparation for example 2. A similar interpretation applies if we exchange the roles of u and v. with h + k = d ≤ m. Starting from F1 (U. 1. 0. 3 .

O + i2 . s) (1. 2. V2 )) = − +1 2 2 U1 V2 + U2 V1 U1 + U2 V1 + V2 + + + 1. f2 . t) 1 1 3 (− . f3 ((U1 . v. 0). v1 . v) with respect to the aﬃne frame (O. s. 2. V2 ) ranging over (1. . (U2 . r). 1) f (r. the polar form f needs to be expressed in terms of barycentric coordinates. we just have to evaluate the original polar forms f1 . the aﬃne frame (O. f (r. t) = (O + i1 . s. ) 2 f (s. it appears that we have a problem. r) (2. 1 − u − v). (0. v) of − − → → points in the plane P. with respect to the barycentric − → − → aﬃne frame (r. i2 )). t). 1. 0). t). and (0. we get the following coordinates: f1 ((U1 . . V2 )) = U1 U2 + V1 V2 + f (r. namely (1. λ2 r + µ2 s + ν2 t) by multiaﬃneness and symmetry. there is no problem in computing the coordinates of control points using the original (nonbarycentric) polar forms. ( i1 . s). and we leave such a conversion as an exercise. i2 )). on the (u. V2 )) = 2 2 2 for argument pairs (U1 .r. 0). t) (−1. V1 ). V1 ). O). ) 2 2 f (t. s. where λi + µi + νi = 1. and (0. O). 0. 1. every point bi ∈ P. s) 5 (1. if we want to ﬁnd control points. f (s. 2) f (s. v)-coordinates. with respect to the aﬃne frame (O. if we just want the coordinates of the six control points. in fact. t) = (O + i1 . where i = 1. POLYNOMIAL SURFACES This time.266 CHAPTER 7. Thus. v) coordinates of (r. (U2 . is also represented by its barycentric coordinates (u. 0). b2 ) can be expressed as a barycentric combination of the six control points f (r. ( i1 . (0. v2 ) by multiaﬃneness. u2 . f (r. b2 ) = f (λ1 r + µ1 s + ν1 t. and we now go back to example 2. O + i2 . V1 ). (U2 . V1 ) and (U2 . Now. O). f (t. t) 3 3 (0. So. can be expressed as λi r + µi s + νi t. O + i2 .t. (continued) Evaluating the polar forms U1 V2 + U2 V1 V1 + V2 + U1 + U2 + −1 2 2 U1 + U2 V1 + V2 f2 ((U1 . Indeed. ( i1 . 1). It is possible to − − → → convert polar forms expressed in terms of coordinates w. t). and not the barycentric − → − → aﬃne frame (O + i1 . i2 )) to barycentric coordinates. expressed in terms of the (u. and we can expand f (b1 . The way around the problem is to observe that − − → → every point in P of coordinates (u. f (s. the symmetric multiaﬃne map f : P 2 → E is deﬁned in terms of the coordinates (u. In order to expand f (u1 . with respect to the barycentric aﬃne frame − → − → (r. t). and we see that f (b1 . 1). s). 2) f (r. but there is a simple way around this apparent problem. f3 . ) 2 2 2 . Example 2.

(U2 . (U2 . . t) 1 ( . s. F3 (U. (0. . V3 )) = 3 3 U1 U2 V3 + U1 U3 V2 + U2 U3 V1 + 3 U1 U2 + U1 U3 + U2 U3 V1 V2 + V1 V3 + V2 V3 f3 ((U1 . 0. 0) 3 f (r. V2 ). V ) = U 2 − V 2 .7. ) 3 3 3 f (s. s. ) 3 3 f (s. r. t) 1 (0. V1 ). V2 ). s. we ﬁnd the following 10 control points: f1 ((U1 . 1) 3 f (r. 0. V1 ). 0) 3 f (t. (U3 . and deﬁned such that F1 (U. s) 2 (0. . POLARIZING POLYNOMIAL SURFACES Example 3. V ) = U 2 − V 2 . s) 2 2 1 ( . 3 3 and evaluating these polar forms for argument pairs (U1 . s.1. (U2 . V2 ). V ) = U − We get U1 + U2 + U3 U1 U2 U3 − 3 3 U1 V2 V3 + U2 V1 V3 + U3 V1 V2 + 3 V1 + V2 + V3 V1 V2 V3 − f2 ((U1 . .− ) 3 3 3 f (s. . t) 2 1 (0. and (U3 . 0) f (r. 0). V1 ). r) 2 ( . t) (0. 0. Example 4. V ) = U. s) 2 2 1 ( . . −1) 3 Let us consider two more examples. V3 )) = − . V ) = V. 1) and (0. t) 2 1 ( . ranging over (1. V3 )) = f (r. V ) = V − + U 2V 3 F3 (U. F1 (U. Let F be the surface considered as a total degree surface. 0). F2 (U. t. V3 ). V1 ). t. . t. V2 ). (U3 . r. 267 Let us also ﬁnd the polar forms of the Enneper’s surface. considered as a total degree surface (of degree 3): U3 + UV 2 3 V3 F2 (U. r. 0) 3 3 f (r. − ) 3 3 f (r. 0. (U3 . t) 1 1 ( . (U2 .

0): f (r. v= 2 .268 The polar forms are: CHAPTER 7. 0. 2 V1 + V2 f2 ((U1 . 0) 2 2 f (s. f1 ((U1 . v) coordinates of (r. s) (0. 2 U +V . (0. V ) = . s. 0) f (r. 1. −1) f (s. (U2 . If we rotate the x. O + i2 . and (0. 0) 2 The resulting surface is an hyperbolic paraboloid . 2 ′ F3 (U. 0) 2 f (t. V ) = After the change of parameters u= U −V . 1) f (r. namely (1. ′ F1 (U. y axes to the X. V2 )) = . 0. . V1 ). O). Its general shape is that of a saddle. f3 on the (u. V2 )) = U1 U2 − V1 V2 . 2 x+y . (U2 . and similarly with its intersection with planes parallel to the plane xOz. 2 f3 ((U1 . 0). r) (1. Its intersection with planes parallel to the plane xOy is a hyperbola. V1 ). of implicit equation z = x2 − y 2 . Y = 2 we get the parametric representation U −V . 2 U +V ′ F2 (U. V1 ). V ) = U 2 − V 2 . s. V2 )) = − → − → With respect to the barycentric aﬃne frame (r. s) 1 1 ( . t) = (O + i1 . Its intersection with planes parallel to the plane yOz is a parabola. t) 1 (0. t). f2 . 0. t) (0. . POLYNOMIAL SURFACES U1 + U2 . (U2 . t) 1 ( . the control net consists of the following six points. obtained by evaluating the polar forms f1 . 1). Y axes such that X= x−y .

Its intersection with planes parallel to the plane yOz is a parabola. V1 ). . 1. 1). v) = v. of implicit equation z = 2x2 + y 2. (U2 . O). V2 )) = 2U1 U2 + V1 V2 . 0. v) coordinates of (r. . F2 (U. Its intersection with planes parallel to the plane xOy is an ellipse. − → − → With respect to the barycentric aﬃne frame (r. t) 1 ( . and similarly with its intersection with planes parallel to the plane xOz. V ) = 2U 2 + V 2 . 0). V ) = U. 0. Let F be the surface considered as a total degree surface. 2) f (r. t) (0. 0) 2 f (r. Its general shape is that of a “boulder hat”. f2 ((U1 . and similarly when v is constant. the control net consists of the following six points. Example 5. and deﬁned such that F1 (U. We say that the hyperbolic paraboloid is a ruled surface. 0) f (s. we see that the same hyperbolic paraboloid is also deﬁned by ′′ F1 (u. obtained by evaluating the polar forms f1 . t). s. s) 1 1 ( . and (0. 2 V1 + V2 . 0. 0): f (r. POLARIZING POLYNOMIAL SURFACES 269 since U 2 − V 2 = (U + V )(U − V ) = 4uv. 0) 2 f (t. (U2 . O + i2 . ′′ F2 (u. r) (1. v) = u. s) (0. The polar forms are: f1 ((U1 . (0. V1 ). . (U2 . s. ′′ F3 (u. v) = 4uv. t) 1 (0.1. F3 (U. V ) = V. 0) 2 2 f (s. f2 . 1) The resulting surface is an elliptic paraboloid . t) = (O + i1 . Thus. namely (1. V2 )) = U1 + U2 .7. when u is constant. the curve traced on the surface is a straight line. V2 )) = 2 f3 ((U1 . f3 on the (u. V1 ).

270 CHAPTER 7. and then with respect to V . a b or an elliptic paraboloid .2 Bipolynomial Surfaces in Polar Form Given a bipolynomial surface F : P → E of degree p. in more details. q . we get polar forms fi : (A)p × (A)q → A. ﬁrst with respect to U. V ) deﬁning F . z = v2. either an hyperbolic paraboloid . deﬁned by an implicit equation of the form z= x2 y 2 + 2. . y = u2 + v. except for some degenerate cases. applying lemma 4. First. It should be noted that parametric polynomial surfaces of degree 2 may correspond to implicit algebraic surfaces of degree > 2. deﬁned by an implicit equation of the form y 2 = 4ax.5. deﬁned by an implicit equation of the form x2 y 2 z = 2 − 2. An implicit equation for this surface is z = (y − x2 )2 .1 to each polynomial Fi (U. POLYNOMIAL SURFACES Generally. 7. we go back to bipolynomial surfaces. as shown by the following example: x = u. which together. a2 b or a parabolic cylinder . which is of degree 4. the algebraic surfaces deﬁned by implicit equations of degree 2 that are also deﬁned as polynomial surfaces of degree 2 are. and total degree surfaces. We will now consider bipolynomial surfaces. deﬁne a (p + q)-multiaﬃne map f : (A)p × (A)q → E. where E is of dimension n. we leave as an exercise to show that. and it is easy to see that this is the smallest degree.

.7. . . and with F (u. and symmetric in its last q-arguments. q -symmetric multilinear map. Vq ) is symmetric in its ﬁrst p-arguments. v) = f (u.2. is a map F : A × A → E. E). By analogy with polynomial curves. v) = f (u.1 is that it does not depend on the dimension of E. .1. it is natural to propose the following deﬁnition. q . . . v. . . . p q for all u. . . A). E). u. and can be safely omitted by other readers. . . q in polar form. which is symmetric in its ﬁrst p-arguments. It is easily veriﬁed that the set of all symmetric q-linear maps h : (A)q → E forms a vector space SML((A)q . V1 . v). v). Given any aﬃne space E of dimension ≥ 3. q -symmetric multilinear map f : (A)p × (A)q → E is in bijection with the symmetric p-linear map g : (A)p → SML((A)q . . . . Let f : (A)p × (A)q → E be its homogenized p. Remark: It is immediately veriﬁed that the same polar form is obtained if we ﬁrst polarize with respect to V and then with respect to U. a bipolynomial surface of degree p. Let F : A × A → E be a bipolynomial surface of degree p. . p q for all u. the p. . The trace of the surface F is the set F (A. . . . . . Deﬁnition 7. . v. The advantage of deﬁnition 7. u.2. We also say that f is p. such that there is some multiaﬃne map f : (A)p × (A)q → E. . and thus. and with F (u. Up .2. v ∈ A. q -symmetric. Remark: This note is intended for those who are fond of tensors. v ∈ R. and let f : (A)p × (A)q → E be its polar form. BIPOLYNOMIAL SURFACES IN POLAR FORM 271 such that f (U1 . and symmetric in its last q-arguments.

. up . s1 ) and (r 2 . but not necessarily symmetric. E). we note that the bilinear map p q f⊙.⊙ : ( A) × ( A) → E. p We can now view the linear map g⊙ as a symmetric q-linear map h : (A) → SML( which in turn.272 CHAPTER 7. using the universal property of the tensor product ( p A) ( q A). let (r 1 . . the symmetric p-linear g⊙ : A → SML((A)q . . However. E). the tensor product involved p q ( A) ( A) is “mixed”. h⊙ : A → SML( p q A. This explains the terminology “tensor product surface”. Indeed. the linear map h⊙ is in bijection with a bilinear map f⊙. .⊙ is bilinear. . Every point u ∈ A can be written as s1 − u u − r1 u= r1 + s1 . v q ) = f⊗ ((u1 ⊙ · · · ⊙ up ) ⊗ (v 1 ⊙ · · · ⊙ v q )). f (u1 . Now. . . . is in bijection with a linear map q p q Ap .⊙ : ( is in bijection with a linear map p A) × ( q A) → E f⊗ : ( and it is immediately veriﬁed that A) ( A) → E. s1 − r1 s1 − r1 . v 1 . Note that f⊙. but this also explains why this terminology is slightly unfortunate. and the ordinary tensor product ⊗. But then. E). s2 ) be two aﬃne frames for the aﬃne line A. in the sense that it uses both the symmetric tensor product ⊙. POLYNOMIAL SURFACES p From the universal property of the symmetric tensor power map g is in bijection with a linear map p A.

. . . .. . . . . . r2 .. u2 . v2 . . s2 ) |I| |J| |K| |L| can obviously be treated as control points. . using multiaﬃneness. . . . up . Indeed. s1 . s2 ). .. . . j )0≤i≤p. v2 . u2 . . . . . . . u2 . where b|J|. r1 . . . r2 . conversely. vq ) = i∈I I∩J=∅ I∪J={1. up . vq ). . . |L| = f (r1 . |I| |J| |K| |L| The polar values b|J|. r 2 . . . . . For example. v 1 . given any family (bi. |L| . . . vq ) = s1 − u 1 s1 − r1 s1 − u 1 + s1 − r1 u 1 − r1 + s1 − r1 u 1 − r1 + s1 − r1 s2 − v1 f (r1 . .q} s1 − u i s1 − r1 j∈J u j − r1 s1 − r1 k∈K s2 − vk s2 − r2 l∈L vl − r2 s2 − r2 b|J|. . .7. . . . .. the ﬁrst two steps yield: f (u1 . . . |L| = f (r 1 . . . .. it is easily seen that the map deﬁned such that f (u1 . ... s1 .. . up . . the following can easily be shown: f (u1 . . . |L| .q} s1 − u i s1 − r1 j∈J u j − r1 s1 − r1 k∈K s2 − vk s2 − r2 l∈L vl − r2 s2 − r2 b|J|. . . v q ) s2 − r2 v1 − r2 f (s1 .. . s2 − r2 s2 − v s2 − r2 r2 + v − r2 s2 − r2 s2 . v q ) s2 − r2 s2 − v1 f (s1 . . .. . s2 . up . . . . . . . . . . . . . BIPOLYNOMIAL SURFACES IN POLAR FORM and similarly any point v ∈ A can be written as v= We can expand f (u1 . u2 . s2 . . . v 1 . .. . up .2.. v q ). . . up . . v1 . . v2 . . . . . v 1 . s2 . s1 . . 273 By induction. . . .. r2 . . . . . ... . r 1 . . s1 . up . v q ) s2 − r2 v1 − r2 f (r 1 . vq ) = i∈I I∩J=∅ I∪J={1. r 2 . 0≤j≤q of (p + 1)(q + 1) points in E. . r2 .p} K∩L=∅ K∪L={1. s2 .. . . v2 . . . up .p} K∩L=∅ K∪L={1. .

. s2 . . j )0≤i≤p. s2 .2. p−i i q−j j Thus. we use the isomorphism between A × A and P. . . . . |L| . for any family (bi. 0 ≤ j ≤ q}. . f is given by the expression f (u1 . s1 . they are used in the deﬁnition itself.2. . q . |L| . s2 ) = b|J|.3. . . as F (u. . 0≤j≤q of (p + 1)(q + 1) points in E. j )0≤i≤p.. Furthermore.2. .. . r 2 ..1. s2 ) be any two aﬃne frames for the aﬃne line A. . s1 ](u) and Bj [r2 . .. s1 . q -symmetric map f : (A)p × (A)q → E. s1 ) and (r 2 . s1 . r 2 . A family N = (bi. .q} s1 − u i s1 − r1 j∈J u j − r1 s1 − r1 k∈K s2 − vk s2 − r2 l∈L vl − r2 s2 − r2 b|J|. . . simply apply lemma 4. r 2 . . . . r2 . q. . j . .. Note that in both cases.q = {(i. Lemma 7. . . 0≤j≤q of (p + 1)(q + 1) points in E. . vq ) = i∈I I∩J=∅ I∪J={1. . we see that the Bernstein polynomials show up again. . s1 . POLYNOMIAL SURFACES deﬁnes a multiaﬃne map which is p.2. . 1 ≤ i ≤ p and all j. s2 ) = bi. s2 .2. We can also show that when E is of ﬁnite dimension.1 is a bipolynomial surface in polar form.1. . j) ∈ N2 | 0 ≤ i ≤ p. p−|J| |J| q−|L| |L| We summarize the above in the following lemma..1. s1 . and such that f (r1 . the class of bipolynomial surfaces in polar form as in deﬁnition 7. . .. Note that we can view the set of pairs e p. r 1 . .. . . s1 ](u) Bj [r2 . s2 ](v). . . . . s2 ). . is often called a (rectangular) control net. v) = 0≤i≤p 0≤j≤q q Bip [r1 . . . . r1 . r2 . . and let E be an aﬃne space (of ﬁnite dimension n ≥ 3). A point F (u. we have already shown using polarization that a polynomial surface according to deﬁnition 7. . or B´zier net.1 is identical to the class of polynomial surfaces as in deﬁnition 7. p−i i q−j j for all i. as in deﬁnition 7. . . s2 ](v) f (r 1 . . in traditional presentations of bipolynomial surfaces. For the converse.p} K∩L=∅ K∪L={1. . 1 ≤ j ≤ q. . r2 . . . there is a unique bipolynomial surface F : A × A → E of degree p. . with polar form the (p + q)-multiaﬃne p. . up .1. s1 . . q -symmetric. and indeed. v) on the surface F can be expressed in terms of the Bernstein polynomials q Bip [r1 . . such that f (r 1 . . For any natural numbers p. Indeed. r1 .274 CHAPTER 7. v 1 . Let (r1 .

The portion of the surface F corresponding to the points F (u. THE DE CASTELJAU ALGORITHM. 0 . v) for all u ∈ A. . . are B´zier e curve segments. bp∗ . where 0 ≤ i ≤ p − 1. deﬁned by the constraint u + v = λ. s2 ].j)∈ . j )(i.7. . or rectangular B´zier patch. k + v − r2 s2 − r2 j−1 bi∗. They are B´zier curves. . . j+1 . s1 ]. [r2 .q in the aﬃne space E. The e surface F (or rectangular patch) determined by a control net N . . and 0 ≤ j ≤ q − 1. where b0 j = bi. . where bi∗ is obtained by applying the de Casteljau algorithm to the B´zier control points e bi. v) for all v ∈ A. is called a rectangular (surface) patch. q . j . the map Fu : A → E. when we ﬁx the parameter v. deﬁned such that Fv (u) = F (u. v) for which the parameters u. 7. and together. the corners of the surface patch. e The de Casteljau algorithm can be generalized very easily to bipolynomial surfaces. and i∗. j . k+1 . Remark: We can also consider curves on a bipoynomial surface. and then compute bp . Generally. and bp. the images of the line segments [r 1 . the map Fv : A → E. 0 . . j )(i. and bi+1. bp∗ . [r 1 . bp. bi. [s1 . s1 ]. but of degree p + q. with 0 ≤ i ≤ p. v satisfy the inequalities r1 ≤ u ≤ s1 and r2 ≤ v ≤ s2 . For every i. such a control net N determines a unique bipolynomial surface F of degree p. we ﬁrst compute the points bj k . and when we ﬁx v. is a curve on the bipolynomial surface F . for some λ ∈ R. is connected to the three points bi+1. . . s2 − v s2 − r2 j−1 bi∗. When we ﬁx the parameter u.2. bj k = i∗. q . and [r 2 . RECTANGULAR SURFACE PATCHES 275 as a rectangular grid of (p + 1)(q + 1) points in A × A. . by applying the de Casteljau algorithm to the control 0∗ points b0∗ . j+1 . deﬁned such that Fu (v) = F (u. j . b0. called the boundary curves of the rectangular surface patch. i∗. pq quadrangles are obtained in this manner. bi. 0 . r2 ].3. is a curve on the bipolynomial surface F . can be viewed as an image of the rectangular grid p.j)∈ p.2. s2 ].q . we obtain a B´zier curve of degree p. s2 ]) is the trace of the rectangular patch. we obtain a B´zier curve of degree q. Such curves are called isoparametric curves. and F ([r1 . The control net N = (bi. e e In particular. By lemma 7. . contains the four control points b0. Note that there is a natural way of connecting the points in a control net N : every point bi.q Given a rectangular control net N = (bi. with 0 ≤ i ≤ p. they form a polyhedron which gives a rough approximation of the surface patch. we can ﬁrst compute the points b0∗ . When we ﬁx u. .3 The de Casteljau Algorithm for Rectangular Surface Patches p. q . Similarly. q .

. . b∗0 . and then bq . r 1 . . s1 . . j )(i. . . . . v. r2 . Although logically equivalent. 0∗ p q Alternatively. . one of these two programs ∗0 may be more eﬃcient than the other.j)∈ p. v. We assume that the input is a control net N = (bi. . . . . The same result bp = bq . the version of the algorithm in which we compute ﬁrst the control points b0∗ . . . . It is easily shown by induction that p−i bj k = f (r1 . is obtained. . . 0∗ It is easily shown by induction that j u − r1 s1 − r1 j−1 bi+1∗ . . and then compute bq . where b0 = bi∗ . p−i i q Next. s2 . r1 . . . . b∗q . . with 0 ≤ j ≤ q. .q . we have bi∗ = f (r1 . bj = f (u. bp. s1 . . j . i∗. . v). . r 2 . . and we let bi∗ = bq 0 . . r1 . b∗q . i∗. s1 . . 0∗ ∗0 We give in pseudo code. . u. i j q−j−k k and since bi∗ = bq 0 . . v) = bp = f (u. . . . i∗. . . . i∗ p−i−j i q and thus. . . . POLYNOMIAL SURFACES with 1 ≤ j ≤ q and 0 ≤ k ≤ q − j. s1 . and we let F (u. The reader will easily write the other version where the control points 0∗ are computed ﬁrst. . . . bp∗ . . s1 . . . . . F (u. v). . . . . . we can ﬁrst compute the points b∗0 . . . s1 . . . . v ). and then bp . we compute the points bj . and i∗ i∗ bj = i∗ s1 − u s1 − r1 j−1 bi∗ + with 1 ≤ j ≤ p and 0 ≤ i ≤ p − j. . . . . . j . . . v . .276 CHAPTER 7. where b∗j is obtained by applying the de Casteljau algorithm to the B´zier control points e b0. by applying the de Casteljau algorithm to the control ∗0 points b∗0 . . u. r1 . v. . b∗q . . v. depending on p and q. v) = bp . . . . . . . s2 ).

THE DE CASTELJAU ALGORITHM. the polar value f (u1 . u. y). are computed ﬁrst. endfor.7. The computation shows that the points f (u. using these points (shown as square dark dots) as control point. the point f (u. v). u. v 2 .0 endfor. x). There are other interesting properties of tangent planes. 3 . y). for j := 1 to q do for k := 0 to q − j do −u bj := ss11−r1 i∗ endfor endfor. u2 . The diagram shows the computation of the point F (u. endfor endfor. x. y. xxx. v) := bp 0∗ end j−1 −v bj k := ss22−r2 bi∗. It is assumed that (r. i∗. and then. x. x. r. v. y. . u. x. bi∗ = bq . s. and for simplicity of notation. it is clear that the rectangular surface patch deﬁned by a control net N is contained inside the convex hull of the control net. for i := 0 to p do b0 = bi∗ i∗ endfor. k + i∗. j i∗. u3 . x. y) have been chosen as aﬃne bases of A. f (u. RECTANGULAR SURFACE PATCHES 277 begin for i := 0 to p do for j := 0 to q do b0 j := bi. f (r. v) (shown as a round dark dot) is computed. v 1 . v. u. s) and (x. x. u. u. F (u. that will be proved at the end of From the above algorithm. u. y). for instance. u. v 3 ) is denoted as u1 u2 u3 . Since the ﬁgure is quite crowded. not all points have been labeled. x. and that the image by an aﬃne map h of a bipolynomial surface deﬁned by a control net N is the bipolynomial surface deﬁned by the image of the control net N under the aﬃne map h. f (u. for j := 1 to p do for i := 0 to p − j do j−1 bi∗ + v−r2 s2 −r2 j−1 bi∗. v1 v2 v3 . k+1 u−r1 s1 −r1 j−1 bi+1∗ The following diagram illustrates the de Casteljau algorithm in the case of a bipolynomial surface of degree 3.3. u. x) is denoted as rrs. u. y. It is also clear that bipolynomial surfaces are closed under aﬃne maps. and f (u.

xxy rrr. yyy uuu. xxy rrs. POLYNOMIAL SURFACES rrs. 3 . yyy rrs.278 CHAPTER 7. xxx sss. xxx sss. xxy sss. xxy rrr. xxx rss. yyy rss. yyy rrr. vvv rss.1: The de Casteljau algorithm for a bipolynomial surface of degree 3. xxx uuu. xxx Figure 7.

a surface of total degree m in polar form.4. bp−1 . v) = f ((u. . which determine another tangent line (unless these points are all collinear). . where λi + µi + νi = 1. and with F (a) = f (a. a). . (Um . A similar property holds for the other corner control points b0.4. applying lemma 4. it is also natural to propose the following deﬁnition.5. Thus. 7. . Also. We now go back to total degree surface. . (u. . in general. for any ai = λi r + µi s + νi t. bp. deﬁne an m-multiaﬃne and symmetric map f : P m → E. . Vi ). and b0. The advantage of deﬁnition 7. then the plane that they deﬁne is the tangent plane to the surface at the corner point b0. . m Note that each f ((U1 . Deﬁnition 7. λm r + µm s + νm t) . and the 1∗ 0∗ q−1 q−1 points b∗0 . . which together. . .1. 1 . the tangent plane to the surface at F (u. is a map F : P → E.1 is that it does not depend on the dimension of E. v). m for all a ∈ P. 0 . are not collinear. such that there is some symmetric multiaﬃne map f : P m → E. b∗1 . v)). with respect to both U and V . For example. 0 . 0 . The trace of the surface F is the set F (P). t) ∈ P.4 Total Degree Surfaces in Polar Form Given a surface F : P → E of total degree m. and 1 ≤ i ≤ m.4. V ) deﬁning F . where E is of dimension n. we can expand f (a1 . q . and bp.7. . if the control points b0. we get polar forms fi : P m → A. . 0 . . q . v) is determined by the points bp−1 . Given any barycentric aﬃne frame (r. Vm )) is multiaﬃne and symmetric in the pairs (Ui . V1 ). which determine one tangent line. Given any aﬃne space E of dimension ≥ 3. such that F (u. TOTAL DEGREE SURFACES IN POLAR FORM 279 this chapter. b1. By analogy with polynomial curves. . . am ) = f (λ1 r + µ1 s + ν1 t. the four tangent planes at the corner points are known. . .1 to each polynomial Fi (U. . s. .

. . . r .280 CHAPTER 7.. . . . . .. λ2 r + µ2 s + ν2 t. . s. . s. it is easily shown that f (a1 . t). . r . i!j!k! i+j+k=m i j k where a = λr + µs + νt. We summarize all this in the following lemma. POLYNOMIAL SURFACES by multiaﬃneness and symmetry. Then. . t. |K| . . am ) = I∪J∪K={1. with λ + µ + ν = 1. λm r + µm s + νm t). λm r + µm s + νm t) = λ1 f (r. . i j k m+2 2 = where i + j + k = m. . . . . s. . j. . r. s.m} I. .J. Let ∆m = {(i. . T . when a1 = a2 = . a) = m m! i j k λ µ ν f (r. r. = am = a. |J|. . the map deﬁned such that µj j∈J k∈K λi νk b|I|. i!j!k! where i + j + k = m. . as ∆rst. . . . V. T ) = m! U iV j T k. t). t) in the aﬃne plane P. . . we get F (a) = f (a. V. . By induction. . . . .m} I. but one can verify that there are only terms corresponding to the points f (r.. t.K pairwise disjoint i∈I λi j∈J µj k∈K νk f (r. The polynomials in three variables U. . . . i j k where i + j + k = m. . Also. . . . . . .k)∈∆m of f (a1 . . t). t. . . . . deﬁned such that m Bi. are also called Bernstein polynomials. . . k )(i. |I| |J| |K| (m+1)(m+2) 2 There are 3m terms in this sum. . . . t). s.j. . λ2 r + µ2 s + ν2 t.. . and call it a reference triangle.j. From now on. .K disjoint i∈I (m+1)(m+2) 2 points in E. .. . . we have f (λ1 r + µ1 s + ν1 t. As a ﬁrst step. am ) = I∪J∪K={1.J. . given any family (bi. j. . . . s. can be viewed as control points.k (U. . . is symmetric and multiaﬃne. s. s. . λ2 r + µ2 s + ν2 t. we will usually denote a barycentric aﬃne frame (r. . λm r + µm s + νm t) + µ1 f (s. . .. λm r + µm s + νm t) + ν1 f (t. the points f (r. t. . . . . . . Clearly. s. . . . .. k) ∈ N3 | i + j + k = m}.

starting from the left lower corner. .1 is identical to the class of polynomial surfaces. . a) = m (i.1.4. j. For example. . . . .k (λ.J. . k )(i.1 is a polynomial surface of total degree m in polar form as in deﬁnition 7. s. j. . . k . .. . |I| |J| |K| where ai = λi r + µi s + νi t. t). t. .2. . . the class of polynomial surfaces of total degree m in polar form as in deﬁnition 7. j. k) ∈ ∆m . and 1 ≤ i ≤ m.2.4. . can be thought of as a triangular grid of points in P. . . s.k)∈∆m of (m+1)(m+2) points in E. ν) f (r. r. . Given a reference triangle ∆rst in the aﬃne plane P. as in deﬁnition 7. µ. i j k where a = λr + µs + νt. . i j k for all (i. . . .4. Indeed. A point F (a) on the surface m! m F can be expressed in terms of the Bernstein polynomials Bi. . . . TOTAL DEGREE SURFACES IN POLAR FORM 281 Lemma 7. .. also starting from the left lower corner. s. when m = 5. . j. . k) ∈ N3 | i + j + k = m}. j.. or B´zier net. . s. . Note that the points in e ∆m = {(i. k)∈∆m m Bi. The control net N = (bi. A family N = (bi. we have the following grid of 21 points: 500 401 302 203 104 005 014 113 023 212 122 032 311 221 131 041 410 320 230 140 050 We intentionally let i be the row index. Furthermore. deﬁned by a symmetric m-aﬃne polar form f : P m → E.k)∈∆m .4.k)∈∆m of (m+1)(m+2) points in E.1. . k )(i. as F (a) = f (a. .j. f is given by the expression f (a1 . . is called a (triangular) control 2 net. . t.j.7. t). t. We can show that when E is of ﬁnite dimension. . with λ + µ + ν = 1. . j.1.k (U. . am ) = I∪J∪K={1.. . s. . k )(i. . . s.j. . we have already shown using polarization.m} I. there is a unique surface F : P → E of total degree 2 m.j. simply apply lemma 4.3. . For the converse.K pairwise disjoint i∈I λi j∈J µj k∈K νk f (r. with λi + µi + νi = 1. t) = bi. that a polynomial surface according to deﬁnition 7. and j be the column index. . j. such that f (r. r. r.j.1. T ) = i!j!k! U i V j T k . V. given any family (bi.

we can associate with each triple (i. which are also denoted as (b0 j. the points (bl j. with λ + µ + ν = 1. r.2.k)∈∆m−l i. 1 ≤ l ≤ m. k + µbl−1 k + νbl−1 k+1 . . An easy induction shows that 0. and F (∆rst) is called the trace of the triangular surface patch. . r. i. . the single point bm 0. . given a triangular control net N = (bi. s. In order to understand the diﬃculty. The portion of the surface F corresponding to the points F (a) for which the barycentric coordinates (λ. t. a).j. . k) ∈ ∆m . m. The surface e F (or triangular patch) determined by a control net N . To be deﬁnite. . various triangulations of the triangle ∆rst using the points just deﬁned. there isn’t a unique natural way to connect the nodes in N . for every (i. . j. . . m m m where ∆rst is the reference triangle. r. . l i j k .j. . . contains the three control points bm. or triangular B´zier patch. . . 0 ≤ ν. and b0. 0 is computed. m . the points i j k r + s + t. s. j. j. i+1. given a triangular control net N = (bi. . . j.4. The other i. 0 .j. the computation builds a sort of tetrahedron consisting of m + 1 layers. such a control net N determines a unique polynomial surface F of total degree m.k)∈∆m . the corners of the surface patch. . or Risler [68]). . By lemma 7. . layers are computed in m stages. to form triangular faces that form a polyhedron. b0. t). where λ+µ+ν = 1. we can assume that we pick a Delaunay triangulation (see O’Rourke [58]. . are computed such that bl j. . . . i. bl j. 0 ≤ µ. The base layer consists of the original control points in N . . . recall that in terms of the polar form f : P m → E of the polynomial surface F : P → E deﬁned by N . k = f (r. t. 0. . k )(i. where at stage l.j. Boissonnat and Yvinec [13]. i. k )(i. POLYNOMIAL SURFACES can be viewed as an image of the triangular grid ∆m in the aﬃne space E. µ. in order to compute F (a) = f (a.k)∈∆m . k = f (a. During the last stage. i j k Given a = λr +µs+νt in P. . . Preparata and Shamos [64]. t). . is called a triangular (surface) patch. 0 . 0.282 CHAPTER 7. k) ∈ ∆m . j.k)∈∆m . s. a. Contrary to rectangular patches. ν) of a (with respect to the reference triangle ∆rst) satisfy the inequalities 0 ≤ λ. . k )(i. k = λbl−1 j. j+1. yield various ways of forming triangular faces using the control net. 7. j. . .5 The de Casteljau Algorithm for Triangular Surface Patches Given a reference triangle ∆rst. k )(i. s. The de Casteljau algorithm generalizes quite easily. i. Then. we have bi.

. and thus. . . . . s. ν by λl . k) ∈ ∆m−l . k) ∈ ∆m is denoted as i. stage l. where 1 ≤ l ≤ m. t). . f (a1 . i := (i. . it may be helpful to introduce some abbreviations. . k = f (a1 . . . s. . the points (bl j. t. It is clear from the above algorithm. j. . and we let e1 = (1. 0 . that the triangular patch deﬁned by the control net N . am ). i. . k = λl bl−1 j. At i. i. bl j. . i. is contained in the convex hull of the control net N . 0. 0. we simply replace λ. k )(i. We are assuming that we have initialized the family (b0 )i∈∆m . . . . 1. F (a) = bm 0. j. 0). k )(i. νl . . . j. e3 = (0. al . e2 = (0. In order to present the algorithm. . r. µ. k). 1).7. where al = λl r + µl s + νl t. such that b0 = bi . j. r. am ) as follows. which are also denoted as (b0 j. for m points a1 . with λl + µl + νl = 1. am ) = bm 0. am in P. 0. we can i i describe the de Casteljau algorithm as follows. Then. For example. a triple (i. . i. 0 . µl . . with λl +µl +νl = 1. k + µl bl−1 k + νl bl−1 k+1 . j. for all i ∈ ∆m . An easy induction shows that bl j. . begin for l := 1 to m do for i := 0 to m − l do for j := 0 to m − i − l do k := m − i − j − l. Similarly. . THE DE CASTELJAU ALGORITHM FOR TRIANGULAR SURFACE PATCHES283 where (i. .5. we can compute the polar value f (a1 . Again.k)∈∆m . . Let a = λr + µs + νt. . . 0). i+1. where al = λl r+µl s+νl t. It is assumed that the triangle ∆rst has been chosen as an aﬃne . . . 0. . the base layer of the tetrahedron consists of the original control points in N .k)∈∆m−l are computed such that i.j. am in P.j. k) ∈ ∆m−l . bl := λbl−11 + µbl−12 + νbl−13 i i+e i+e i+e endfor endfor endfor. and thus. where λ + µ + ν = 1. . 0. given m points a1 . and 0 = (0. 0). j+1. i j k where (i. . The following diagram illustrates the de Casteljau algorithm in the case of a polynomial surface of total degree 3. F (a) := bm 0 end In order to compute the polar value f (a1 . . . .

in general. 0. Also. the tangent plane to the surface at F (a) is determined by the points bm−10 . the three tangent planes at the corner points are known. then the plane that they deﬁne is the tangent plane to the surface at the corner point bm.2: The de Casteljau algorithm for polynomial surfaces of total degree 3 base of P. 0 and b0.284 ttt CHAPTER 7. 0. and it consists of three shells. that will be proved at the end of this Chapter. points are all collinear). m . f (r. There are other interesting properties of tangent planes. 1. 0. bm−10 . s) is denoted as rrs. if the control points bm. Given a polynomial surface F : P → E. 0 . 0. u2. For example. Thus. u3 ) is denoted as u1 u2 u3 . The diagram shows the computation of the point F (u). 1. 0. and bm−1. bm−1. 1 . 0 . 0. r. and for simplicity of notation. by considering points a ∈ P of barycentric . POLYNOMIAL SURFACES ttu rtt tuu rrt rtu tsu tss tts uuu rrr rru ruu rst suu ssu sss rsu rrs rss Figure 7. 0 . 0. and bm−11 (unless these 1. the polar value f (u1 . each one obtained via two-dimensional interpolation steps. for example. 0. A similar property holds for the other corner control points b0. m. are not collinear.

and when represented as a surface of total degree m. → → it is easily shown that for any two nonnull vectors − . they form a polynomial curve called an isoparametric curve. . q -symmetric multilinear map. . 0).6 Directional Derivatives of Polynomial Surfaces In section 10. . . This way. − ∈ R. we can consider curves on a surface F of total degree m. and let f : (A)p × (A)q → E be its polar form.5. Other isoparametric curves are obtained by holding µ constant. b) is given by → → u v Du Dv F (a. It is interesting to note that the same polynomial surface F . b) = p q f (a.6. u v the directional derivative Du Dv F (a. a. 7. the directional derivative Du F (a) is given by → u Du F (a) = mf (a. requires a control net of (m+1)(m+2) 2 points. More generally. for any two points a. lies on a line. considering points of barycentric coordinates (λ. 0. . Finally. q . b. considering points of barycentric coordinates (λ. requires a control net of (p + 1)(q + 1) control points. or ν constant. we also get a B´zier curve e of degree m. . and similarly. 1 − λ. µ. If we consider the points F (λr + µs + νt) on the surface F . Let be its homogenized p. we get a curve on the surface F passing through F (r) and F (s). We conclude this chapter by considering directional derivatives of polynomial surfaces. − ). DIRECTIONAL DERIVATIVES OF POLYNOMIAL SURFACES 285 coordinates (0. let F : A × A → E be a bipolynomial surface of degree p. it is shown that if F : E → E is an aﬃne polynomial function of polar degree − → → m. These curves are B´zier curves of degree m. we get a curve on the surface F passing through F (r) and F (t). . a. determined by the constraint that the parameter point a = λr + µs + νt ∈ P. − . − ). obtained by holding λ constant. . for any u a ∈ E. Using some very similar calculations. b). b ∈ A. 1 − λ). and if − is any nonnull vector in E . ∂− ∂− u v . we get a curve on the surface F passing through F (s) and F (t). p−1 q−1 f : (A)p × (A)q → E This directional derivative is also denoted as ∂2F → → (a. 1 − µ). and they are called the boundary curves of the e triangular patch. m−1 Now. . where E and E are normed aﬃne spaces. . q .7. . when represented as a bipolynomial surface of degree p. b. .

j. where 0 ≤ i. . . b) can be computed from the homogenized polar form f of i j F as follows: → → → → u u v v Du . b. Dv F (a. POLYNOMIAL SURFACES ∂2F → → When − = 1 and − = 1. . − .1. q . . for any nonzero vectors − . . . . → v 2 2 2 2 and thus. Dv F (a. . u . v ). b) = p f (a. .6. . . b) = pi q j f (a. − ). Given a bipolynomial surface F : A × A → E of degree p. ∂u∂v ∂u∂v The following lemma. . since ∂F − → − (a. for any i. j ≤ m. for any a.5. . every vector − ∈ R can be expressed as v − =λ s −λ r . Du Dv . for any two points a. . . −i → −j → ∂u ∂v → u If (r1 . → ∂v p q−1 . . Du Dv . .286 CHAPTER 7. . . a. . respectively. . → ∂u p−1 q and ∂F − → − (a. − . b) or (a. . . . − ∈ R. the directional derivative − − (a. b) = q f (a. analogous to lemma 10. a. . . . the directional → → u v derivative Du . b ∈ A. . b). . and the vector (a. . b. . b) is often called the twist at (a. b). . . b. b). Dv F (a. →i →j ∂− ∂− u v and when i = 0 or j = 0. . b). → u 1 1 1 1 → and similarly. . i j p−i i q−j j The directional derivative Du . by deﬁnition. b) is also denoted as i j ∂ i+j F (a. . − . it is denoted as ∂j F ∂iF (a. . b) is the partial u v ∂ →∂ → u v 2 2 ∂ F ∂ F derivative (a. . . where E is any normed aﬃne space. . can be shown easily. . every vector − ∈ R can be expressed as − =λ s −λ r . Du Dv . . b ∈ A. . s1 ) and (r 2 . b). b. a.3. . s2 ) are any two aﬃne frames for the aﬃne line A. b. Lemma 7. with polar form f : (A)p × (A)q → E.

. by a similar reasoning. span the tangent plane at (a. b. . In particular. . . .1 = f (a. . a. b. . d2. b. b. b) = q λ2 (f (a. . b. . s2 ). . 0 . a. . d1. . p−1 q−1 d2. . . . . b) = p λ1 (f (a. . ∂u∂v p−1 q−1 we get ∂2F (a. b). . . . . . . 0∗ 1∗ q−1 q−1 and b∗0 . . and provided that they are not collinear. . they determine the tangent plane at (a. . b∗1 . . However. . . − . . DIRECTIONAL DERIVATIVES OF POLYNOMIAL SURFACES we get ∂F → (a. . . . . b) to F . p−1 q−1 .6. . . . . . a. . b) = p q f (a. s2 ) − f (a. Thus. p−1 q−1 d1. b. r 1 . a. b) − f (a. . b. b. . a. computed by the two versions of the de Casteljau algorithm. . a. . . s2 ). and b0. .2 = f (a. b. . p−1 q−1 d2. . . . p−1 q f (a. r2 ). . b. bp−1 . . s1 . b. . . . b. . d2. . . r 2 )). . p−1 q f (a. . b. b. . . . . . b. computed by the two versions of the de Casteljau 0∗ 1∗ algorithm (provided that they are not collinear). . 0 . . . .1 = f (a. ∂− u p−1 q p−1 q 287 and ∂F → (a. s1 . ∂− v p q−1 p q−1 Since these vectors. a. . s2 ) − f (a. . . . . .2 . r2 ). since u v ∂2F → → u v (a. b.2 = f (a. . . p q−1 f (a. . a. these points are just the points bp−1 . . b. r1 . . . . . .1 . . . s2 ). we ﬁnd that the control points b0. . . . a. a. . b. b) = p q f (a. b∗1 . b) to the bipolynomial surface F . . a.2 . . . p q−1 are coplanar. . . . . b. r 2 ) ∂u∂v p−1 q−1 p−1 q−1 − (f (a. b. r2 )) . . a. . . b)). . . . b. . . s1 . r1 . b. b. be the points d1. a. . . . the four points f (a. b) to the bipolynomial surface F is determined q−1 q−1 by the points bp−1 . . . . . a. s1 . b. provided that they are not linearly dependent. p−1 q−1 p−1 q−1 Letting d1. b. 1 . r1 . a. 0 . . . we have proved the claim that the tangent plane at (a. b. . r2 ). b. and b∗0 . s1 . b. .1 . . b1. . . . → → Assuming − = 1 and − = 1. bp−1 . b). letting a = r 1 and b = r2 . s1 . . a. b. . − ). . . . . r1 . . a. . . . b. s2 ) − f (a. . deﬁne the tangent plane to the surface at the corner point b0. .7. r1 . . . . .

2 ) − (d2.1 + (d1.1 )) .2 − c.1.2 − d2. b).1 . form a parallelogram.2 − d1.1 )) . → → Remark: If we assume that − = 1 and − = 1. → → and thus (since − = 1 and − = 1). ∂u∂v Thus. we get u v ∂2F (a. d2.2 . the directional derivative u v 2 2 ∂ F ∂ F − ∂ − (a.288 we can express ∂2F (a.2 . deviates from the parallelogram d1. ∂u∂v which. c. POLYNOMIAL SURFACES ∂2F (a. and c. b) is the partial derivative ∂u∂v (a. b) = p q (d2.1 .2 − d1.1 .2 − d2. let c = d2. then by deﬁnition.2 − c).1. d2. up to the factor p q.1 = b0.1 . b) = p q (d2. when a = r1 and b = r2 . d2. and since → → ∂u v ∂2F → → (a. b) = p q (d2.1 ) − (d1. In particular. b) = p q ((d2. d1. d2.1 (when these points are not collinear).1 .1 − d1. b) = p q ((d2.1 ).2 + d1.2 − d1. the twist vector is a measure for how much the quadrangle d1.1 ) − (d1. d1. and d2. The twist vector Then. it is a measure of the deviation of d2.1.2 − d2.2 .0 . and roughly.2 + d1. can be written either as ∂2F (a.2 − d2. in terms of vectors. b) can be given an interesting interpretation in terms of the ∂u∂v points d1. d2. it is immediately veriﬁed that (d2. this plane in just the tangent plane at d1. b) as ∂u∂v CHAPTER 7. ∂u∂v or as ∂2F (a.2 . ∂− ∂− u v . d1. d1.1 − d1.1 ).2 from the plane determined by d1.2 − d1. d1.2 .1 − d1.2 .2 . Let c be the point determined such that d1. ∂u∂v ∂2F (a.1 . that is.1 ). d2.1 ) = d2.

. . a. . . . since every vector − ∈ R2 can be written as u − = λr + µs + νt. a. .2 = f (a. .7. . . DIRECTIONAL DERIVATIVES OF POLYNOMIAL SURFACES and d1. . . . ∂− u m−1 m−1 m−1 When λ.6. → → Thus. Duk F (a) as (a). .1 = f (a. →k ∂− u → Given any reference triangle ∆rst. . . −k ). and the bi. r1 . .j+1 − bi+1. s).2 = f (a. Duk F (a) can be computed as follows: → → u u Du1 . a. p−1 q−1 d2. a. . . . . . s) + νf (a. . . . a. provided that the points f (a. b) = p q ∂u∂v i=p−1 j=q−1 q−1 (bi+1.j are the B´zier control points e of F . b. . s2 ). If we now consider a polynomial B´zier surface F : P → E of total degree m. Duk F (a) = mk f (a. r1 . . where 1 ≤ k ≤ m. . a. . b. . and b = (1 − λ2 )r 2 + λ2 s2 . the results of section 10.3. . s1 . . . p−1 q−1 letting a = (1 − λ1 )r 1 + λ1 s1 . . . we also denote Du1 . r). . . .5 apply immediately. . m−k ∂k F When u1 = . s1 . . deﬁned by e m a symmetric m-aﬃne polar form f : P → E. . . a. b. for any k nonzero vectors −1 . . . b. .j+1 + bi. by lemma 10. . a.5. r2 ). . . s2 ). r) + µf (a. r2 ). µ. i=0 j=0 q−1 where Bip−1 and Bj are the Bernstein polynomials. . p−1 q−1 289 d1. . . . . . . for u u any a ∈ P. a. .1 = f (a. . . t) m−1 m−1 m−1 . . = uk . . the k-th directional derivative Du1 . . we get ∂F → (a) = m(λf (a. .j )Bip−1 (λ1 )Bj (λ2 ). for k = 1. . b. after expansion using multiaﬃneness. ν vary. f (a. . f (a. . . . we get ∂2F (a. . . b. . b. . a. . subject to λ + µ + ν = 0. a. . p−1 q−1 d2.j − bi. t)). . −k ∈ R2 . . −1 . . b. . → u where λ + µ + ν = 0.

..q−1 σ 0. the vectors − (a) span the tangent plane to F at a. −1 .q p h−1. − . −k ). 0. and bm−1 1) . if h = 0 ≤ p and 1 ≤ k ≤ q.290 CHAPTER 7. (0. However. are not collinear. letting a = r. if 1 ≤ h ≤ p and k = 0 ≤ q. . Remark: From → → Du1 . 0. .q−1 p. . Duk F (a) = mk f (a. (0. 1.. 0. 0.7 Problems Problem 1 (10 pts). .|I|=h J ⊆{1. and bm−1. a.k + vq σ0.k = 1 p h q k I⊆{1. 1. Thus. Problem 2 (20 pts). .q−1 p−1. we recognize ∂→ u that the above points are just the points bm−1 0) . collinear).. 1). Recall that the polar form of the monomial uh v k with respect to the bidegree p. − . q (where h ≤ p and k ≤ q) is p.q−1 p−1. otherwise..k−1 = σ p−1. 0. then the plane that they deﬁne is the tangent plane to the surface at the corner point bm.. 0 . In particular. a. POLYNOMIAL SURFACES ∂F are not collinear. .k−1 σh.k . u u v v i − j (a) = m → v ∂− ∂ → u m−i−j i j 7. and bm−1 1) (unless these points are all (1. if the control points bm. bm−1 0) . 1] × [0. with respect to the aﬃne frames (0.|J |=k ui i∈I j∈J vj . . p. 0.p}. prove that we have the following recurrence equations: p. p ≥ 0.q σh. ... and q ≥ 0. . 0 . . 1.k p−1. Plot the surface patch over [0. we have proved the claim that the tangent plane to the surface at F (a) is determined by the points bm−1 0) .0 h.k = p h q k p. . − ). . Casteljau algorithm. . bm−1. 1) and (0.q−1 + up σh−1.q fh. . (0.k p.q + u σ p−1.. bm−1 0) . computed by the de (1.q Letting σh. − . . (0. . . u u m−k we deduce that ∂ i+j F → → → → i+j f (a. 1]. if h = k = 0. 1 .q}.q fh. .q−1 p−1. . 0 .k + vq σh.k−1 + up vq σh−1. Compute the rectangular control net for the surface deﬁned by the equation z = xy. 0. . .0 1 0 if 1 ≤ h ≤ p and 1 ≤ k ≤ q. .

vq ). = 1 if h = k = 0 and m ≥ 0.0 + up fh−1.k + vq f0. PROBLEMS p. prove that fh.q fh. k ≥ 0 and 1 ≤ h + k ≤ m.7.k + vq fh.k + vm σh..I∩J =∅ vj j∈J . .q f0.q−1 fh. . prove that we have the following recurrence equa- tions: m−1 m−1 m−1 σh. and 1 ≤ j ≤ q.k−1 . . . 0 otherwise. q q where h = 0 ≤ p and 1 ≤ k ≤ q.j fh.k m fh.k + up fh−1. .k . 1 ≤ k ≤ j. Problem 4 (20 pts). .7. i∈I m Letting σh. and p. .k + um σh−1. up .q h p−1. .q fh. Show that for any (u1 . . Prove that the polar form of the monomial uh v k with respect to the total degree m (where h + k ≤ m) can be expressed as m fh. pq pq pq pq where 1 ≤ h ≤ p and 1 ≤ k ≤ q.k (u1 .k = 291 (p − h)(q − k) p−1. where 1 ≤ h ≤ i. . . 1 ≤ i ≤ p. v1 . . p p where 1 ≤ h ≤ p and k = 0 ≤ q. v1 .q−1 k p.q−1 h(q − k) (p − h)k hk p−1. computing all the polar values i. . k ≥ 0 and 1 ≤ h + k ≤ m.0 . vq ). . m m m where h.k−1. Using the result of problem 2. can be done in time O(p2q 2 ).|J |=k. prove that fh. write a computer program for computing the control points of a rectangular surface patch deﬁned parametrically.k can be computed directly using the recurrence formula m σh.k = m h m−h k m fh.k = (q − k) p.k can be computed directly using the recurrence formula p.q Alternatively. up ..k + um fh−1. .k−1 + up vq fh−1. .q−1 p−1.0 = (p − h) p−1.q fh. m Alternatively...q−1 p−1.m} |I|=h.k−1 if h.q−1 f0.k−1 .k + vm fh. p. . Problem 3 (30).k = m h 1 m−h k ui I∪J ⊆{1.k = (m − h − k) m−1 h k m−1 m−1 fh.

292 CHAPTER 7. Problem 8 (20 pts). Problem 5 (30). 1). . z = u2 v − v 3 /3. . vm )). Problem 6 (20 pts). 1) and (−1. . 0)). k ≥ 0. Compute a rectangular net for the surface deﬁned by the equation z = x4 − 6x2 y 2 + y 4 with respect to the aﬃne frames (−1. vm )). Compute a triangular net for the same surface with respect to the aﬃne frame ((1. Note that z is the real part of the complex number (u + iv)4 . Compute a triangular net for the same surface with respect to the aﬃne frame ((1. 0)). Using the result of problem 4. (0. v) = (0. Problem 9 (20 pts). 0). 0)). POLYNOMIAL SURFACES Show that for any ((u1 . (0. 1). (0. 0). (0. 1). 1) and (−1. Compute a rectangular net for the surface deﬁned by the equation z = 1/6(x3 + y 3) with respect to the aﬃne frames (−1. 1). This surface is called a monkey saddle. 1) and (0. Problem 7 (20 pts). . . (0. computing all the polar values i fh. Note that z is the real part of the complex number (u + iv)3 . 1). 1 ≤ h + k ≤ i. and 1 ≤ i ≤ m. Compute a rectangular net for the surface deﬁned by x = u(u2 + v 2 ). . Compute a triangular net for the same surface with respect to the aﬃne frame ((1. This surface is a more complex kind of monkey saddle. (0. v1 ). 0). 1). . 0).k ((u1. y = v(u2 + v 2 ). with respect to the aﬃne frames (0. (um . . Compute a rectangular net for the surface deﬁned by the equation z = x3 − 3xy 2 with respect to the aﬃne frames (−1. (um . Compute a triangular net for the same surface with respect to the aﬃne frame ((1. Explain what happens for (u. 0)). v1 ). where h. write a computer program for computing the control points of a triangular surface patch deﬁned parametrically. can be done in time O(m3 ). 0). (0. . 1). 1). 1) and (−1. (0.

. .j)∈ p. . In the third version.j)∈ n−r. j + (1 − u)v bi. j for i. j )(i. i.1 is identical to the class of polynomial surfaces as in deﬁnition 7. . Given a bipolynomial surface F of bidegree p. v) on the surface F . . by applying the de Casteljau algorithm to the control 0∗ points b0∗ . Prove that when E is of ﬁnite dimension.1. Let F be a bipolynomial surface of bidegree n. q given by some control net N = (bi. the class of polynomial surfaces of total degree m in polar form as in deﬁnition 7. we ﬁrst compute the points b0∗ . q given by some control net N = (bi. that is. Problem 12 (10 pts). j+1 . (i) Prove that F (u. j )(i. j ≤ n.2 and lemma 7. PROBLEMS 293 Problem 10 (20 pts). . the class of bipolynomial surfaces in polar form as in deﬁnition 7.q with respect to the aﬃne frames (r 1 . s2 ). . there are three versions of de Casteljau algorithm to compute a point F (u. s2 ). s1 ) and (r 2 . where bi∗ is obtained by applying the de Casteljau algorithm to the B´zier control points e bi.4. j ≤ n − r. Problem 14 (20 pts).j)∈ p. 0. n given by some control net N = (bi. j + u(1 − v) bi+1. Problem 11 (10 pts). .4.1 is identical to the class of polynomial surfaces as in deﬁnition 7.2. Prove that when E is of ﬁnite dimension. we ﬁrst compute the points b∗0 . r−1 r−1 r−1 r−1 br j = (1 − u)(1 − v) bi.7. This method is known as the direct de Casteljau algorithm. . (ii) Let F be a bipolynomial surface of bidegree p. j+1 + uv bi+1. .n−r inductively as follows: For r = 0. v) when p = q. s1 ) and (r2 . . bi. .2. and for r = 1. b∗q .1. Problem 13 (20 pts). Give the details of the proof of lemma 7.7. In the second version. . give the details of the induction steps. . with 0 ≤ i ≤ p. . . we have br j = bi. j )(i.1. i.q with respect to the aﬃne frames (r 1 . . s2 ). What happens to the direct de Casteljau algorithm when p = q? Modify the direct de Casteljau algorithm to compute F (u. bp∗ .n with respect to the aﬃne frames (r 1 . n. . 0 . all i. q . bp∗ . s1 ) and (r 2 . Deﬁne a sequence of nets (br j )(i.2.1. . . where 0 ≤ i. and then compute bp . j with 0 ≤ i. v) = bn 0 . The ﬁrst version is the direct de Casteljau algorithm described in problem 13. .j)∈ n.

j . Compare the complexity of the three algorithms depending on relative values of p and q. Problem 15 (40 pts). Write a computer program implementing the de Casteljau algorithm for triangular surface patches. . POLYNOMIAL SURFACES where b∗j is obtained by applying the de Casteljau algorithm to the B´zier control points e b0. .294 CHAPTER 7. Write a computer program implementing the de Casteljau algorithm(s) for rectangular surface patches. . . bp. b∗q . Problem 16 (30 pts). with 0 ≤ j ≤ q. j . . . . by applying the de Casteljau algorithm to the control ∗0 points b∗0 . . and then compute bq . .

l i j k Assuming that a is not on one of the edges of ∆rst. given a triangular control net N = (bi. t). 0 . s.k)∈∆m . the computation builds a sort of tetrahedron consisting of m + 1 layers. . which are also denoted as (b0 j. .1 Subdivision Algorithms for Triangular Patches In this section. and thus. k) ∈ ∆m−l .j. . k = f (r. layers are computed in m stages. . the crux of the subdivision method is that the three other faces of the tetrahedron of polar values bl j. i. k + µbl−1 k + νbl−1 k+1 . j. The base layer consists of the original control points in N . i. . . we have bi. . i. j. the single point bm 0. t. s. . j.j. . . . F (a) = bm 0. 1 ≤ l ≤ m. . t). j+1.k)∈∆m−l i. for every (i. . .k)∈∆m . . r. i. 0.Chapter 8 Subdivision Algorithms for Polynomial Surfaces 8. . yield three control nets 295 where (i. k )(i. k = f (a. . we explain in detail how the de Casteljau algorithm can be used to subdivide a triangular patch into subpatches. k = λbl−1 j. Given a reference triangle ∆rst. A similar method is described in Farin [30]. sponding to the original control net. are computed such that bl j. k )(i. . a). An easy induction shows that 0. r. During the last stage. . . s. . . s. i j k Given a = λr +µs+νt in P. k besides the face correi. i+1. . k )(i. . . in order to compute F (a) = f (a. . the points (bl j. in order to obtain a triangulation of a surface patch using recursive subdivision. r. k) ∈ ∆m .j. . bl j. . . . j. The other i. . where λ+µ+ν = 1. a. where at stage l. recall that in terms of the polar form f : P m → E of the polynomial surface F : P → E deﬁned by N . . j. . t. 0 is computed.

k )(l. t. corresponding to the base triangle ∆rat. . . . we found that it was convenient to compute the nets N ast. and N rsa. . s. .. bi. the de Casteljau algorithm can be easily 0. j] = bi. As a triangle.e. . . the net N is listed (from top-down) as f (t. we found it convenient to assume that a triangular net N = (bi. f (r. we wrote a very simple function transnetk. . k )(i. 0 . bi. .. t. . .k)∈∆m . s. . . . s.l. s) . . . . . . . f (r. . s. We call this version of the de Casteljau algorithm the subdivision algorithm. f (r. i.296 CHAPTER 8. r . . . In fact. into a two-dimensional array. . . s) f (s. . and N ars. . t). only a triangular portion of this array is ﬁlled. t). m−1 m . r. k (with i + j + k = m). . corresponding to the base triangle ∆rsa. . . . f (r. f (t.... . . . N art. . . s) m−1 m−1 f (r. . N rat. i m−i i m−i−1 i m−i−1 i m−i where 0 ≤ i ≤ m. N rat = (bl 0. . s.k)∈∆m is represented as the list consisting of the concatenation of the m+1 rows bi. N ast = (bl j. we wrote a very simple function transnetj. . and in order to compute N rsa from N ars. .j.. j. . SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES corresponding to the base triangle ∆ast. t) f (t. 0 )(i. . From an implementation point of view. . adapted to output the three nets N ast. s) m m−1 .j. . . . .l)∈∆m . . This way of representing control nets ﬁts well with the convention that the reference triangle ∆rst is represented as follows: Instead of simply computing F (a) = bm 0. such that net[i. . . j. t) f (r. i. . . 0 . . .. . In implementing such a program. k )(i. . 0. and N rsa = (bl j.k)∈∆m . s). . r . We also have a function convtomat which converts a control net given as a list of rows. . i. .. . m−i .j. r . . . m−i. . . f (r. t). . In order to compute N rat from N art. . r. r ) m The main advantage of this representation is that we can view the net N as a twodimensional array net. . 1.. m−i−1 . r . t. The corresponding Mathematica functions are given below: . . . 0.

m_] := Block[ {cc = {cnet}. aux2. row}. 1. pt]. cc = Drop[cc. n]. m + 1} ]. n. {j. mat = {}. m + 1} ]. *) *) . n} ]. res = {}. aux1. t) transnetj[{cnet__}. Do[ pt = cc[[j]]. res}. aux1 = Append[aux1. ( aux1 = {}.8. s. cc = Drop[cc. ( Do[n = m + 2 . {pt}]. 1. j. m + 1]. mat = Append[mat. j. t) to (s.1. row = {}. row = Append[row. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES r 297 a t Figure 8. Do[ pt = cc[[j]]. n. (* To transpose a triangular net wrt to left edge (* Converts (r.i. {j. {i. row]. row. 1. i.m_] := Block[ {cc = {cnet}. r. i. mat ) ]. pt.1: Reference triangle s (* Converts a triangular net into a triangular matrix *) convtomat[{cnet__}.

1. res = {}. aux1 = ReplacePart[aux1. m + 1]. res = Join[res. n]. m} ]. row]. 1. m + 1} ]. j]. aux1 = ReplacePart[aux1. {i.298 CHAPTER 8. {pt}]. cc = Drop[cc. res}. n} ]. cc = Drop[cc. aux2. aux2.i. {j. Do[n = m + 1 . res ) ]. t. Do[ row = aux1[[j]]. (* To rotate a triangular net *) (* Converts (r. {j. n]. m + 1} ]. ( aux1 = {}. t) to (s. r) *) transnetk[{cnet__}. 1. aux2 = Append[aux1[[j]]. pt]. i. {j. pt. m + 1} ]. j. aux2 = Prepend[aux1[[j]]. Do[ pt = cc[[j]]. row. 1. n. {i. res ) . cc = Drop[cc. j]. n} ]. pt]. Do[ pt = cc[[j]]. Do[ pt = cc[[j]].m_] := Block[ {cc = {cnet}. res = Join[res. row]. 1. aux1 = Append[aux1. {j. {j.i. 1. aux1. Do[ row = aux1[[j]]. aux2. m} ]. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES Do[n = m + 1 . 1. s.

dd = Join[dd. m . 0. dd. k. the degree of the net. i. row0 = {}. m. mm_. 299 We found it convenient to write three distinct functions subdecas3ra. row = Append[row. Do[ pt = barcor[[1]] * net0[[i + 2. with subdivision *) (* this version returns the control net for the ref triangle (a.m . j + 1]]]. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES ]. pt}. m} ]. row. pt]. ccts = Join[ccts. row1. j. ∆art. net0[[1. 0.l} ]. The output is a control net. Do[ dd = {}. {i.m]. computing the control nets with respect to the reference triangles ∆ast. mm. t) *) subdecas3ra[{net__}. subdecas3sa. and subdecas3ta. row1 = {}. net0. ccts = row1. If[m . j + 1]]].l} ]. s. 1. dd] ]. {j. row1]. {l. row2 = {}. 0. row2. ccsr = {}. 0. m . and ∆ars. {j. barcor = {a}. {a__}] := Block[ {cc = {net}.l]. net0 = convtomat[dd. row2 = {}. net0[[1.l} ]. (* de Casteljau for triangular patches. as explained above.l =!= 0. j + 1]] + barcor[[2]] * net0[[i + 1. ccts = {}. (m = mm. cctr = {}. and a correspond to the input control net represented as a list of points. ccts = Join[ccts. j + 1]]. row]. m . {j. and the barycentric coordinates of a point in the parameter plane.8.i . row1 = {}.1. Do[ row1 = Append[row1. l. m} . Do[ row1 = Append[row1. The variables net. row0. net0 = convtomat[cc. row0 = {}. j + 2]] + barcor[[3]] * net0[[i + 1. Do[ row = {}.

{j. j + 2]] + barcor[[3]] * net0[[i + 1. CHAPTER 8. i. m} ]. {i. pt]. Do[ row0 = Append[row0. row2 = {}. l. m . Do[ dd = {}. row. {i.300 ]. 0. If[m . row2. 1]]]. dd = Join[dd. r. cctr = {}.m]. net0. t) *) subdecas3sa[{net__}. 1. {a__}] := Block[ {cc = {net}. {l. cctr = Join[cctr. (m = mm. net0[[i + 1.l]. row2 = {}.l} ]. pt}. m.m .l =!= 0. ccts = {}. row0.i . dd] ]. row = Append[row. net0 = convtomat[cc. ccts ) ]. m . row1 = {}. m} ]. cctr . Do[ row0 = Append[row0. row1. k. with subdivision *) (* this version returns the control net for the ref triangle (a. 0. dd. {i. j. row]. cctr = row0.l} ]. net0[[i + 1. j + 1]]. row0 = {}. Do[ row = {}. row0]. 1]]]. j + 1]] + barcor[[2]] * net0[[i + 1. 0. cctr = Join[cctr. m . SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES (* de Casteljau for triangular patches.l} ]. row0 = {}. ccsr = {}. row1 = {}. net0 = convtomat[dd. 0. mm_. barcor = {a}. Do[ pt = barcor[[1]] * net0[[i + 2.

row1 = {}. {i. {i. {a__}] := Block[ {cc = {net}. m . . row. Do[ row2 = Append[row2. m . m . ccsr = {}. j + 2]] + barcor[[3]] * net0[[i + 1. Do[ row = {}. net0. dd] ]. ccsr = Join[ccsr.l =!= 0. m} ].l].1. m} ]. row = Append[row. m . with subdivision *) (* this version returns the control net for the ref triangle (a. Do[ pt = barcor[[1]] * net0[[i + 2. dd. net0[[i + 1.8. pt}. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES ) ]. row1 = {}. i.m . (m = mm. 0. (* de Casteljau for triangular patches.i + 1]]]. row0 = {}. row2. m .l} ]. j + 1]]. barcor = {a}.l . row2]. ccsr = Join[ccsr. {i.i + 1]]]. If[m . s) 301 *) subdecas3ta[{net__}. ccsr = row2.l} ]. net0 = convtomat[cc.i . r. net0 = convtomat[dd. row0. row2 = {}. row].l} ]. l. m. 0.m]. j. 1. mm_. Do[ row2 = Append[row2. dd = Join[dd. 0. row1. row2 = {}. {l. ccsr ) ]. Do[ dd = {}. row0 = {}. j + 1]] + barcor[[2]] * net0[[i + 1. cctr = {}. pt]. k. {j. ccts = {}. net0[[i + 1. 0.

j + 1]] + barcor[[l. we need to subdivide the triangle ∆rst in such a way that the edges of the reference triangle are subdivided.2]] * net0[[i + 1. k. net0 = convtomat[cc. row]. m. barcor = {a}. j + 1]]. and a list a of mm points given by their barycentric coordinates. m} ]. 0. j. res ) ]. res = dd ]. 0. Do[ pt = barcor[[l. ∆ast. Therefore.302 CHAPTER 8.i . dd. this process does not yield a good triangulation of the surface patch. m . and we will propose a rather eﬃcient method which yields a very regular triangulation.3]] * net0[[i + 1. given a control net net. m . and repeat this process recursively. mm_. and tr. *) If we want to render a triangular surface patch F deﬁned over the reference triangle ∆rst. {a__}] := Block[ {cc = {net}. dd = Join[dd. In fact. in order to compute triangulations that converge to the surface patch. {l. {j. res}. 1/3) is the center of gravity of the triangle ∆rst. pt]. where a = (1/3. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES The following function computes a polar value. we give a method for subdividing a reference triangle using four calls to the de Casteljau algorithm in its subdivision version. and thus such a triangulation does not converge to the surface patch. Do[ row = {}. (m = mm. l.m . pt. and ∆art.1]] * net0[[i + 2. net0 = convtomat[dd.l]. A naive method would require twelve calls. because no progress is made on the edges rs. There are many ways of performing such subdivisions. . If[m . However. row. 1/3.l} ]. j + 2]] + barcor[[l. net0. (* polar value by de Casteljau for triangular patches poldecas3[{net__}. i. N ast and N art using the functions described earlier. st. row = Append[row. it seems natural to subdivide ∆rst into the three subtriangles ∆ars.l} ]. getting new control nets N ars.m]. Do[ dd = {}. 1.l =!= 0. {i.

We rediscovered this algorithm. 1/2. we split ∆art into the two triangles ∆bat and ∆bar. o However. and c = (1/2. b = (1/2. where a = (0. we need the barycentric coordinates of b with respect to the triangle ∆art. the nets N art. This algorithm is also sketched in B¨hm [12] (see pages o 348-349).8. which turns out (0. Then. ∆bac. B¨hm [12]. Boehm and Farin [9]. N brt. 1/2. 1/2). 1/2. as shown in the diagram below: The ﬁrst step is to compute the control net for the reference triangle ∆bat. rt and rs respectively. In the ﬁrst step. 1/2).2: Subdividing a reference triangle ∆rst Subdivision methods based on a version of the de Casteljau algorithm which splits a control net into three control subnets were investigated by Goldman [38]. This can be done using two steps. which is more expensive than the standard 3-dimensional version. and Kahman [10]. and Seidel [75] (see also Boehm. and ∆sca. the nets N bat. 1/2)). It was brought to our attention by Gerald Farin (and it is mentioned at the end of Seidel’s paper [75]) that Helmut Prautzsch showed in his dissertation (in German) [63] that regular subdivision into four subtriangles can be achieved in four calls to the de Casteljau algorithm. The subdivision strategy that we will follow is to divide the reference triangle ∆rst into four subtriangles ∆abt. Farin. are the middle points of the sides st. some of these authors were not particularly concerned with minimizing the number of calls to the de Casteljau algorithm. 1/2. N ast.1. ∆crb. 1/2). split the triangle ∆rst into the two triangles ∆art and ∆ars. and present a variant of it below. and we throw away N ast (which is degenerate anyway). and N ars are obtained. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s 303 sca a bac abt crb c t b r Figure 8. and N bar are obtained. and we throw away N brt. 0). For this. 1/2) is the middle of st. where a = (0. Using the function sdecas3 (with a = (0. 0. and Filip [34]). 1/2. . and they use a version of the de Casteljau algorithm computing a 5-dimensional simplex of polar values. Using the function sdecas3.

1/2). and N cba are obtained. we need the barycentric coordinates of c with respect to the reference triangle ∆bar which turns out to be (−1. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s a ars bat bar t b r s Figure 8.3: Computing the nets N bat. 1). Finally. Using the function subdecas3sa.304 CHAPTER 8. 1. For this. the net N cas is obtained. we apply transposej to the net N bat to get the net N abt. transposek to N cba . 1/2. N bar and N ars from N rst cas a c bat bar t b r Figure 8. and we throw away N car. We can now compute the nets N cbr and N cba from the net N bar. N car. the snet N cbr. which turns out to be (0. Using the function sdecas3. For this.4: Computing the net N cas from N ars We will now compute the net N cas from the net N ars. we need the barycentric coordinates of c with respect to the triangle ∆ars.

N abt is blue. and ∆sca to get the net N bac.6: Subdividing ∆rst into ∆abt. Remark: For debugging purposes.1. and N sca is yellow. and transposek twice to N cas to get the net N sca.5: Computing the nets N cbr and N cba from N bar sca a bac abt crb c t b r Figure 8. In fact. and N sca.8. and N sca. we assigned diﬀerent colors to the patches corresponding to N abt. . using four calls to the de Casteljau algorithm. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s 305 cas a cba bat cbr c t b r s Figure 8. N bac. N crb. we obtained the nets N abt. The subdivision algorithm just presented is implemented in Mathematica as follows. transposej followed by transposek to the net N cbr to get the net N crb. ∆crb. ∆bac. N crb. Thus. and we found that they formed a particularly nice pattern under this ordering of the vertices of the triangles. N crb is green. N bac. N bac is red.

1. barcor2 = {0. stop. s. res}.306 CHAPTER 8. res = res + i] ]. stop = 1. m]. m. 1}. i. res = 1. i = i + 1. 1/2}. debug]. res ) ]. by dividing the base triangle into four subtriangles using the middles of the original sides uses a tricky scheme involving 4 de Casteljau steps basic version that does not try to resolve singularities *) *) *) *) . 1/2. *) barcor1 = {-1.1. barcor2]. (ll = Length[cc]. newnet. and crb *) *) *) *) *) mainsubdecas4[{net__}. art = newnet[[1]]. newnet = sdecas3[cc. stop = 0. i = 1. res = i . debug_] := Block[ {cc = {net}. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES (* Computes the polar degree m associated with a net cnet of sixe (m + 1)*(m + 2)/2 *) netsize[cnet__] := Block[ {cc = cnet. ll. While[i <= s && stop === 1. (* (* (* (* (* Subdivides into four subpatches. newnet = nsubdecas4[art. oldm_. ars. bac. ars = newnet[[3]]. m. If[(res === ll). art. (* (* (* (* Subdivides into four subpatches. by dividing the base triangle into four subtriangles using the middles of the original sides uses a tricky scheme involving 4 de Casteljau steps basic version that does not try to resolve singularities The triangles are abt. sca. barcor2}. m. s = N[Sqrt[2 * ll]]. (* Print[" calling mainsubdecas4 with netsize = ". (m = netsize[cc]. ars. newnet ) ].

The function rsubdiv4 shown below performs n recursive steps of subdivision. debug_] := Block[ {newnet. m]. bat = newnet[[1]]. sca. Using mainsubdecas4. in order to obtain a triangulation of the surface patch speciﬁed by the control net net. (* Print[" calling mainsubdecas4 with netsize = ". sca. crb. (* performs a subdivision step on each net in a list *) . starting from a list consisting of a single control net net. cba. sca = transnetk[sca. newnet = Join[newnet. If[debug === -20. Print["*** bar: ". oldm_.1. bar = newnet[[3]]. barcor1].art]]. The function itersub4 takes a list of nets and subdivides each net in this list into four subnets. m. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES (* The triangles are abt. Print["*** ars: ". barcor2]. If[debug === -20. If[debug === -20. {net2__}. art = {net1}. barcor2]. newnet ) ]. m].8. m.ars]]. {sca}]. Print["*** art: ". ars = {net2}. and crb *) 307 nsubdecas4[{net1__}. newnet = sdecas3[art. {crb}]. 1}. we can repeatedly subdivide the nets in a list of nets. m. crb = transnetk[crb. bac. cbr. cbr = newnet[[1]]. barcor2}. (m = netsize[art]. newnet = sdecas3[bar. bac. crb = transnetj[cbr. m]. m.bar]]. bar. barcor2 = {0. 1/2. m]. abt = transnetj[bat. m]. If[debug === -20. *) barcor1 = {-1. starting with an input control net net. m]. bac = transnetk[cba. cas = subdecas3sa[ars. m]. Print["*** abt: ".abt]]. newnet = Join[{abt}. 1/2}. newnet = Join[newnet. {bac}]. barcor1. bat. sca = transnetk[cas. cba = newnet[[3]]. cas. 1.

recursively splits into 4 patches *) rsubdiv4[{net__}. n} ]. Do[ newnet = itersub4[newnet. it is necessary to triangulate each net. The function rsubdiv4 creates a list of nets. i. (* performs n subdivision steps using itersub4. that is. 0}. debug]. l} ]. In order to render the surface patch. 0. m_. lnet = {}. newnet ) ]. lnet ) ]. ( newnet = {newnet}. mainsubdecas4[cnet[[i]]. i}. debug_] := Block[ {cnet = {net}. This can be done in a number of ways. where each net is a list of points. The subdivision method is illustrated by the following example of a cubic patch speciﬁed by the control net net = {{0. 0. to join the control points in a net by line segments. m. 1. 2}.. (l = Length[cnet]. polygons are considered nontransparent. {i. . debug_] := Block[ {newnet = {net}. l. 0. debug]] . m. 0. Do[ lnet = Join[lnet. 0}. {2. or color the polygons as desired. and is left as an exercise. 2}. The best thing to do is to use the Polygon construct of Mathematica. m_. Indeed. {i. 1. {4.308 CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES *) (* using subdecas4. This is very crucial to understand complicated surfaces. n_.e.. i}. and the rendering algorithm automatically removes hidden parts. splitting into four patches itersub4[{net__}. It is also very easy to use the shading options of Mathematica. i.e. {6.

{4. 2}. 0. 3. {3. 1 iteration {1.7: Subdivision. {5. After only three subdivision steps. 0. 5}. 2. {3. 2}. Another example of a cubic patch speciﬁed by the control net sink is shown below. the triangulation approximates the surface patch very well. 2}. 2}. {2. 0. 0}.8. . 0. 0}}. {2. 2. {4. 2}.1. 2. 6. We show the output of the subdivision algorithm for n = 1. 0}. {6. 2}. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 309 6 y 4 2 50 4 z 3 2 1 0 0 2 x 4 6 Figure 8. 4. 4. sink = {{0. 2.

SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES 6 y 4 2 50 4 z 3 2 1 0 0 2 x 4 6 Figure 8.8: Subdivision. 2 iterations .310 CHAPTER 8.

1. 3 iterations .8. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 311 6 y 4 2 50 4 z 3 2 1 0 0 2 x 4 6 Figure 8.9: Subdivision.

2}. we compute the control net N bat using subdecas3sa. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES {1. In this case. using transnetj. µ′ . and coordinates (λ′ . by inverting a matrix. µ1 . c =λ3 r + µ3 s + ν3 t. −1 ′ λ λ1 λ2 λ3 λ µ′ = µ1 µ2 µ3 µ ν ν1 ν2 ν3 ν′ . and then the control net N abc over the reference triangle ∆abc. ν) of d with respect to ∆rst. given a reference triangle ∆rst and a control net N over ∆rst. In the ﬁrst step. {3. b. ν) with respect to ∆rst. {4. Before discussing such an algorithm. we need to review how a change of reference triangle is performed. we compute the control net N cab using subdecas3ta. c. µ2 . ν ′ ) of d with respect to ∆abc can be computed from the coordinates (λ. 2. 4. This surface patch looks like a sink! Another pleasant application of the subdivision method is that it yields an eﬃcient method for computing a control net N abc over a new reference triangle ∆abc. µ′ . we can compute the new control net N abc over the new reference triangle ∆abc. Such an algorithm is useful if we wish to render a surface patch over a bigger or diﬀerent reference triangle than the originally given one. using subdecas3ra. and (λ3 . 4. ν3 ). 6. with respect to ∆rts. 0}}. b =λ2 r + µ2 s + ν2 t. µ3. In the second step. Let ∆rst and ∆abc be two reference triangles. 2. {3. {2. {5. we easily get ′ λ λ1 λ2 λ3 λ µ = µ1 µ2 µ3 µ′ ν′ ν ν1 ν2 ν3 and thus. 2}. using transnetk. Given any arbitrary point d. (λ2 . since d = λr + µs + νt = λ′ a + µ′ b + ν ′ c and a =λ1 r + µ1 s + ν1 t. this is easily done using determinants by Cramer’s formulae (see Lang [47] or Strang [81]). In the third step. -8}. µ. Thus. and let (λ1 . ν ′ ) with respect to ∆abc. 2. from a control net N over an original reference triangle ∆rst. we compute the control net N ast over the reference triangle ∆ast. if d has coordinates (λ. the coordinates (λ′ . 2}. ν2 ). µ. using three subdivision steps as explained below. ν1 ).312 CHAPTER 8. be the barycentric coordinates of a. and then the control net N abt over the reference triangle ∆abt. 2}. Now.

5 0 -0.10: Subdivision.8.5 1 z 0.1. 3 iterations .5 0 2 x 4 60 2 6 4 y Figure 8. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 313 1.

The function collin checks whether three points in the plane are collinear. compute N cab using subdecas3ta. a ∈ st). / Compute N ast using subdecas3ra.314 CHAPTER 8. The implementation in Mathematica requires some auxiliary functions. This can be easily done by inverting a matrix of order 3. One should also observe that the above method is only correct if a does not belong to st. Finally. we need the coordinates of b with respect to the reference triangle ∆ast. In this case. . Case 2b: a ∈ st and s = a. Compute N ars using subdecas3ta. and in the third step.11: Case 1a: a ∈ st. Case 1b: b ∈ at. ∆rst = ∆rat. we need the coordinates of c with respect to the reference triangle ∆abt. and then N abs using transnetj. as explained earlier. and then N abt using transnetj. Next. and then go back to case 1. Case 1: a ∈ st. compute N abc using subdecas3ta. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s b a t r Figure 8. then compute N bas using subdecas3ra. and b does not belong to at. and implemented in Mathematica. Case 2a: s = a (and thus. b ∈ at / / Note that in the second step. some adaptations are needed. and then N abc using transnetk. In general. / First. and then go back to case 1. First. compute N tas from N ast using transnetk twice. First compute N art using transnetj. Case 1a: b ∈ at. compute N bat using subdecas3sa. We used the strategy explained below.

b ∈ at / s a t r Figure 8.8.12: Case 1b: a ∈ st.1.13: Case 2b: a ∈ st. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES 315 s a b t r Figure 8. s = a .

d2. b. d3. b2 = b[[2]]. d1. || dd === 0. c2 = c[[2]].a1)*(b2 .b2*c1. b_. b3. b3 = b[[3]]. d3. b2. b_. d2 = a1*c2 . b1. c_.a2*b1. c2 = c[[2]]. c1. x2. c3. d1 = (c1 . d2. If[dd === 0. b1 = b[[1]]. dd. (dd = det3[a. res}. d1 = b1*c2 . x1. c2. c1 = c[[1]]. b__. c_] := Block[ {a1. c]. d are column vectors *) solve3[a_. res}. .a2)*(b1 . d2 = (c2 . a2 = a[[2]]. b3. b1 = b[[1]]. a2. b1. a3. c__] := Block[ {a1. x3. a3. a2 = a[[2]]. c3. Print["*** Null Determinant ***"]. c2.b3*d2 + c3*d3. res}. (* Computes a 3 X 3 determinant *) det3[a_. c1. d1. b. b2. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES checks for collinearity of three points in the plane *) collin[a__. d_] := Block[ {a1. res = 0].316 (* CHAPTER 8. x1 = det3[d. c1. If[d1 === d2. res = a3*d1 . It uses the function det3 computing a 3 × 3 determinant.a2). d2. a3 = a[[3]]. b1. ( a1 = a[[1]]. d3 = a1*b2 . b2 = b[[2]].a1). The function solve3 solves a linear system of 3 equations in 3 variables. c]/dd.a2*c1. res ) ]. dd = 10^(-10)]. c1 = c[[1]]. c3 = c[[3]]. d1. c2. b. res = 1. a2. a2. b2. res ]. a1 = a[[1]]. c. (* (* Solves a 3 X 3 linear system *) Assuming a.

(* Now. netb. t) *) (* Print[" a IS on (s. ss. s. then the control net w. b. s. 1}.r. ss. t) using subdecas3ra. m. b. b = newtrig[[2]]. x3 = det3[a. c) *) *) *) *) *) *) *) *) *) *) *) newcnet3[{net__}.r. a. ss. ss = {0. d. *) neta = subdecas3ra[cc. (* In this case. If[collin[a. (* In this case. x3}. nb. 1. m. (newnet = {}. newtrig = {reftrig}. s.t (a. from a net N over the triangle ∆rts. The function newcnet3 uses the auxiliary function fnewaux. a is on (s. a].1. b. 317 Finally. res ) ]. t) *) (* Print[" a NOT on (s. 0}. nc. a. t). c) w. given barycentric coords for new reference triangle (a. r. newnet. {reftrig__}] := Block[ {cc = {net}. 0. *) If[a === ss.r. c. t) and a = s.t (a. the algorithm first computes the control net w. x2. s. c = newtrig[[3]]. t) *) . c. tt = {0. tt] === 0.t (r. b. neta. Want (a. d]/dd. b. (* In this case. b. t are not collinear and b is not on (a. s. t). 0. rr = {1.t (a. res = {x1. tt}. b. 0}. and the control net w. tt]. t) "]. (* (* (* (* (* (* (* (* (* (* (* computes new control net. t) using subdecas3sa and transnetj. a is not on (s. t) "]. t) In the simplest case where a. c) using subdecas3ta and transnetk The other cases are also treated The function returns the net (a. a is on (s. the net is (a.r.8. m_. the function newcnet3 computes a new net N abc over the triangle ∆rts. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES x2 = det3[a. Want (a. c]/dd. t) *) newnet = fnewaux[neta. a = newtrig[[1]]. rr.

*) neta = transnetj[cc. t). s) *) nb = solve3[tt.t) *) *) fnewaux[{net__}. s) *) (* Print[" a on (s. nb]. t) and a <> ss"]. *) neta = transnetk[neta. neta = (a. ss. t) is (t. a_. a. b].s. a]. b. netb = transnetj[netb. (* This routine is used by newcnet3 (* Initially. a. a. tt. a is on (s. tt_] := Block[ {neta = {net}. b. newnet = subdecas3ta[netb. rr. c. t) *) nc = solve3[a. m. (* In this case. a. m]. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES (* Print[" a on (s. *) neta = subdecas3ta[cc. (* In this case. (* Now. r. m. (* Now. a. neta = transnetk[neta. c_. m]. t) and a <> s. the net (a. m]. b is on (a. r. netb = transnetj[netb. ss_. m]. (* Now. tt. the net is (a. t) *) newnet = fnewaux[neta. c. s) *) . b is not on (a. netb = subdecas3sa[neta. *) nb = solve3[a. b]. m]. ss]. netb. nb. newnet = transnetk[newnet. netb = subdecas3ra[neta. b. nc]. m_. (* Now. b. m. t). t) "]. t) *) (* Print[" b NOT on (a. s) *) newnet = fnewaux[neta. m. t) and a = ss"]. s. b. Want (a. newnet ) ]. b. ss. r. tt] === 0. b. (* In this case. tt]. b_. c]. Want (a. nc}. the net is (a. s) *) (* Print[" b IS on (a. nb]. the net is (a. m]. (* Now. ] ]. rr. Want (a. m. newnet. m. t) "]. ( If[collin[b.318 CHAPTER 8. the net is (a.

{1/3. 1).1. 1). s = (0. 0). . 1/3. Using newcnet3 twice to get some new nets net1 and net2. m. monknet = {{0. c]. 1. 1/3. 1. {1/3. where r = (1. -1}. y = v. It is easily shown that the monkey saddle is speciﬁed by the following triangular control net monknet over the standard reference triangle ∆rst. SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES nc = solve3[a. 0. 3). We used the triangles ref trig1 = ((−1. {0. 3)) with newcnet3. and then subdividing both nets 3 times. nc]. 0}. −1. (1. {0. {1/3. . a. 1}}. 319 As an example of the use of the above functions.8. . we get the following picture. {0. {2/3. 1/3. 0. b). b. 0}. . m−i i . newnet = subdecas3ta[netb. 0. 0}. 2/3. −1)) and ref trig2 = ((1. 0}. . 1. 2/3. newnet ) ]. 0. (1. (−1. {2/3. z = u3 − 3uv 2. and t = (0. Note that z is the real part of the complex number (u + iv)3 . 0}. 1. 0. we can display a portion of a well known surface known as the “monkey saddle”. (−1. 0}. speciﬁed by two points a and b. What we need is to compute the control points di = f (a. m] ]. 1. −1. where the curve is the image of a line in the parameter plane. . 1). b. newnet = transnetk[newnet. 0). 0. . 0}. Another nice application of the subdivision algorithms is an eﬃcient method for computing the control points of a curve on a triangular surface patch. ss. {1. deﬁned by the equations x = u. . −1). −1. 0}.

14: A monkey saddle.5 0 0.5 1 1 z 0 -1 -2 Figure 8.320 CHAPTER 8.5 -1 2 -1 1 0. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES y 0 -0. triangular subdivision .5 x -0.

. dm ) are simply the bottom row of the net N rba. but there is a much faster method. since r ∈ ab. We could compute these polar values directly.15: Case 1: r ∈ ab / where m is the degree of the surface. 1. / The corresponding Mathematica program is given below. we simply have to compute N rba using newcnet3. . assuming the usual representation of a triangular net as the list of rows bi. Case 1: r ∈ ab. . .1. 0 . More precisely. Indeed. b). Case 2a: r ∈ ab and a ∈ rt. 0.8. . bi. and we compute N tba using newcnet3. if r does not belong to the line (a. m−i−1 . . / In this case. We compute N sba using newcnet3. assuming that the surface is deﬁned by some net N over the reference triangle ∆rts. m−i. m−i . . SUBDIVISION ALGORITHMS FOR TRIANGULAR PATCHES s b 321 t r a Figure 8. we have the following cases. . . / We compute N rba using newcnet3. Case 2b: r ∈ ab and a ∈ rt. and the control points (d0 . bi. we must have t ∈ ab.

16: Case 2a: r ∈ ab and a ∈ rt s b t r a Figure 8.322 CHAPTER 8.17: Case 2b: r ∈ ab and a ∈ rt / . SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s t a r b Figure 8.

t. Indeed. a3) and b = (b1. t. {i. . bb = b. p−i i q−j j Unlike subdividing triangular patches. trigs = {s. . . trigt = {t. trigs]. . s1 ) and (r2 . subdividing rectangular patches is quite simple. s = {0. . trigt. . s2 ) for the aﬃne line A. net1[[i]]]. 1}. res ) ]. s. The ﬁrst way is . . net1. t = {0.j)∈ p. 1. wrt the reference triangle (r. 323 *) *) *) curvcpoly[{net__}. recall that in terms of the polar form f : (A)p × (A)q → E of the bipolynomial surface F : A × A → E of degree p. .r] === 1. with end points a. q deﬁned by N . *) given two points a = (a1. j = f (r1 . m.q .8. net1 = newcnet3[cc. . aa}. aa}. bb. . r 1 . it is easy to render a triangular patch by rendering a number of u-curves and v-curves. m. Do[ res = Append[res. . . aa. net1 = newcnet3[cc. s2 ). (r = {1. m + 1} ]. for every (i. m. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES (* (* (* (* (* computes a control net for a curve on the surface. aa}. b. 0}. s1 . s. 0. trigr = {r. r2 . 1. b2. res = {}. 1]. bb.r] === 0. . Given two aﬃne frames (r 1 . aa = a. 0}. j) ∈ p. bb}.q .2 Subdivision Algorithms for Rectangular Patches We now consider algorithms for approximating rectangular patches using recursive subdivision. trigt] ] ]. trigs. m_. s2 . bb. a_. trigr]. Using the function curvcpoly. 8. b_] := Block[ {cc = {net}. s1 . trigr. we have bi. j )(i. If[collin[aa. given a rectangular control net N = (bi. r 2 . res.bb. r. 0. . i. net1 = newcnet3[cc. If[collin[aa. . it is possible to subdivide a rectangular control net N in two ways. a2. b3) in the parameter plane. t) We use newcnet3 to get the control points of the *) curve segment defined over [0.2. .

r 2 . and 0 ≤ j ≤ q. . . u. . s2]. This can be achieved in q + 1 calls to the version of the de Casteljau algorithm performing subdivision (in the case of curves). . . with net[i. j = f (r1 . for any u. ∗] and N [u. s2 ). . . we can subdivide the net N into four subnets N [r1 . r2 . s1 ] × [r2 . . . . s1 . we represent a rectangular control net N = (bi. . p−i i q−j j with 0 ≤ i ≤ p. . p−i i q−j j with 0 ≤ i ≤ p. v. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES to compute the two nets N [r1 . . The function makerecnet converts an input net into such a two dimensional array. . r1 . s2 ). s2 . s2]i. and 0 ≤ j ≤ q. q) from a list of length (p + 1)x(q + 1) *) . . where N [∗. bi. . and N [∗. u. . . . . . s2 . q . . as the list of p + 1 rows bi. . v] and N [∗. . v]. . . u. r2 . . r2 . . This has the advantage that we can view N as a rectangular array net. . u. u. where 0 ≤ i ≤ p. . p−i i q−j j with 0 ≤ i ≤ p. and then by splitting each of these two nets using urecdecas. bi. s1 . v. s2]. . j = f (r 1 .324 CHAPTER 8. . s1 . . u. . r2 . s1. v]. (* To make a rectangular net of degree (p. . s2]. j = f (r1 . . v). s1. . by ﬁrst subdviding N into N [∗. . . . This can be achieved in p + 1 calls to the version of the de Casteljau algorithm performing subdivision (in the case of curves). s1 . . . . . r2 . . s2]. . r2 . . r2 . . v]i. given an input net N over [r1 . u. N [u. . j = f (u. v. . and 0 ≤ j ≤ q. . ∗]i. j . s2 ]. N [u. . In order to implement these algorithms. . 0 . s1 . r2. . and 0 ≤ j ≤ q. v] and N [∗. ∗]. s1. s2 ). Then. . where N [r1. v . N [r1 . using the function vrecdecas. r 1 . . . . . r2. This algorithm has been implemented in Mathematica as the function vrecdecas. j] = bi. j )(i. 1 . v. This algorithm has been implemented in Mathematica as the function urecdecas. s1 . r1 . v ∈ A. v. . . s2 . .q . ∗]i. s1 . The second way is to compute the two nets N [∗. . v). r 2 . . . . The four nets have the common corner F (u. v. . . and N [u. v. p−i i q−j j with 0 ≤ i ≤ p.j)∈ p.

row = Append[row. 0. In turn. Do[row = {}. row]. Do[ pt = oldnet[[i*(q + 1) + j + 1]]. p. newnetb.18: Subdividing a rectangular patch makerecnet[{net__}. . q} ]. Print[" p = ". {i. in recdecas"]. newnet = Append[newnet. newnet1. r2 v r1 r2 ur2 uv us1 . pt. i. q_] := Block[ {oldnet = {net}. q_. The subdivision algorithm is implemented in Mathematica by the function recdecas. newnetb = {}. ". these functions use the function subdecas. newneta. n = Length[oldnet]. newnet = {}. j. q. r2 v s1 r2 us1 . newnet ]. n}. p_. q) *) *) recdecas[{oldnet__}. r1_.2. q = ". SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES us2 r1 s2 s1 s2 r1 u. u_.pt]. It turns out that an auxiliary function rectrans converting a matrix given as a list of columns into a linear list of rows. 0. newnet2. p} ]. which performs the subdivision of a control polygon. s2_. ". debug_] := Block[ {net = {oldnet}. newneta = {}. which uses the functions vrecdecas and urecdecas. {j. (* (* De Casteljau algorithm with subdivision into four rectangular nets for a rectangular net of degree (p. s1_. vs2 s1 v 325 Figure 8. newnet}. r2_. v_. row.8. p_. is needed. temp. vs2 r1 v r1 u.

debug]. newnetb = temp[[2]]. u. u. Print[" Subdivided nets: ". (* Converts a matrix given as a list of columns into a linear list of rows *) rectrans[{oldnet__}] := . row1 = {}. bistar = {}. pt. r1_. q). If[debug === 2. newnet2 = urecdecas[newnetb. r2. newnet = Join[{newnet1}. q. bistar = Append[bistar. row2 = temp[[2]].326 CHAPTER 8. {j. j. row1. newnet2 = {}. Do[ pt = net[[(q + 1)*i + j + 1]]. newnet1 = urecdecas[newneta. newnet1 = Join[newnet1. newnet]]. bistar. Subdivision along the u-curves *) *) urecdecas[{oldnet__}. u_. newneta = temp[[1]]. q. newnet2 = Join[newnet2. newnet2 = rectrans[newnet2]. p. u]. row1 = temp[[1]]. newnet ]. Print[" bistar: ". 0. debug_] := Block[ {net = {oldnet}. If[debug === 2. s1. q} ]. q_. newnet]]. p} ]. r1. p. bistar]]. debug]. newnet1 = rectrans[newnet1]. s2. s1_. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES temp = vrecdecas[net. temp. pt]. 0. i. p_. {newnet2}]. Do[ bistar = {}. r1. v. p. (* (* De Casteljau algorithm with subdivision into two rectangular nets for a rectangular net of degree (p. newnet2]. newnet1 = {}. Print[" Subdivided nets: ". If[debug === 2. r1. newnet2. newnet}. row2 = {}. debug]. s1. s1. q. newnet = Join[newnet1. {row1}]. newnet1. row2 = {}. {row2}]. newnet ]. row2. row1 = {}. temp = subdecas[bistar. {i.

8.2. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES Block[ {net = {oldnet}, i, j, pp, qq, row, pt, newnet}, row = {}; newnet = {}; qq = Length[net]; pp = Length[net[[1]]]; Do[ Do[ row = net[[j]]; pt = row[[i]]; newnet = Append[newnet, pt], {j, 1, qq} ], {i, 1, pp} ]; newnet ]; (* (* De Casteljau algorithm with subdivision into two rectangular nets for a rectangular net of degree (p, q). Subdivision along the v-curves *) *)

327

vrecdecas[{oldnet__}, p_, q_, r2_, s2_, v_, debug_] := Block[ {net = {oldnet}, i, j, temp, bstarj, row1, row2, pt, newneta, newnetb, newnet}, bistar = {}; row1 = {}; row2 = {}; newneta = {}; newnetb = {}; Do[ bstarj = {}; row1 = {}; row2 = {}; Do[ pt = net[[(q + 1)*i + j + 1]]; bstarj = Append[bstarj, pt], {j, 0, q} ]; If[debug === 2, Print[" bstarj: ", bstarj]]; temp = subdecas[bstarj, r2, s2, v]; row1 = temp[[1]]; row2 = temp[[2]]; newneta = Join[newneta, row1]; newnetb = Join[newnetb, row2], {i, 0, p} ]; newnet = Join[{newneta}, {newnetb}]; If[debug === 2, Print[" Subdivided nets: ", newnet]]; newnet ]; Given a rectangular net oldnet of degree (p, q), the function recpoldecas computes the polar value for argument lists u and v. This function calls the function bdecas that computes a point on a curve from a control polygon. (* Computation of a polar value for a rectangular net of

328

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES degree (p, q) *)

recpoldecas[{oldnet__}, p_, q_, r1_, s1_, r2_, s2_, u_, v_, debug_] := Block[ {net = {oldnet}, i, j, bistar, bstarj, pt, res}, bistar = {}; Do[ bstarj = {}; Do[ pt = net[[(q + 1)*i + j + 1]]; bstarj = Append[bstarj, pt], {j, 0, q} ]; If[debug === 2, Print[" bstarj: ", bstarj]]; pt = bdecas[bstarj, v, r2, s2]; bistar = Append[bistar, pt], {i, 0, p} ]; If[debug === 2, Print[" bistar: ", bistar]]; res = bdecas[bistar, u, r1, s1]; If[debug === 2, Print[" polar value: ", res]]; res ]; As in the case of triangular patches, using the function recdecas, starting from a list consisting of a single control net net, we can repeatedly subdivide the nets in a list of nets, in order to obtain an approximation of the surface patch speciﬁed by the control net net. The function recsubdiv4 shown below performs n recursive steps of subdivision, starting with an input control net net. The function recitersub4 takes a list of nets and subdivides each net in this list into four subnets. (* performs a subdivision step on each rectangular net in a list (* using recdecas4, i.e., splitting into four subpatches *) recitersub4[{net__}, Block[ {cnet = {net}, lnet (l = Length[cnet]; u Do[ lnet = Join[lnet, ]; lnet ) p_, q_, r1_, s1_, r2_, s2_, debug_] := = {}, l, i, u, v}, = 1/2; v = 1/2; recdecas[cnet[[i]], p, q, r1, s1, r2, s2, u, v, debug]] , {i, 1, l} *)

8.2. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES ]; (* performs n subdivision steps using recitersub4, i.e., splits (* a rectangular patch into 4 subpatches *) *)

329

recsubdiv4[{net__}, p_, q_, n_, debug_] := Block[ {newnet = {net}, i, r1, s1, r2, s2}, (r1 = 0; s1 = 1; r2 = 0; s2 = 1; newnet = {newnet}; Do[ newnet = recitersub4[newnet, p, q, r1, s1, r2, s2, debug], {i, 1, n} ]; newnet ) ]; The function recsubdiv4 returns a list of rectangular nets. In order to render the surface patch, it is necessary to link the nodes in each net. This is easily done, and is left as an exercise. The functions urecdecas and vrecdecas can also be used to compute the control net N [a, b; c, d] over new aﬃne bases [a, b] and [c, d], from a control net N over some aﬃne bases [r1 , s1 ] and [r2 , s2 ]. If d = r2 and b = r1 , we ﬁrst compute N [r1 , s1 ; r2 , d] using vrecdecas, then N [r1 , b; r2 , d] using urecdecas, and then N [r1 , b; c, d] using vrecdecas, and ﬁnally N [a, b; c, d] using urecdecas. It is easy to care of the cases where d = r2 or b = r1 , and such a program is implemented as follows. (* Computes a new rectangular net of degree (p, q) *) (* wrt to frames (a, b) and (c, d) on the affine line (* In the hat space recnewnet[{oldnet__}, p_, q_, a_, b_, c_, d_, debug_] := Block[ {net = {oldnet}, temp, newnet1, newnet2, newnet3, newnet4, rnet, r1, s1, r2, s2, ll, i}, r1 = 0; s1 = 1; r2 = 0; s2 = 1; newnet1 = {}; newnet2 = {}; newnet3 = {}; newnet4 = {}; If[d =!= r2, temp = vrecdecas[net, p, q, r2, s2, d, debug]; newnet1 = temp[[1]], newnet1 = net ];

*) *)

330

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

If[debug === 2, Print[" newnet1: ", newnet1]]; If[b =!= r1, temp = urecdecas[newnet1, p, q, r1, s1, b, debug]; newnet2 = temp[[1]], newnet2 = newnet1 ]; If[debug === 2, Print[" newnet2: ", newnet2]]; If[d =!= r2, temp = vrecdecas[newnet2, p, q, r2, d, c, debug]; newnet3 = temp[[2]], temp = vrecdecas[newnet2, p, q, r2, s2, c, debug]; newnet3 = temp[[1]] ]; If[debug === 2, Print[" newnet3: ", newnet3]]; If[b =!= r1, temp = urecdecas[newnet3, p, q, r1, b, a, debug]; newnet4 = temp[[2]], temp = urecdecas[newnet3, p, q, r1, s1, a, debug]; (* needs to reverse the net in this case *) rnet = temp[[1]]; newnet4 = {}; ll = Length[rnet]; Do[ newnet4 = Prepend[newnet4, rnet[[i]]], {i, 1, ll} ] ]; If[debug === 2, Print[" newnet4: ", newnet4]]; newnet4 ]; Let us go back to the example of the monkey saddle, to illustrate the use of the functions recsubdiv4 and recnewnet. It is easily shown that the monkey saddle is speciﬁed by the following rectangular control net of degree (3, 2) sqmonknet1, over [0, 1] × [0, 1]: sqmonknet1 = {{0, 0, 0}, {0, 1/2, 0}, {0, 1, 0}, {1/3, 0, 0}, {1/3, 1/2, 0}, {1/3, 1, -1}, {2/3, 0, 0}, {2/3, 1/2, 0}, {2/3, 1, -2}, {1, 0, 1}, {1, 1/2, 1}, {1, 1, -2}} Using recnewnet, we can compute a rectangular net sqmonknet over [−1, 1] × [−1, 1]: sqmonknet = {{-1, -1, 2}, {-1, 0, -4}, {-1, 1, 2}, {-1/3, -1, 2}, {-1/3, 0, 0}, {-1/3, 1, 2}, {1/3, -1, -2}, {1/3, 0, 0}, {1/3, 1, -2}, {1, -1, -2}, {1, 0, 4}, {1, 1, -2}} Finally, we show the output of the subdivision algorithm recsubdiv4, for n = 1, 2, 3. The advantage of rectangular nets is that we get the patch over [−1, 1] × [−1, 1] directly, as opposed to the union of two triangular patches.

8.2. SUBDIVISION ALGORITHMS FOR RECTANGULAR PATCHES

331

y 0 -0.5 -1 2

-1 1 0.5

x -0.5 0 0.5 1

1

z

0

-1

-2

Figure 8.19: A monkey saddle, rectangular subdivision, 1 iteration

332

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

y 0 -0.5 -1 2

-1 1 0.5

x -0.5 0 0.5 1

1

z

0

-1

-2

Figure 8.20: A monkey saddle, rectangular subdivision, 2 iterations

8.3. PROBLEMS

333

The ﬁnal picture (corresponding to 3 iterations) is basically as good as the triangulation shown earlier, and is obtained faster. Actually, it is possible to convert a triangular net of degree m into a rectangular net of degree (m, m), and conversely to convert a rectangular net of degree (p, q) into a triangular net of degree p + q, but we will postpone this until we deal with rational surfaces.

8.3

Problems

Problem 1 (10 pts). Let F : A2 → A3 be a bilinear map. Consider the rectangular net N = (bi, j ) of bidegree p, q deﬁned such that bi, j = F i j , p q

for all i, j, where 0 ≤ i ≤ p and 0 ≤ j ≤ q. Prove that the rectangular surface deﬁned by N is equal to F (we say that rectangular patches have bilinear precision). Problem 2 (20 pts). Give a method for recursively subdividing a triangular patch into four subpatches, using only three calls to the de Casteljau algorithm. Show the result of performing three levels of subdivision on the orginal reference triangle (r, s, t). Problem 3 (20 pts). Investigate the method for recursively subdividing a triangular patch into six subpatches, using four calls to the de Casteljau algorithm as follows: ﬁrst apply the subdivision version of the de Casteljau algorithm to the center of gravity of the reference triangle, and then to the middle of every side of the triangle. Show the result of performing three levels of subdivision on the orginal reference triangle (r, s, t). Problem 4 (40 pts). Implement your own version of the de Casteljau algorithm splitting a triangular patch into four triangles, as in section 8.1. Use your algorithm to draw the surface patch over [−1, 1] × [−1, 1] deﬁned by the following control net domenet3 = {{0, 0, 0}, {3/4, 3/2, 3/10}, {-1/4, -1/2, 3/10}, {1/2, 1, 0}, {3/2, 0, 3/10}, {1/2, 1/2, 1/2}, {5/4, -1/2, 3/10}, {-1/2, 0, 3/10}, {1/4, 3/2, 3/10}, {1, 0, 0}}; Problem 5 (40 pts). Implement your own version of the de Casteljau algorithm splitting a rectangular patch into four rectangles, as in section 8.2. Problem 6 (40 pts). Given a surface speciﬁed by a triangular net, implement a program drawing the u-curves and the v-curves of the patch over [a, b] × [c, d], using the function curvcpoly.

334

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

y 0 -0.5 -1 2

-1 1 0.5

x -0.5 0 0.5 1

1

z

0

-1

-2

Figure 8.21: A monkey saddle, rectangular subdivision, 3 iterations

8.3. PROBLEMS

335

Problem 7 (20 pts). Prove that any method for obtaining a regular subdivision into four subpatches using the standard de Casteljau algorithm requires at least 4 calls. Problem 8 (20 pts). Let F be a surface of total degree m deﬁned by a triangular control net N = (bi, j, k )(i,j,k)∈∆m , w.r.t. the aﬃne frame ∆rst. For any n points pi = ui r + vi s + wi t (where ui + vi + wi = 1), deﬁne the following (n + 2)-simplex of points bl1 ,...,ln where i + j + i,j,k k + l1 + . . . + ln = m, inductively as follows: b0,...,0 = bi,j,k , i,j,k

1 bi,j,k

l ,...,lh+1 ,...,ln

= uh bl1 ,...,lh ,...,ln + vh bl1 ,...,lh ,...,ln + wh bl1 ,...,lh ,...,ln , i,j,k+1 i,j+1,k i+1,j,k

where 1 ≤ h ≤ n.

**(i) If f is the polar form of F , prove that bl1 ,...,ln = f (r, . . . , r , s, . . . , s, t, . . . , t, p1 , . . . , p1 , . . . , pn , . . . , pn ). i,j,k
**

i j k l1 ln

(ii) For n = 0, show that F (p) = bn , as in the standard de Casteljau algorithm. 0,0,0 For n = 1, prove that (bl1 j, 0 )(i,j,l1 )∈∆m is a control net of F w.r.t. ∆rsp1 , (bl1 j, k )(j,k,l1)∈∆m i, 0, is a control net of F w.r.t. ∆stp1 , and (bl1 0, k )(i,k,l1 )∈∆m is a control net of F w.r.t. ∆trp1 . i, For n = 2, prove that (bl1 ,l20 )(i,l1 ,l2 )∈∆m is a control net of F w.r.t. ∆rp1 p2 , (bl1 ,l20 )(j,l1 ,l2 )∈∆m i, 0, 0, j, l1 ,l2 is a control net of F w.r.t. ∆sp1 p2 , and (b0, 0, k )(k,l1 ,l2 )∈∆m is a control net of F w.r.t. ∆tp1 p2 . For n = 3, prove that (bl1 ,l2 ,l3 )(l1 ,l2 ,l2 )∈∆m is a control net of F w.r.t. ∆p1 p2 p3 . 0, 0, 0 Problem 9 (20 pts). Given any two integers p, q ≥ 1, we deﬁne the rectangular grid as the grid consisting of all points of coordinates gi,j = i j , p q ,

p,q p,q

**where 0 ≤ i ≤ p and 0 ≤ j ≤ q. Prove that the rectangular patch G deﬁned by the property that
**

p q

satisﬁes

(x, y) =

i=0 j=0

q Bip (x)Bj (y) gi,j

for all (x, y) ∈ A , where

2

Bip

and

q Bj

are Bernstein polynomials. Given any rectangular net

**N = (bi,j )0≤i≤p, 0≤j≤q in A2 , we deﬁne the map from A2 to A2 as
**

p q q Bip (x)Bk (j) bi,j . i=0 j=0

(x, y) →

336

CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES

Show that this map behaves like a global deformation of the original rectangular grid p,q . Show how to use such maps to globally deform a B´zier curve speciﬁed by its control points e (c0 , . . . , cm ) (where each ci is inside the grid deﬁned by p,q ).

Chapter 9 Polynomial Spline Surfaces and Subdivision Surfaces 9. and to view the curve as the result of joining curve segments deﬁned over these intervals. In fact. We conlude this chapter with a section on subdivision surfaces (Section 9. As in the case of curves. We will discover that C n continuity is only possible if 2m ≥ 3n + 2. in the line of de Boor control points. but on the positive side. we will ﬁnd that C n continuity is only possible if m ≥ 2n + 2. and even if we just want to subdivide the plane into convex regions. In the case of a curve. there is a tremendous variety of ways of doing so. where the edges are line segments.4). Thus. we will ﬁnd necessary and suﬃcient conditions on polar forms for two surface patches to meet with C n continuity. we will not be able to propose a nice scheme involving control points. this is far more subtle than it is for curves. we will restrict our attention to subdivisions of the plane into convex polygons. However. we will see that there is a nice scheme involving de Boor control points. First. we will basically only consider subdivisions made of rectangles or of (equilateral) triangles. We will then consider spline surfaces of degree m based on a rectangular subdivision of the plane. for bipolynomial splines of bidegree n. Subdivision surfaces provide an attractive alternative to spline surfaces in modeling applications where the topology of surfaces is rather complex. n meeting with C n−1 continuity. we will take a closer look at spline surfaces of degree m based on a triangular subdivision of the plane. but unfortunately. To the best of our knowledge. We also need to decide what kind of continuity we want to enforce. This time. and where the initial control polyhedron consists 337 . we will ﬁrst consider parametric continuity. Next. in the case of a surface. and the only reasonable choice is to divide the aﬃne line into intervals. We will ﬁnd necessary conditions on spline surfaces of degree m = 3n + 1 to meet with C 2n continuity. ﬁnding such a scheme is still an open problem. the parameter space is the aﬃne plane P.1 Joining Polynomial Surfaces We now attempt to generalize the idea of splines to polynomial surfaces. As we shall see. the parameter space is the aﬃne line A. This is not quite as good as in the triangular case.

. . that is. . s). except for a ﬁnite number of so-called extraordinary points. Let A and B be two adjacent convex polygons in the plane. → → for all −1 . s) iﬀ their polar forms fA : P m → E and fB : P m → E agree on all multisets of points that contain at least m − k points on the line (r. s). . .2. . FA and FB join with C k continuity along (r. for any point a ∈ P. Using this fact. and we concentrate on the more diﬃcult case.1. Dui F (a) = Du1 . s). which. in the limit. . . . a. We present three subdivision schemes due to Doo and Sabin [27. . s). . . uk . This is not a real restriction. Given two polynomial surfaces FA and FB of degree m. . and let (r. . . . . we restrict our attention to total degree polynomial surfaces. not just triangles or rectangles.4. . . . . Recall that lemma B. recall from section 11. iﬀ fA (u1 . . 29.338CHAPTER 9. . yields a smooth surface (or solid). . . s). where 0 ≤ i ≤ k. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES of various kinds of faces. . In this section. that is. am ∈ (r. . . . notably. we give a crash course on discrete Fourier transforms and (circular) discrete convolutions. uk ∈ P. . . where it is tangent plane continuous. . . . s) be the line segment along which they are adjacent (where r. a). . iﬀ FA and FB agree to kth order for all a ∈ (r. . a) = fB (u1 . Let A and B be two adjacent convex polygons in the plane.5 tells us that for any a ∈ (r.1. We discuss Loop’s convergence proof in some detail. . FA and FB join with C k continuity along (r. s ∈ P are distinct vertices of A and B). Given two polynomial surface F and G of degree m. . a computer model of a character from the short movie Geri’s game.1 that we say that F and G agree to kth order at a. . uk . for all u1 . . . am ) = fB (u1 . and for this. It is also easier to deal with bipolynomial surfaces than total degree surfaces. m−k m−k for all u1. s) be the line segment along which they are adjacent (where r.1. . Subdivision schemes typically produce surfaces with at least C 1 -continuity. . Lemma 9. . −i ∈ R2 . . . Dui G(a). Geri. uk . iﬀ fA (u1 . u u Deﬁnition 9. since it is always possible to convert a rectangular net to a triangular net. and to apply recursively a subdivision scheme. Catmull and Clark [17]. . and Charles Loop [50]. ak+1 . . ak+1. The idea is to start with a rough polyhedron speciﬁed by a mesh (a collection of points and edges connected so that it deﬁnes the boundary of a polyhedron). a. 28]. . and let (r. . iﬀ Du1 . uk ∈ P. we can prove the following crucial lemma. . . A number of spectacular applications of subdivision surfaces can be found in the 1998 SIGGRAPH Conference Proceedings. am ). FA and FB agree to kth order at a iﬀ their polar forms fA : P m → E and fB : P m → E agree on all multisets of points that contain at least m − k copies of a. and all ak+1 . s ∈ P are distinct vertices of A and B). . Given two polynomial surface FA and FB of degree m. uk .

uk ∈ P. ak+1 . . s) iﬀ fA (pi q j r k sl ) = fB (pi q j r k sl ). . sharing the edge (r. . FA and FB agree to kth order at a iﬀ fA (u1 . . a. . Let A = ∆prs and B = ∆qrs be two reference triangles in the plane. Because this holds for all u1 . . . . . .4. we just have fA (r k sm−k ) = fB (r k sm−k ). .1: Two adjacent reference triangles Proof. . . we obtain the necessary and suﬃcient conditions on control nets for FA and FB for having C n continuity along (r. . . . . uk . . . a. . for every a ∈ (r.1. . .1. . a). . uk . . . s). As we just said. . . However. uk ∈ P. uk ) and FB (u1. . as desired. lemma 9. . . . then the corresponding polar forms fA (u1 . . a) m−k as aﬃne polynomial functions FA (u1 . . . . if we consider a → fA (u1 . ak+1. . . m−k m−k for all u1. . . . for all i. . .2. . . . s). . . . uk . . s). . and k + l ≥ m − n (0 ≤ n ≤ m). . As a consequence of lemma 9. Then. am ). uk . uk . s). . a) = fB (u1 . . s). . a) m−k and a → fB (u1 . . uk ) and fB (u1 . for all u1. . . . a. we have shown that fA (u1 . . l such that i + j + k + l = m. . j. s). am ) = fB (u1 . . . . . . uk .1. . . . .1 shows that if these functions agree on all points in (r. . . am ∈ (r. lemma 4. . . uk ). .9. uk ) agree for all points ak+1 . . and all ak+1 .2 tells us that FA and FB join with C n continuity along (r. am ∈ (r. uk ∈ P. k. . . . . . . . . For n = 0. JOINING POLYNOMIAL SURFACES s 339 p A B q r Figure 9. . a.

r). s. s). r. s). s). s). (fA.e. s). p. but this is not enough to ensure C 1 continuity. n = 2. Denoting these common polar values as fA. . q. s)).B (q. q. fA (s. s. (fA.B (r. r) = fB (q. s). fA (p. fA. s) = fB (q. fA (r. s) = fB (s. fA.B (p. s) = fB (r. In addition to the 10 constraints necessary for C 1 continuity. ·).B (p. r). fA (p. q. r. s) = fB (p. r). 2. the vertices of each of these diamonds must be coplanar. r).B (q. i. r) = fB (p.B (s. s. r). p. fA (p. s). r. s. q.B (s. fA. fA. r). fA (p. r)). r). s. r. fA. r.B (·. s). r. s) = fB (r. (fA. s) = fB (p. r. fA (q. The above conditions are depicted in the following diagram: We can view this diagram as three pairs of overlaping de Casteljau diagrams each with one shell. r). s. fA (q. fA (q. s. s) = fB (q. For C 1 continuity. p. which means that the control points of the boundary curves along (r. r) = fB (p. q.B (s. r. r. r) = fB (q. s). q. r) = fB (p. r. fA. r. s). s). the two surfaces join along this curve! Let us now see what the continuity conditions mean for m = 3 and n = 1. s). s. ·. fA. s). fA (q. note that these polar values naturally form the vertices of three diamonds. s)). r. s). we have 6 additional equations among polar values: fA (p. This is natural. Let us now consider C 2 continuity. s. r. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES with 0 ≤ k ≤ m. s).B (r. r) = fB (r. s. the following 10 polar values must agree: fA (r. s) = fB (q. q. s.B (q. s) = fB (p.. r. fA. fA (q. q. r. r. r. fA (r. q. s. s) = fB (p. r.B (p. r. fA (p. fA. In particular. p. r.340CHAPTER 9. s) must agree. r. 3.B (r. s). s). images of the diamond (p. fA (p. r).

q.B (q.2: Control nets of cubic surfaces joining with C 1 continuity . s) fA. s) fA.B (p.B (q. s) fA.B (q.B (s. r. p. s) fA.B (p. s. JOINING POLYNOMIAL SURFACES 341 fA. s) fB (q. p. r. s. p. r) fA (p.9. p) Figure 9. r.B (r. r. r) fB (q.B (r. r) fA (p. q. r) fA.B (r. s) fA. s) fA. r) fB (q. q) fA (p. r.1. s. s) fA. r. q.B (p. s) fA. s.

q. q. fA. images of the diamond (p. p. r). r. p.B (p. p. q. but this is not enough to ensure C 2 continuity. q. The above conditions are depicted in the following diagram: We can view this diagram as two pairs of overlaping de Casteljau diagrams each with two shells. Note that the polar values fA (p. s). p.B (p. fA. s) fA.B (p. s). p) Figure 9. the vertices of each of these diamonds must be coplanar. p. s).B (q. s)). r) = fB (p. s) = fB (p. denoting these common polar values as fA.B (p. r).B (s. r). s) are not control points of the original nets. p. r) fB (q.3: Control nets of cubic surfaces joining with C 2 continuity Again. r) and fA (p. q. q. r) fA. q. (fA. r)). fA. q. In particular. fA. fA.B (s. . fA.342CHAPTER 9. q. q) fA (p. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES fA. p.B (q. q. p. For example.B (r.B (·. r) fA.B (r. s). p. p.B (p. s) fA.B (p. s) fA. ·.B (q. p. ·).B (q. note that these polar values naturally form the vertices of four diamonds. the left two diamonds are (fA.

e. 9.9. we will consider surface patches of degree m joining with the same degree of continuity n for all common edges. SPLINE SURFACES WITH TRIANGULAR PATCHES p t B 343 C A q D s Figure 9. if the parameter plane is divided into equilateral triangles. The proof is more complicated than it might appear. p). spline curves have local ﬂexibility. and B and C join with C n continuity along (s. given any 4 adjacent patches as shown in the ﬁgure below. For simplicity. recall that it was possible to achieve C m−1 continuity with curve segments of degree m.2. Surface splines consisting of triangular patches of degree m ≥ 1 joining with C n continuity cannot be locally ﬂexible if 2m ≤ 3n + 1. This means that given any four . we study what happens with the continuity conditions between surface patches.2. Also. In the case of surfaces. in the case of C 3 continuity. First. i. We assume that the parameter plane has its natural euclidean structure. A and B join with C n continuity along (s. there is no reference triangle containing all of these three edges! Lemma 9. More precisely. n = 3. or triangles. which means that fA = fB . which means that changing some control points in a small area does not aﬀect the entire spline curve. then fA and fB are completely determined. then it is generally impossible to construct a spline surface. q). the situation is not as pleasant. each with n shells.1. The diﬃculty is that even though A and D join with C n continuity along (s. In the case of spline curves. if fC and fD are known.. we will prove that if 2m ≤ 3n + 1.4: Constraints on triangular patches Finally.2 Spline Surfaces with Triangular Patches In this section. In general. all the control points agree. We now investigate the realizability of the continuity conditions in the two cases where the parameter plane is subdivided into rectangles. C n continuity is ensured by the overlaping of m − n + 1 pairs of de Casteljau diagrams. t).

C as in the previous ﬁgure. Recall that these conditions are fA (si tj pk q l ) = fB (si tj pk q l ) for all k + l ≤ n. Indeed. These conditions do not seem to be suﬃcient to show that fA and fB are completely determined. where i + j + l = m in the ﬁrst case. j1 !j2 !j3 ! where k + l ≤ n. and fA (si tj pk q l ) = fB (si tj pk q l ). the condition 2m ≤ 3n + 1 becomes 2m ≤ 6h + 1. fB (si tj pk q l ) is determined for all j + l ≤ n. there is at most one free control point for every two internal adjacent patches. The idea is to show that the two control nets of polar values fA (si tj q l ) and fB (si tj pk ) are completely determined. In summary. and fB (si tj pk q l ) = fC (si tj pk q l ).2.e. Replacing p by s + t − q on the left-hand side and q by s + t − p on the right-hand side. t) have the same middle point. and i + j + k + l = m. fA (si tj pk q l ) is determined for all j + k ≤ n. we get (−1)i3 i1 +i2 +i3 =k k! fA (si+i1 tj+i2 q l+i3 ) = i1 !i2 !i3 ! j (−1)j3 1 +j2 +j3 =l l! fB (si+j1 tj+j2 pk+j3 ). but we haven’t yet taken advantage of the symmetries of the situation. since A and B join with C n continuity along (s. which are the worse cases.1. A similar rewriting of the C n -continuity equations between A and D and between C . for all k + l ≤ n. and i + j + k = m in the second case. If we can show that the polar values for FA and FB are completely determined when n = 2h and m = 3h. or when n = 2h + 1 and m = 3h + 2. B. Furthermore. t). Since D and A meet with C n continuity along (s. p + q = s + t. A. for all j + k ≤ n (where i + j + k + l = m). q). when 2m = 3n + 2. fA (si tj pk q l ) = fD (si tj pk q l ). If n = 2h. Proof. p). we will be done. This is an equation relating some aﬃne combination of polar values from a triangular net of (k+1)(k+2) polar values associated with A and some 2 aﬃne combination of polar values from a triangular net of (l+1)(l+2) polar values associated 2 with B. q) and (s. Similarly. which implies m ≤ 3h + 2. the condition 2m ≤ 3n + 1 becomes 2m ≤ 6h + 4. using the identity p + q = s + t. for all j + l ≤ n (where i + j + k + l = m). POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES adjacent patches D. we get fA (si tj pk q l ) = fB (si tj pk q l ). which implies that m ≤ 3h.344CHAPTER 9. if fD and fC are known. i. note that (p. We will ﬁrst reformulate the C n -continuity conditions between A and B. for all k + l ≤ n. If n = 2h + 1. then fA and fB are completely determined. by lemma 9. and B and C join with C n continuity along (s.

We explain how the h + 1 polar values on the edge (u.5).5: Determining polar values in A and B and B shows that the polar values fA (sm−j−l tj q l ) are known for 0 ≤ l ≤ m−j and 0 ≤ j ≤ n. q2 . v. and j = h + 1. On ﬁgure 9. u. w). v. and there are (m − n)2 = h2 such polar values. the polar values of the form fA (sm−j−l tj q l ) are located in the trapezoid (s. SPLINE SURFACES WITH TRIANGULAR PATCHES p p2 z w t 345 v p1 y u x q2 B A q1 q s Figure 9. When k = h + 1. observe that in the equation (−1)i3 i1 +i2 +i3 =h+1 (h + 1)! fA (si1 th+1+i2 q h+i3 ) = i1 !i2 !i3 ! (−1)j3 j1 +j2 +j3 =h h! fB (sj1 th+1+j2 ph+1+j3 ). The proof proceeds by induction on h. v. w) being analogous. u. the polar values associated with A and B that are not already determined are contained in the diamond (t. w. w) can be determined inductively from right to left and from bottom up (referring to ﬁgure 9. x. If n = 2h + 1 and m = 3h + 2. w) can be computed from the other polar values inside (s. the computation of the h polar values on the edge (v. Assume inductively that the h2 polar values inside the diamond (t. In either case. v. since fA (si tj ) = fB (si tj ) along (s. v. y) and the polar values of the form fB (sm−j−k tj pk ) are located in the trapezoid (s. q.9. s). p1 . v.2. q1 . u. u. u. z. and there are (m − n)2 = (h + 1)2 such polar values. and (v. the polar values in the diamond (t. v). . and that the polar values fB (sm−j−k tj pk ) are known for 0 ≤ k ≤ m − j and 0 ≤ j ≤ n. u. If n = 2h and m = 3h. s) and (s. p2 . w) contains (h + 1)2 polar values.5. p. j1 !j2 !j3 ! the only undetermined polar value is the one associated with u. we consider the case where n = 2h + 1 and m = 3h + 2. v) can be computed. i = 0. the polar values associated with A and B that are not already determined are also contained in the diamond (t. y). w). First. w) and not on (u. so that the diamond (t. l = h. t) (where i + j = m). namely fA (t2h+2 q h ). v.

the problem remains to actually ﬁnd a method for contructing spline surfaces when 2m = 3n + 2. → Given a polynomial surface F : P → E of degree m. v. p2 . Knowing that we must have 2m ≥ 3n + 2 to have local ﬂexibility. v. x.346CHAPTER 9. y. for any vector − ∈ R2 . and that once they are determined. v) can be computed from the equation obtained by letting k = l1 + 1. This time. y. both polar values fA (t2h+1 q h ) and fB (t2h+1 ph ) are undetermined. and j = 2h + 1 − l1 . z. Generally. After a similar computation to determine the polar values fB (sh−l1 t2h+2 pl1 ). p1 . y. u. q2 . we get a strictly smaller diamond of h2 polar values contained in (t. we attempt to understand better what are the constraints on triangular patches when n = 2N and m = 3N + 1. w). where 1 ≤ l1 ≤ h. s). Thus. which implies that n = 2h and m = 3h + 1. s) and (s. so that the diamond (t. s) and (s. the polar value fA (sh−l1 t2h+2 q l1 ) along (u. w) contains h polar values. y. q1 . Such a method using convolutions is described by Ramshaw [65]. When 2m = 3n + 2. to ﬁnd any reasonable scheme to constuct triangular spline surfaces. q1 . but there is an equation relating them. s). but it is not practical. w) can be computed using only C n−1 -continuity constraints. The key is to look at “derived surfaces”. and thus there is at most one degree of freedom for both patches FA and FB . if 0 ≤ l1 ≤ h. the polar value associated with u is fA (t2h+1 q h−1 ) and the polar value associated with w is fB (t2h+1 ph−1 ). note that C n -continuity was only needed to compute the polar values associated with u and w. 2 In both cases. p1 . POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES since all the other polar values involved in this equation are inside (s. Instead of presenting this method. fA (t2h+2 q h ) can be computed. and we use the induction hypothesis to compute these polar values. q2 . j1 !j2 !j3 ! since all the other polar values involved are inside (s. all the other polar values in the diamond (t. x. z. the argument for the previous case can be used. p2 . Thus. We now consider the case n = 2h and m = 3h. l = l1 . u. and thus. (−1)i3 i1 +i2 +i3 =l1 +1 (l1 + 1)! fA (sh−l1 +i1 t2h+1−l1 +i2 q l1 +i3 ) = i1 !i2 !i3 ! (−1)j3 j1 +j2 +j3 =l1 l1 ! fB (sh−l1 +j1 t2h+1−l1 +j2 pl1 +1+j3 ). u. v. the proof proceeds by induction on h. and in fact. but only C 2h−1 -continuity between A and B. Again. the map u − → → Du F : P → E deﬁned by the directional derivative of F in the ﬁxed direction − . this argument uses C 2h continuity between A and D and between B and C. i = h − l1 . is a u .

the derived surfaces u Du Du1 . Dun G meet with C 0 conti→ nuity along L. then Du F and Du G also meet u n with C continuity along L. . . and if − is parallel to L. . . for every triangle A. −n be any vectors in R2 .9. and such that . Lemma 9. if F and G meet → with C 0 continuity along a line L. by lemma 9.6: A stripe in the parameter plane for triangular patches 347 polynomial surface of degree m − 1. Proof. Given two triangular surfaces F : P → E and G : P → E. . Let −1 .3. called a derived surface of F . SPLINE SURFACES WITH TRIANGULAR PATCHES − → β B − → α A C − → γ Figure 9. and since F and G agree on L. → → Proof. → → → → α β γ 0 We have the following lemma. the following lemmas show that if F and G join with → C n continuity along a line L and if − is parallel to L.3.2. β . Given a spline surface F : P → E of degree 3n + 1 having C 2n continuity. − . and such that − + β + − = 0 . if F and G meet → with C n continuity along a line L. Dun F and Du1 . Du1 . Dun F and Du Du1 . We can now derive necessary conditions on surfaces F and G of degree 3n + 1 to join → → − → with C 2n continuity. β . . parallel to the three directions of the edges of triangles in the α γ → → − → → − triangular grid. Given two triangular surfaces F : P → E and G : P → E. . . u u then it is clear that the derived surfaces Du1 . . . and if − ∈ R2 is parallel to L. Since the various directional derivatives commute. Dun Du F and Du1 . then Du F and Du G also join with C n u continuity along L. the derived surface α γ the edges of triangles in the triangular grid.2. − . for → → − → any three vectors − . . then Du F and Du G also u 0 meet with C continuity along L. we can compute Du F (a) by evaluating F at a and at points near a on L.2. . parallel to the three directions of α γ − +− +− =− . . Lemma 9. Taking the derivative in the direction − .2. Dun Du G meet with C 0 continuity. If a ∈ L. . we will get the same value for Du F (a) and Du G(a). If F and G meet with C n continuity along L. Lemma 9. Consider three vectors − .4. .2. Given two triangular surfaces F : P → E and G : P → E.2. Dun G also meet with C 0 continuity. which means that Du F and Du G also meet with C n continuity along L. .

Thus.3 that. Subtracting the 3(n+1)n conditions. and the derived surface Dn+1 Dn+1 F is the → is the same in any stripe in the direction α A α γ − → same in any stripe in the direction β . in order to ﬁnd spline surfaces of degree 3n + 1 with C 2n continuity. we see that each patch FA 2 2 is speciﬁed by 3(n + 1)2 control points. Proof.4. . A⊙ where η ∈ (P)⊙(n−1) .2. . and by applying lemma 9. The same argument applies to F and F . they join γ β − → with C n−1 -continuity along their common boundary in the direction β . a.2. Thus. . if fA : P m → E is the polar form of FA : P → E. −1 . saying that Dn+1 Dn+1 FA = 0 is equivalent α β to saying that →n+1 − → →n+1 ⊙ − f (− α β ⊙ η) = 0 . they − → → must be identical. the derived surface γ γ β β Dn+1 Dn+1 FA has a constant value in any horizontal stripe.348CHAPTER 9. α γ α γ β β independent. it is natural to attempt to satisfy the conditions − → Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = 0 .3 n + 1 times. with the roles of − and β γ B C reversed. these conditions are 2 We can show that these conditions are indeed independent using tensors. setting it to zero → → − → α γ corresponds to (n+1)n conditions.5. . β . and fA : (P)m → E is the homogenized version of fA . A surface of degree 3n + 1 is determined 2 by (3n+3)(3n+2) control points. and thus. If we can show that for − . . the conditions − → Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = 0 α γ α γ β β . . u u m−k If fA ⊙ : (P)⊙m → E is the linear map from the tensor power (P)⊙m to E associated with the symmetric multilinear map fA . If FA : P → E and FB : P → E are any two adjacent triangular patches. A similar argument applies to γ β the stripes in the other two directions. → → Du1 . which proves the lemma. But then. . since (P)⊙(n−1) is spanned by the simple (n − 1)-tensors of − → the form an−1 . where a ∈ P (see section 11. the derived surfaces Dn+1 FA and γ n+1 n+1 n+1 n−1 Dγ FB have degree 2n and meet with continuity C .1). . . From lemma 9. Each derived surface patch has degree n − 1. − . Duk FA (a) = mk fA (a. the derived surface Dn+1 Dn+1 FA γ α γ β β − . we have a total of 3(n+1)n conditions. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES → Dn+1 Dn+1 FA is the same in any stripe in the direction − . The derived surfaces Dβ Dγ FA and Dn+1 Dn+1 FB have degree n − 1. since FA and FB meet with C 2n continuity and have degree 3n + 1. −k ). Indeed. . and thus. Dn+1 Dn+1 FB and Dn+1 Dn+1 FC are identical. for all triangles A. recall from lemma 10.

β α γ α γ β Each patch is then deﬁned by 3(n + 1)2 − 2 control points. It can be shown that if we consider surface splines of degree 3n + 3 with C 2n+1 continuity. SPLINE SURFACES WITH RECTANGULAR PATCHES correspond to three subspaces of (P)⊙(3n+1) . This is one of the outstanding open problems for spline surfaces. However. and the conditions are indeed independent. → → direction γ α γ A β − → and the derived surface Dn+2 Dn FA is the same in any stripe in the direction β .9. For example. {β ⊙− γ 349 which is impossible since such a tensor has order at least 3n + 3.3. satisfying the independent conditions − → Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = Dn+1 Dn+1 FA = 0 . Unfortunately. we were led to consider surface splines of degree 3n + 1 with C 2n continuity. no nice scheme involving de Boor control points is known for such triangular spline surfaces. it is easy to show that each patch is deﬁned by 3(n + 1)2 − 2 control points. as discussed very lucidly by Ramshaw [65]. 9. the derived surface Dn+2 Dn FA is the same in any stripe in the β α − . For simplicity. →n+1 ⊙ − n+1 ⊙ η | η ∈ (P)⊙(n−1) }. We can also consider surface splines of degree 3n + 3 with C 2n+1 continuity. Some interesting related work on joining triangular patches with geometric continuity (G1 -continuity) can be found in Loop [51]. if the three subspaces above had a →n+1 − n+1 →n+1 ⊙ − nontrivial intersection. α γ α γ β β Each patch is then deﬁned by 3(n + 1)2 control points. it is easy to see that these subspaces are pairwise disjoint. to the best of our knowledge. Next we will see that we have better luck with rectangular spline surfaces. satisfying the independent conditions − → Dn+2 Dn FA = Dn+2 Dn FA = Dn+2 Dn FA = 0 . if the parameter plane is divided into rectangles. reasoning on dimensions. As a α γ consequence. the derived surface Dn+2 Dn F is the same in any stripe in the direction − . then for every triangle A. they would contain a tensor of the form − α β ⊙→ γ ⊙ δ. → {− α γ n+1 − → →n+1 ⊙ η | η ∈ (P)⊙(n−1) }. Such spline surfaces do exist. →n+1 →n+1 ⊙ − {− α β ⊙ η | η ∈ (P)⊙(n−1) }. we will consider surface patches . In summary.3 Spline Surfaces with Rectangular Patches We now study what happens with the continuity conditions between surface patches. and their existence can be shown using convolutions.

for all i ≤ n. Furthermore. B. When m = 2n + 2. we will prove that if m ≤ 2n + 1. z). Surface splines consisting of rectangular patches of degree m ≥ 1 joining with C n continuity cannot be locally ﬂexible if m ≤ 2n + 1. However. we have fA (xi y m−i−j z j ) = fD (xi y m−i−j z j ). More precisely. there is at most one free control point for every two internal adjacent patches. the only control point which is not determined is fA (xn+1 z n+1 ).1. We shall consider the case of rectangular spline surfaces of degree 2n meeting with C n−1 continuity. This means that given any three adjacent patches A. Since A and B meet with C n continuity along (x. then it is generally impossible to construct a spline surface.3. then fA is completely determined. First. Take ∆xyz as reference triangle. if fB and fD are known. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES x w B y A z C D Figure 9. Lemma 9. then fA is completely determined. for all j ≤ n. we must have m ≥ 2n + 2. One can prove using convolutions (see Ramshaw [65]) that such spline . given any 4 adjacent patches as shown in the ﬁgure below.350CHAPTER 9. since A and D join with C n continuity along (y. i + j ≤ m ≤ 2n + 1. Thus. Similarly. in order to have rectangular spline surfaces with C n continuity. As opposed to the triangular case. the proof is fairly simple. by lemma 9. and so either i ≤ n or j ≤ n. y). fA (xi y m−i−j z j ) = fB (xi y m−i−j z j ). when m = 2n + 2.7: Constraints on rectangular patches of degree m joining with the same degree of continuity n for all common edges.2. D as in the previous ﬁgure. Proof. if fB and fD are known.1. which shows that fA (xi y m−i−j z j ) is completely determined.

3. In view of lemma 9. The following lemma is the key result. for every rectangle A. Lemma 9. Given two triangular surfaces F : P → E and G : P → E of degree 2n. but the construction is not practical. we will be successful in ﬁnding a nice class of spline surfaces speciﬁable in terms of de Boor control points. the derived α → surface Dn+1 FA is the same in any stripe in the direction − . and any vertical vector β . n are an answer to our quest. Furthermore. note that a surface of degree 2n such that − → Dn+1 FA = Dn+1 FA = 0 α β is equivalent to a bipolynomial surface of bidegree n. A surface of degree 2n is speciﬁed by (2n+2)(2n+1) control points. In fact. This time.3.2. Instead. n . and if − is parallel to L. → if F and G meet with C n−1 continuity along a line L. then u n+1 n+1 Du F = Du G. we have a total of (n + 1)n constraints.3. it makes sense to look for rectangular spline surfaces of degree 2n with continuity C n−1 satisfying the constraints − → Dn+1 FA = Dn+1 FA = 0 α β n+1 for all rectangles A. Proof. setting it to zero corresponds to (n+1)n 2 constraints. Proof. Since Dα FA has degree n − 1. An immediate consequence of lemma 9. in the present case of rectangular spline surfaces. and thus. Thus. we will look for necessary conditions in terms of derived surfaces.9.2. and subtracting the (n + 1)n constraints. as in the case of triangular spline surfaces. so they must be identical. n−1 Lemma 9.3. − → → for any horizontal vector − . we can easily adapt what we have done for spline curves to bipolynomial spline surfaces.2. SPLINE SURFACES WITH RECTANGULAR PATCHES 351 surfaces exist. But these surfaces have degree at most n − 1. However.3. we deduce that Dn+1 F and Dn+1 G meet with u u C n−1 continuity along L. we ﬁnd 2 that each rectangular patch is determined by (n + 1)2 control points. We can now derive necessary conditions on surfaces F and G of degree 2n to join with C continuity. Given a spline surface F : P → E of degree 2n having C n−1 continuity.3. we can do this for bipolynomial spline surfaces of . and the derived surface Dn+1 FA α α β − → is the same in any stripe in the direction β . since each rectangle is the product of two intervals.3 n + 1 times. Applying lemma 9.3. we discover that bipolynomial spline surfaces of bidegree n.

The patches of the spline surface have domain rectangles of the form Rk. a “good” subdivision scheme produces large portions of spline surfaces. . si+p . except for faces . .j = f (si+1 . Soon after that. 29.l has the (p + 1)(q + 1) de Boor control points xi. a mesh based on a rectangular grid). The idea is to start with a rough polyhedron speciﬁed by a mesh (a collection of points and edges connected so that it deﬁnes the boundary of a polyhedron).l = [sk . q . i. yields a smooth surface (or solid). The idea of deﬁning a curve or a surface via a limit process involving subdivision goes back to Chaikin. the process of recursively inserting a knot at the midpoint of every interval in a cyclic knot sequence. in the limit. contrary to the case of triangular spline surfaces. in the case of rectangular spline surfaces. where r is the multiplicity of the knot tj that divides them. . POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES bidegree p. . who (in 1974) deﬁned a simple subdivision scheme applying to curves deﬁned by a closed control polygon [18]. In 1978. Riesenfeld [67] realized that Chaikin’s scheme was simply the de Boor subdivision method for quadratic uniform B-splines.e. and leave this topic as an interesting project.. we will not elaborate any further. Since the study of bipolynomial spline surfaces of bidegree p. 28].352CHAPTER 9. The challenge of ﬁnding such a scheme for triangular spline surfaces remains open. tj+1 . . Given a knot sequences (si ) along the u-direction. where k − p ≤ i ≤ k and l − q ≤ i ≤ l. 9. The reader should have no trouble ﬁlling in the details. which. q basically reduces to the study of spline curves. and to apply recursively a subdivision scheme.j . and most faces are rectangular. One of the major advantages of such a scheme is that it applies to surfaces of arbitrary topology. Furthermore. . we have de Boor control points of the form xi. The main diﬀerence between the two schemes is the following.e. sk+1 ] × [tl . . In summary. and by Catmull and Clark [17]. Two patches adjacent in the u-direction meet with C p−r continuity.4 Subdivision Surfaces An alternative to spline surfaces is provided by subdivision surfaces.. . After one round of subdivision the Doo-Sabin scheme produces a mesh whose vertices all have the same degree 4. where r is the multiplicity of the knot si that divides them. we were able to generalize the treatment of spline curves in terms of knot sequences and de Boor control points to bipolynomial spline surfaces. and two patches adjacent in the v-direction meet with C q−r continuity. and a knot sequences (tj ) along the v-direction. except for a ﬁnite number of so-called extraordinary points. where sk < sk+1 and tl < tl+1 . two subdivision schemes for surfaces were proposed by Doo and Sabin [27. The progressive version of the de Casteljau algorithm can be generalized quite easily. tl+1 ]. tj+q ). and that it is not restricted to a rectangular mesh (i. The patch deﬁned on the rectangle Rk.

Note that if F is an n-sided face.8. SUBDIVISION SURFACES 353 arising from original vertices of degree not equal to four and from nonrectangular faces.9. Catmull-Clark method. wF2 of the other end vertex w of E are connected to form a rectangular face. subdivision hit the big screen with Pixar’s “Geri’s game”. every triangular face is reﬁned into four subtriangles. reﬁnements of previous subdivision schemes and new subdivision schemes have been proposed. The limit surface is C 2 -continuous except at extraordinary points. and it is obtained by connecting the image vertices of the boundary vertices of F in F . not unlike a sculptor at work. and most vertices have degree 4. who also proposed a method for improving the design of boundary curves. During every round of the subdivision process. Every vertex v of the current mesh yields a new vertex vF called image of v in F . This process is illustrated in ﬁgure 9. large regions of the mesh deﬁne biquadratic B-splines. E-faces. image vertices are connected to form three kinds of new faces: F -faces. after one round of subdivision. we will restrict ourselves to a brief description of the Doo-Sabin method. vF2 of the end vertex v of E. and V -faces. However. the four image vertices vF1 . The limit surface is C 1 -continuous except at extraordinary points. A new E-face is created as follows. for every face F having v as a vertex. the number of nonrectangular faces remains constant. the Catmull-Clark scheme produces rectangular faces. it is not until roughly 1994 that subdivision surfaces became widely used in computer graphics and geometric modeling applications. An F -face is a smaller version of a face F . Several years later. In Loop’s scheme. new vertices and new faces are created as follows. and wF1 . The limit surface is C 2 -continuous except at extraordinary points. except for original vertices whose degree is not equal to six. Due to the lack of space.4. a nontrivial problem. Although both schemes can be viewed as cutting-oﬀ corners. Then. Most vertices have degree six. Large regions of the mesh deﬁne triangular splines based on hexagons consisting of 24 small triangles each of degree four (each edge of such an hexagon consists of two edges of a small triangle). After one round of subdivision. Although such subdivision schemes had been around for some time. Charles Loop in his Master’s thesis (1987) introduced a subdivision scheme based on a mesh consisting strictly of triangular faces [50]. Large regions of the mesh deﬁne bicubic B-splines. The Doo-Sabin scheme is described very clearly in Nasri [56]. referring the reader to the SIGGRAPH’98 Proceedings and Course Notes on Subdivision for Modeling and Animation. also referred to as extraordinary points. the CatmullClark scheme is closer to a process of face shrinking. and it turns out that these faces shrink and tend to a limit which is their common centroid. so is the new F -face. Since 1994. as illustrated in ﬁgure 9. and Loop method. On the other hand. except for vertices arising from original nonrectangular faces and from vertices of degree not equal to four. The centroid of each nonrectangular face is referred to as an extraordinary point. in 1998. . Furthermore.9. For every edge E common to two faces F1 and F2 . referred to as extraordinary points.

8: Vertices of a new F -face w wF 1 F1 vF1 v E wF2 vF2 F2 Figure 9. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES y yF x xF F wF w vF zF z uF u v Figure 9.354CHAPTER 9.9: Vertices of a new E-face .

9. 4 4 Another method was proposed by Nasri [56]. A simple scheme used by Doo is to compute the centroid c of the face F . for every i. where the wj are the vertices of the face F . Special rules are needed to handle boundary edges. the new V -face is also n-sided. provided that v has degree n ≥ 3. j ≤ n and n ≥ 3 is the number of boundary edges of F . create the new vertex 1 3 vF + v. where the v’s are the vertices of F ). The scheme just described applies to surfaces without boundaries. One way to handle boundaries is to treat them as quadratic B-splines. This process is illustrated in ﬁgure 9. where 1 ≤ i. j=i . k=1 because it is the real part of the sum of the n-th roots of unity.e. and thus.10: Vertices of a new V -face A new V -face is obtained by connecting the image vertices vF of a given vertex v in all the faces adjacent to v. if vF is the image of v in the face F containing v. if i = j. and vi is the image of wi in F .10.. cos(2π(i − j)/n) = −1. Note that the above weights add up to 1. 1/n). If v has degree n. Another rule is n vi = j=1 αij wj . since n cos(2πk/n) = 0.4. 1 ≤ i ≤ n. vertices of degree n ≤ 2. For every boundary vertex v. v′ = Various rules are used to determine the image vertex vF of a vertex v in some face F . SUBDIVISION SURFACES F1 vF1 v 355 F2 vF2 vF3 F3 Figure 9. and the image vF of v in F as the midpoint of c and v (if F has n sides. the centroid of F is the barycenter of the weighted points (v. i. with αij = n+5 4n 3+2 cos(2π(i−j)/n) 4n if i = j.

Unlike the previous one. and new vertex points are denoted as hollow square points. i. darts. each new vertex point v ′ is connected by an edge to the new edge points vE associated with all the edges E incident with v. The Doo-Sabin method has been generalized to accomodate features such as creases. .e. n i=1 Given an edge E with endpoints v and w. called “NURSS” by the authors. the new face point vF is computed as the centroid of the vi .11 shows this process. edge points. In fact. vF2 . if F1 and F2 are the two faces sharing E as a common edge. the new edge point vE is the average of the four points v. Zheng. w. It is also easy to check that these faces shrink and tend to a limit which is their common centroid. and what kind of smoothness is obtained at extraordinary points. The subdivision rules are modiﬁed to allow for nonuniform knot spacing.356CHAPTER 9. . . Roughly. it is not obvious that such subdivision schemes converge. vF1 . vn . 4 The computation of new vertex points is slightly more involved. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES Observe that after one round of subdivision. These matters were investigated by Doo and Sabin [28] and by Peters and Reif [60]. where vF1 and vF2 are the centroids of F1 and F2 . or cusps. We now turn to a description of the Catmull-Clark scheme.e. vE = v + w + vF1 + vF2 . and Sabin [74]. by Sederberg. Figure 9. new edges points are denoted as hollow round points. there are several diﬀerent versions. this method consists in subdividing every face into smaller rectangular faces obtained by connecting new face points. using discrete Fourier transforms. Sewell. all vertices have degree four. Given a vertex v (an old one). Such features are desirable in human modeling. and the number of nonrectangular faces remains constant. However. This can be achieved by eigenvalue analysis. for example. . Note that only rectangular faces are created. i. n 1 vF = vi . the new vertex point v ′ associated with v is v′ = 1 2 n−3 F+ E+ v. to model clothes or human skin. New face points are denoted as solid square points. The version presented in Catmull and Clark [17] is as follows. if F denotes the average of the new face points of all (old) faces adjacent to v and E denotes the average of the midpoints of all (old) n edges incident with v. Given a face F with vertices v1 . n n n New faces are then determined by connecting the new points as follows: each new face point vF is connected by an edge to the new edge points vE associated with the boundary edges E of the face F . or better. and vertex points. the idea is to analyze the iteration of subdivision around extraordinary points. .

The tangent-plane continuity of various versions of Catmull-Clark schemes are also investigated in Ball and Storry [3] (using discrete Fourier transforms). A more general study of the convergence of subdivision methods can be found in Zorin [89] (see also Zorin [88]). SUBDIVISION SURFACES 357 Figure 9. We have only presented the Catmull-Clark scheme for surfaces without boundaries.4. Then for any three consecutive control points pl . Observe that after one round of subdivision. and using rules for knot insertion at midpoints of intervals in a closed knot sequence. starting from a tetrahedron).9. n n n Doo and Sabin analyzed the tangent-plane continuity of this scheme using discrete Fourier transforms [28]. two new control points pl+1 and pl+1 are i i+1 i+2 2i+1 2i+2 . and the number of extraordinary points (vertices of degree diﬀerent from four) remains constant. Boundaries can be easily handled by treating the boundary curves a cubic B-splines. and pl of a boundary curve. all faces are rectangular. and C 1 -continuity is investigated by Peters and Reif [60]. 4 2 4 but it was observed that the resulting surfaces could be too “pointy” (for example. It is also possible to accomodate boundary vertices and edges.11: New face point. edge points. pl . Another version studied by Doo and Sabin is v′ = 1 1 n−2 F+ E+ v. and vertex points An older version of the rule for vertex points is v′ = 1 1 1 F + E + v.

2 i 2 i+1 and pl+1 = 2i+2 1 l 6 l 1 pi + pi+1 . 8 8 8 8 as illustrated in ﬁgure 9. and Truong [24]. it was shown by Stam [78] that it is in fact possible to evaluate points on Catmull-Clark subdivision surfaces. . and 2/8: the centroids of the two triangles ∆prs and ∆qrs. For any vertex v of degree n. + pl . if p0 .12: Loop’s scheme for computing edge points created according to the formulae pl+1 = 2i+1 1 l 1 l p + p . A common criticism of subdivision surfaces is that they do not provide immediate access to the points on the limit surface. using rules to determine new edge points and new vertex points. However. we compute the new edge point ηrs as the following convex combination: ηrs = 1 3 3 1 p + r + s + q. also allows semi-sharp creases in addition to (inﬁnitely) sharp creases. pn−1 are the other endpoints of all (old) edges . 3/8. Unlike the previous methods. . Kass. Their work is inspired by previous work of Hoppe et al [44]. . Loop’s method only applies to meshes whose faces are all triangles.s 358CHAPTER 9. Before presenting Loop’s scheme. have generalized the Catmull-Clark subdivision rules to accomodate sharp edges and creases.12. For every edge (rs). The method of DeRose Kass. and Truong [24]. since exactly two triangles ∆prs and ∆qrs share the edge (rs). and the midpoint of the edge (rs). . This corresponds to computing the aﬃne combination of three points assigned respectively the weights 3/8. except that DeRose et al’s method applies to Catmull-Clark surfaces. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES p F ηrs G q r Figure 9. 8 8 8 i+2 DeRose. which were also studied by Zorin [89]. let us mention that a particularly simple subdivision method termed “midedge subdivision” was discovered by Peters and Reif [61]. One of the techniques involved is called eigenbasis functions. as opposed to parametric models which obviously do. in which the Loop scheme was extended to allow (inﬁnitely) sharp creases. Loop’s method consists in splitting each (triangular) face into four triangular faces. This new scheme was used in modeling the character Geri in the short ﬁlm Geri’s game.

where αn is a coeﬃcient dependent on n. and hollow square points denote new vertex points. Large regions of the mesh deﬁne triangular splines based on hexagons consisting of small triangles each of degree four (each edge of such an hexagon consists of two edges of a small triangle). the new vertex point v ′ associated with v is n−1 v = (1 − αn ) ′ i=0 1 pi n + αn v. In his Master’s thesis [50]. as in the Catmull-Clark scheme.9. but such vertices are surrounded by ordinary vertices of degree six.13: Loop’s scheme for subdividing faces incident with v. He also ﬁgures out in which interval αn should belong. in order to insure convergence and better smoothness at extraordinary points. Vertices of degree diﬀerent from six are called extraordinary points. Loop’s method was ﬁrst formulated for surfaces without boundaries. Loop rigorously investigates the convergence and smoothness properties of his scheme. except for vertices coming from orginal vertices of degree diﬀerent from six. where hollow round points denote new edge points. Observe that after one round of subdivision.4. all vertices have degree six. Boundaries can be easily handled by treating the boundary curves a cubic B-splines. but in some cases. Loop determined that the value αn = 5/8 produces good results [50]. He proves convergence of extraordinary points to a limit. we will present its main lines. Loop’s method is illustrated in ﬁgure 9. ordinary points have a well deﬁned limit that can be computed by subdividing the quartic triangular patches. The limit surface is C 2 -continuous except at extraordinary points. Thus. . Since the principles of Loop’s analysis are seminal and yet quite simple. SUBDIVISION SURFACES 359 v1 η2 η3 v2 η1 v3 Figure 9. tangent plane continuity is lost at extraordinary points.13.

we get v −q = Thus. . where q l−1 n−1 = i=0 1 l−1 p n i is the centroid of the points pl−1 . this proves the convergence for extraordinary points. Using the fact that pl = i 1 l−1 3 l−1 3 l−1 1 l−1 p + p + v + pi+1 8 i−1 8 i 8 8 and some calculations. . the rule for creating a new vertex point v l associated with a vertex v l−1 can be written as v l = (1 − αn )q l−1 + αn v l−1 . (1) Every extraordinary vertex v l tends to the same limit as q l . 0 n−1 Since q l is the centroid of ordinary points. Since points are created during every iteration of the subdivision process.360CHAPTER 9. it is easy to show that n−1 q = i=0 l 1 l 3 l−1 5 l−1 p = v + q . 11 5 − < αn < . after one round of subdivision. . . . The value αn = 5/8 is certainly acceptable. i. < 1. extraordinary points are surrounded by ordinary points. . . it is convenient to label points with the index of the subdivision round during which they are created. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES As we already remarked. pl−1 . Loop proves that as l tends to ∞. 8 3 αn − 8 l (v 0 − q 0 ). Keep in mind that the lower indices of the pl are taken modulo n. if −1 < αn − 3 8 l l 3 l−1 5 l−1 v − q = 8 8 αn − 3 (v l−1 − q l−1 ). . (2) The ordinary vertices pl .e. which makes the analysis of convergence possible. n i 8 8 From this. . pl surrounding v l also tend to the same limit as q l . i Proving that liml→ ∞ v l = liml→ ∞ q l is fairly easy. 8 8 l l we get convergence of v to q . Then. we have v l − q l = (1 − αn )q l−1 + αn v l−1 − By a trivial induction. the other endpoints of all edges incident with 0 n−1 v l−1 .

The matrix Fn is called a Fourier matrix . or phase polynomial . Every sequence c = (c0 . Let us quickly quickly review some basic facts about discrete Fourier series. given any sequence f = (f0 . it is natural to deﬁne the discrete convolution as a circular type of convolution rule. . where Fn is the symmetric n × n-matrix (with complex coeﬃcients) Fn = ei2πkl/n 0≤k≤n−1 0≤l≤n−1 . for every k. . In the discrete case. . . . .4. fn−1 ) of data points. Now. The problem amounts to solving the linear system Fn c = f. SUBDIVISION SURFACES 361 Proving (2) is a little more involved. 82] for a more comprehensive treatment. d ∈ Cn . It is convenient to view a ﬁnite sequence c ∈ Cn as a periodic sequence over Z. . and forming the new sequence c ⋆ d. taking two sequences c. . . thus writing c = (c0 . . . . 1. n − 1] × [0. −1 Thus. . . it is easily checked that 0≤l≤n−1 Fn Fn = Fn Fn = n In . . . The Fourier transform and the convolution . . . cn−1 ). The discrete Fourier transform is a linear map : Cn → Cn . Then. The purpose of the discrete Fourier transform is to ﬁnd the Fourier coeﬃcients c = (c0 . assuming that we index the entries in Fn over [0. Discrete Fourier series deal with ﬁnite sequences c ∈ Cn of complex numbers. deﬁned such that n−1 fc (θ) = c0 + c1 e + · · · + cn−1 e iθ i(n−1)θ = k=0 ck eikθ . and its inverse Fn = (1/n)Fn is computed very cheaply. it is desirable to ﬁnd the “Fourier coeﬃcients” c = (c0 . . fn−1 ). .9. by letting ck = ch iﬀ k − h = 0 mod n. cn−1 ) of the discrete Fourier series fc such that fc (2πk/n) = fk . referring the reader to Strang [80. n − 1]. cn−1 ) ∈ Cn of “Fourier coeﬃcients” determines a periodic function fc : R → C (of period 2π) known as discrete Fourier series. . . Letting Fn = e−i2πkl/n 0≤k≤n−1 be the conjugate of Fn . . . . . . The discrete convolution is a map ⋆ : Cn × Cn → Cn . 1. . cn−1 ) from the data points f = (f0 . . . It is also more convenient to index n-tuples starting from 0 instead of 1. . Loop makes a clever use of discrete Fourier transforms. the standard k-th row now being indexed by k − 1 and the standard l-th column now being indexed by l − 1. . 0 ≤ k ≤ n − 1. the other major player in Fourier analysis is the convolution. the Fourier matrix is invertible.

which causes problem with the convolution rule. . −π Remark: Others authors (including Strang in his older book [80]) deﬁne the discrete Fourier 1 transform as f = n Fn f . . i. . where the Fourier transform f of the function f is given by f (x) = ∞ f (t)e−ixt dt. In view of the formula Fn Fn = Fn Fn = n In . POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES rule (discrete or not!) must be deﬁned in such a way that they form a harmonious pair. . . We also deﬁne the inverse discrete Fourier transform (taking c back to f ) as c = Fn c.e. . fn−1 ) ∈ Cn as f = Fn f. . 0 ≤ k ≤ n − 1. c ⋆ d = c d. and the Fourier coeﬃcients of the Fourier series f (x) = are given by the formulae ck = ∞ k=−∞ −∞ ck eikx 1 2π π f (x)e−ikx dx. j=0 Note the analogy with the continuous case. cn−1 ) are then given by the formulae ck = 1 1 f (k) = n n n−1 fj e−i2πjk/n . Inspired by the continuous case. or equivalently. We will come back to this point shortly. The drawback of this choice is that the convolution rule has an extra factor of n. where the multiplication on the right-hand side is just the inner product of c and d (vectors of length n). it is natural to deﬁne the discrete Fourier transform f of a sequence f = (f0 . the Fourier coeﬃcients c = (c0 . . Loop deﬁnes the discrete Fourier transform as Fn f . which means that the transform of a convolution should be the product of the transforms. and following Strang [82].362CHAPTER 9. as n−1 f (k) = j=0 fj e−i2πjk/n for every k. .

. see Strang [80. b. . we get Fn H(f )(n In ) = (n In )f Fn . . which means that the columns of the Fourier matrix Fn are the eigenvectors of the circulant matrix H(f ). and that the eigenvalue associated with the lth eigenvector is (f )l . The fascinating book on circulants. fn−1 ) and g = (g0 . . . We deﬁne the circular shift matrix Sn (of order n) as the matrix 0 0 0 0 ··· 0 1 1 0 0 0 · · · 0 0 0 1 0 0 · · · 0 0 Sn = 0 0 1 0 · · · 0 0 . . c. . 82]. . viewing f and g as column vectors. Fourier matrices. . the miracle (which is not too hard to prove!) is that we have H(f )Fn = Fn f . gn−1) as f ⋆ g = H(f ) g.9. the circulant matrix associated with the sequence f = (a. for details. . 0 where Sn = In . 0 0 0 0 ··· 1 0 consisting of cyclic permutations of its ﬁrst column. multiplying the equation H(f )Fn = Fn f both on the left and on the right by Fn . is highly recommended. . . . . . and more. Fn H(f ) = f Fn . . . . we deﬁne the circulant matrix H(f ) as n−1 H(f ) = j=0 j fj Sn . . . as usual. . . For any sequence f = (f0 . For example. . . by Davis [21]. . . Then.4. fn−1 ) ∈ Cn . . . SUBDIVISION SURFACES 363 The simplest deﬁnition of discrete convolution is. . the deﬁnition in terms of circulant matrices. d) is a d c b b a d c c b a d d c b a We can now deﬁne the convolution f ⋆ g of two sequences f = (f0 . If we recall that Fn Fn = Fn Fn = n In . . that is. in our opinion. . the lth component of the Fourier transform f of f (counting from 0). . . Again.

364CHAPTER 9. where the multiplication on the right-hand side is just the inner product of the vectors f and g. Loop deﬁnes convolution using the formula n−1 (f ⋆ g)k = j=0 fj gk−j . . 0 ≤ j ≤ n − 1. Loop states the convolution rule as F (f ⋆ g) = F (f )F (g). . which is incorrect. can be rewritten as the (circular) convolution rule f ⋆ g = f g. However. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES If we apply both sides to any sequence g ∈ Cn . Similarly. we get back to Loop’s Master’s thesis [50]. which requires interpreting indexes modulo n. since F uses the Fourier matrix Fn . . However. . This is what saves Loop’s proof (see below)! After this digression. we get Fn H(f )g = f Fn g. If the sequence f = (f0 . or equivalently. for every j. that fn−j = fj for all j. f ⋆ g = H(f )g. and f ⋆ g = Fn (f ⋆ g). when it should be using its conjugate Fn . which is our Fourier transform f (following Strang [82]). which means that f−j = fj for all j ∈ Z (viewed as a periodic sequence). for every k. since g = Fn g. which. the inverse Fourier transform (taking c back to f ) is expressed as n−1 c(k) = j=0 cj cos (2πjk/n) . fn−1 ) is even. but is equivalent to the circulant deﬁnition. we warn our readers that Loop deﬁnes the discrete Fourier transform as F (f ) = Fn f. 0 ≤ k ≤ n − 1. it is easily seen that the Fourier transform f can be expressed as n−1 f (k) = j=0 fj cos (2πjk/n) . (which is our inverse Fourier transform f ) and not as Fn f . for every k. . 0 ≤ j ≤ n − 1. 0 ≤ k ≤ n − 1. Observe that it is the same as the (forward) discrete Fourier transform.

. . .. deﬁne the sequences 3 1 1 M = . . as observed earlier.. . Note that these sequences are even! We also deﬁne the sequence P l as P l = (pl . . . 0. Then. his F (f ) and our f are identical. pl surrounding v l also tend to the same limit as q l . we get Pl = M− 5 A ⋆ P l−1 + Ql . With these remarks in mind. From these equations. To do so. n n .. .9. . 0 n−1 and treat q l and v l as constant sequences Ql and V l of length n. 0. . . what saves his argument is that for even sequences. even though Loop appears to be using an incorrect deﬁnition of the Fourier transform. pl ). . 8 q = i=0 l 1 l p n i is rewritten as Ql = A ⋆ P l . 8 8 8 pl = i n−3 A= 1 1 . . 8 . SUBDIVISION SURFACES 365 Neverthless. both of length n.4. we go back to Loop’s proof that the ordinary vertices pl . 0 n−1 The trick is rewrite the equations n−1 q = i=0 l 1 l p n i and and 1 l−1 3 l−1 3 l−1 1 l−1 p + p + v + pi+1 8 i−1 8 i 8 8 in terms of discrete convolutions. equation pl = i is rewritten as P l = M ⋆ P l−1 + and equation n−1 1 l−1 3 l−1 3 l−1 1 l−1 p + p + v + pi+1 8 i−1 8 i 8 8 3 l−1 V .. .

j we get P = l 5 M− A 8 ⋆ P 0 + Ql . i l→ ∞ Therefore. and thus which proves that l→ ∞ l→ ∞ lim (R)l = 0n . 5 1 ≤ (R)j ≤ 8 8 for all j. where cn⋆ stands for the n-fold convolution c ⋆ · · · ⋆ c. namely. applying the Fourier transform in its cosine form and the convolution rule. n At this stage. this is easy to do. He proves that q l (and thus v l ) has the limit (1 − βn )q 0 + βn v 0 . we just have to compute the discrete Fourier transform of R.366CHAPTER 9. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES Taking advantage of certain special properties of M and A. 8 Since the absolute value of the cosine is bounded by 1. l→ ∞ and consequently that l→ ∞ lim pl = lim q l . Loop gives explicit formulae for the limit of extraordinary points. However. the faces surrounding extraordinary points converge to the same limit as the centroid of these faces. lim Rl⋆ = lim Rl⋆ = 0n . we have Rl⋆ = (R)l . n−1 j=0 M− 5 A 8 l⋆ = 0. and we get 0 if j = 0. letting R= M− 5 A . (R)j = 3 1 + 4 cos (2πj/n) if j = 0. Since both M and A are even sequences. and so. where βn = 3 . 11 − 8αn . 8 all we have to prove is that Rl⋆ tends to the null sequence as l goes to inﬁnity. 0 ≤ j ≤ n − 1.

4 4 4 For instance. Stam [78] also implemented a method for computing points on Catmull-Clark surfaces. and there is a range of values from which αn can be chosen to insure tangent plane continuity. except at a ﬁnite number of extraordinary points. Loop also discusses curvature continuity at extraordinary points. general approaches to study the properties (convergence. 8 8 In particular. Loop’s scheme was extended to accomodate sharp edges and creases on boundaries. For example.4. and we apologize for not being more thorough. we advise our readers to consult the SIGGRAPH Proceedings and Course Notes. but his study is more tentative. smoothness) of subdivision surfaces have been investigated in Reif [66] and by Zorin [89]. Note that α6 = 5/8 is indeed this value for regular vertices (of degree n = 6). The phenomenon of “eigenvalue clustering” can also cause ripples on the surface. for a vertex of degree three (n = 3). such as. There are many other papers on the subject of subdivision surfaces. Loop proves that his subdivision scheme is C 2 -continuous. The related issue of adaptive parameterization of surfaces is investigated in Lee et al [49]. and code simplicity. the values α3 = 5/8 is outside the correct range. . Loop also investigates the tangent plane continuity at these limit points. Again. SUBDIVISION SURFACES 367 The bounds to insure convergence are the same as the bounds to insure convergence of v l to q l . and it is nontrivial. there are problems with curvature continuity at extraordinary points (the curvature can be zero). In summary. see Hoppe et [44]. Their method makes use of Loop’s scheme. If αn is chosen in the correct range. First. arbitrary topology of the mesh. Extraordinary points of large degree may exhibit poor smoothness. Although subdivision surfaces have many attractive features. We conclude this section on subdivision surfaces by a few comments. uniformity of representation. namely 5 11 − < αn < .9. there is convergence. He proves that tangent plane continuity is insured if αn is chosen so that 1 3 1 − cos (2π/n) < αn < + cos (2π/n) . 3 αn = + 8 3 1 + cos (2π/n) 8 4 2 . The implementation of the method is discussed. αn = 5/8 yields βn = 1/2. they have their problems too. it is possible to ﬁnd a formula for the tangent vector function at each extraordinary point. but we hope that we have at least given pointers to the most important research directions. Another phenomenon related to the eigenvalue distribution of the local subdivision matrix is the fact that the mesh may be uneven. He proposes the following “optimal” value for αn . certain triangles being signiﬁcantly larger than others near extraordinary points. numerical stability. At extraordinary points. as Loop ﬁrst observed experimentally. especially after 1996.

j+s . One method (Bessel twist) consists in estimating the twist at (ui . j . uN be two knot sequences consisting of simple knots. each patch requires 16 control points. j . where r = −1. and the derived surface Dn+2 Dn F is the same in any stripe in the direction → direction α α γ A − → β. Formulate a de Boor algorithm for rectangular B-spline surfaces. 0≤j≤N be a net of data points. Show that the number of independent conditions is generally 2m + 1. show that the control points on the boundary curves of each rectangular patch can be computed. . Formulate a knot insertion algorithm for rectangular B-spline surfaces. . α β γ α γ β . 1. (iii) Various methods exist to determine twist vectors. the derived surface Dn+2 Dn FA is the same in any α β → stripe in the direction − . . (i) Using the method of section 6. 1 and s = −1.368CHAPTER 9. Use it to convert a B-spline surface into rectangular B´zier patches. Problem 3 (30 pts). . the derived surface Dn+2 Dn FA is the same in any stripe in the γ γ β − . Let u0 . Problem 2 (20 pts). (1) If we consider surface splines of degree 3n + 3 with C 2n+1 continuity. Compute the Bessel twists. Problem 6 (20 pts). POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES 9. . Implement the interpolation method proposed in problem 4. e Problem 4 (30 pts). i. Problem 5 (40 pts). We would like to ﬁnd a rectangular bicubic C 1 -continuous B-spline surface F interpolating the points xi. such that F (ui .5 Problems Problem 1 (30 pts). Experiment with various methods for determining corner twists. .. Show that the number of conditions required for two triangular patches of degree m to meet with C 1 -continuity is 3m + 1. vj ) to be the bilinear interpolant of the four bilinear patches determined by the nine points xi+r. 0. . j )0≤i≤M. (2) Prove that the conditions − → Dn+2 Dn FA = Dn+2 Dn FA = Dn+2 Dn FA = 0 . accounting for 12 control points per patch.8.6). uM and v0 . Show that the number of independent conditions is generally 3m. Show that the other 4 interior control points can be found by computing the corner twists of each patch (twist vectors are deﬁned in section 7.e. . (ii) However. and let (xi. Show that the number of conditions required for two triangular patches of degree m to meet with C 2 -continuity is 6m − 2. 0. vj ) = xi. prove that for every triangle A.

Prove that the Fourier transform of Loop’s matrix R= M− 5 A 8 . . . e−ik2π/n . . 0 ≤ k ≤ n − 1. . 0 ≤ j ≤ n − 1. . and that the inverse Fourier transform (taking c back to f ) is expressed as n−1 c(k) = j=0 cj cos (2πjk/n) . 1. which means that f−j = fj for all j ∈ Z (viewed as a periodic sequence). or equivalently. Problem 7 (30 pts). . The matrix Fn is called a Fourier matrix . (1) Letting Fn = e−i2πkl/n 0≤k≤n−1 0≤l≤n−1 be the conjugate of Fn . prove that the Fourier transform f is expressed as n−1 f (k) = j=0 fj cos (2πjk/n) . for every k. . . the standard k-th row now being indexed by k − 1 and the standard l-th column now being indexed by l − 1. assuming that we index the entries in Fn over [0. each patch is deﬁned by 3(n + 1)2 − 2 control points. . . . prove that Fn Fn = Fn Fn = n In . . . 1. n − 1]. . PROBLEMS 369 are independent. . e−i2π/n . n − 1] × [0. (3) If the sequence f = (f0 . and that in this case. Let Fn be the symmetric n × n-matrix (with complex coeﬃcients) Fn = ei2πkl/n 0≤k≤n−1 0≤l≤n−1 . Prove that Sn Fn = Fn diag(v 1) where diag(v 1) is the diagonal matrix with the following entries on the diagonal: v 1 = 1. . . fn−1 ) is even. Problem 8 (10 pts). e−i(n−1)2π/n . (2) Prove that H(f )Fn = Fn f . . .5. Hint. .9. that fn−j = fj for all j.

Implement the Loop subdivision method for closed meshes. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES is given by (R)j = 0 3 8 + 1 4 if j = 0. Problem 10 (50 pts). Implement the Catmull-Clark subdivision method for closed meshes. cos (2πj/n) if j = 0. Generalize your program to handle boundaries.370CHAPTER 9. . Problem 9 (50 pts). Problem 11 (60 pts). Implement the Doo-Sabin subdivision method for closed meshes. Experiment with various values of αn . Generalize your program to handle boundaries. Generalize your program to handle boundaries.

or Homogenizing For all practical purposes. aﬃne combinations. Let us ﬁrst explain how to distinguish between points and vectors practically. It turns out that E is characterized by a universality property: aﬃne maps to vector spaces extend uniquely to linear maps. As a consequence. aﬃne maps). Similarly. Then. curves and surfaces live in aﬃne spaces. A disadvantage of the aﬃne world is that points and vectors live in disjoint universes. It is often more convenient.1 The “Hat Construction”. aﬃne maps between aﬃne spaces E and F extend to linear maps between E and F . 371 . multiaﬃne maps extend to multilinear maps. Next. Actually. linear maps). the construction of a vector space E in which − → both E and E are embedded as (aﬃne) hyperplanes is described. In turn. using what amounts to a “hacking trick”. to deal with linear objects. such a treatment will be given elsewhere. at least mathematically. these formulae lead to a very convenient way of formulating the continuity conditions for joining polynomial curves or surfaces. It is shown how aﬃne frames in E become bases in E. the linearization of multiaﬃne maps is used to obtain formulae for the directional derivatives of polynomial maps. First.Chapter 10 Embedding an Aﬃne Space in a Vector Space 10. This chapter proceeds as follows. Such an homogenization of an aﬃne space and its associated vector space is very useful to deﬁne and manipulate rational curves and surfaces. it would also be advantageous if we could manipulate points and vectors as if they lived in a common universe. (vector spaces. using perhaps an extra bit of information to distinguish between them if necessary. However. Such an “homogenization” (or “hat construction”) can be achieved. or the directional derivatives of polynomial surfaces. we will show that such a procedure can be put on ﬁrm mathematical grounds. linear combinations. It also leads to a very elegant method for obtaining the various formulae giving the derivatives of a polynomial curve. rather than aﬃne objects (aﬃne spaces.

parallel to the (x. → → − every − ∈ E induces a mapping tu : E → E. and that we have some → → v aﬃne frame (a0 . it is quite useful to visualize the space E. Clearly. 1) whose fourth coordinate is 1. the vector space E is unique up to isomorphism. and of such a construction? The − → answer is yes. and that vectors are represented by (row) vectors (v1 . we will use the same notation − for both the vector − and the translation u u tu . translations and dilatations. and that all families of scalars (points. and vectors) are ﬁnite. and its actual construction is not so important. We begin by deﬁning − → two very simple kinds of geometric (aﬃne) transformations. Berger explains the construction in terms of vector ﬁelds. Remark: Readers with a good knowledge of geometry will recognize the ﬁrst step in embedding an aﬃne space into a projective space. can we make sense of such elements. satisﬁes a universal property with respect to the extension of aﬃne maps to linear maps. −2 ). However. The extension to arbitrary ﬁelds and to families of ﬁnite support is immediate. and E itself is embedded as an aﬃne hyperplane. where → → → a = a0 + x1 −1 + x2 −2 + x3 −3 . we can think of E as the vector space R3 of − → dimension 3. x3 . for simplicity. This “programming trick” works actually very well. and deﬁned such that u → tu (a) = a + − . x2 . −2 )). y)-plane. Thus. we are opening the door for strange elements such as (x1 . x2 . x3 ). As a consequence. the set of translations is a vector space isomorphic u − → → → to E . u v v → One way to distinguish between points and vectors is to add a fourth coordinate. In the case of an aﬃne space E of dimension 2. (−1 . and E corresponds to the plane of equation z = 1. −2 . and passing through the point on the z-axis of coordinates (0. We prefer a more geometric and simpler description in terms of simple geometric transformations. v3 . E ). u3 ) over the basis (−1 . Given any point a and any scalar λ ∈ R. and to agree that points are represented by (row) vectors (x1 . x2 . deﬁned as ω −1 (1). it is assumed that all vector spaces are deﬁned over the ﬁeld R of real numbers. E ) is embedded in − → a vector space E. where the fourth coordinate is neither 1 nor 0. in which E corresponds to the (x. As usual. for every a ∈ E. The construction of the vector space E is presented in some details in Berger [5]. v v v → → − → → v A vector − ∈ E is also represented by its coordinates (u1 . −2 . called . we deﬁne the mapping Ha. 1). The question is. 5). We will also show that the homogenization E of − → an aﬃne space (E. x3 . Of course. Given an aﬃne space (E.λ : E → E. We will present a construction in which an aﬃne space (E. Ramshaw explains the construction using the symmetric tensor power of an aﬃne space [65]. E ). for some linear form ω : E → R. 0) whose fourth coordinate is 0. in which E is embedded as a hyperplane passing through the origin. u2. 0. y)-plane. With respect to this aﬃne frame.372 CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE Assume that we consider the real aﬃne space E of dimension 3. v2 . every point x ∈ E is v v → represented by its coordinates (x1 . called a translation.

it turns out that it is more convenient to consider dilatations of the form Ha. Thus.λ2 . since → a1 .λ (x) is on the line → deﬁned by a and x. We have Ha. We prefer our view in terms of geometric transformations. λ . u − . Ha. λ2 (x) = x + λ2 − 2 . xa if we want to deﬁne a1 . and is obtained by “scaling” − by λ. each a. Then. λ1 (x) = x + λ1 − 1 and xa → a2 . Ha. Thus. where λ = 0. and Ha. OR HOMOGENIZING 373 dilatation (or central dilatation. − → (2) Berger deﬁnes a map h : E → E as a vector ﬁeld .10. When λ = 0.λ(a). since → → → → λ1 − 1 + λ2 − 2 = λ1 − 1 − λ1 − 2 = λ1 − →. if λ < 1). In fact. note that Ha. Ha. let us denote Ha. xa xa xa xa a− 1 2a . λ2 .1. we could deﬁne E as the (disjoint) union of these two → vector ﬁeld x → u vector ﬁelds.1−λ (x) = a + (1 − λ)− = a + − − λ− = x + λ− ax ax ax xa. In this case.λ is never the identity. If we assume λ = 1. Then.λ (a) = a.λ1 and Ha2 .0 (x) = a for all x ∈ E. and since a is a ﬁxed-point. for every x ∈ E. We now consider the set E of geometric transformations from E to E. λ (x) = x + λ− xa. We would like − → to give this set the structure of a vector space.1−λ as a. THE “HAT CONSTRUCTION”. and when λ = 0 and x = a. and deﬁned such that → Ha.1−λ (x) = Hx. we see that we have to distinguish between two cases: (1) λ1 + λ2 = 0. Remarks: (1) Note that Ha. To see this.0 is the constant aﬃne map sending every point to a. it will turn out that barycenters show up quite naturally too! In order to “add” two dilatations Ha1 . in such a way that both E and E can be naturally embedded into E. The eﬀect is a uniform dilatation ax (or contraction. λ1 + a2 . consisting of the union of the (disjoint) sets of translations and dilatations of ratio λ = 1. we have → a. λ can be viewed as → → the vector ﬁeld x → λ− Similarly. or homothety) of center a and ratio λ.1−λ .λ (x) = a + λ− ax. let us see the eﬀect of such a dilatation on a point x ∈ E: we have → → → → Ha. a translation − can be viewed as the constant xa.λ is never a translation. For simplicity of notation.

a− 1 2a λ1 λ1 +λ2 where λ1 − → denotes the translation associated with the vector λ1 − →. λ1 + a2 . → Given a translation deﬁned by − and a dilatation a. λ1 + λ2 . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a1 . xa → xa u → − → → and so. showing that the “hat construction” described above has allowed us to achieve our goal of − → embedding both E and E in the vector space E. u We can now use the deﬁnition of the above operations to state the following lemma. the points a1 and a2 assigned the weights have a barycenter λ1 λ2 b= a1 + a2 . since ab = λ−1 − . since λ = 0. . λ . λ1 + λ2 λ1 + λ2 and λ2 λ1 +λ2 the dilatation associated with the point b and the scalar λ1 + λ2 . a− 1 a− 1 2a 2a (2) λ1 + λ2 = 0. we have u → u → → λ− + − = λ(− + λ−1 − ). λ2 = λ2 λ1 a1 + a2 . u → → → → The sum of two translations − and − is of course deﬁned as the translation − + − . λ2 = λ1 − →. and we let → → a. u u → the dilatation of center a + λ−1 − and ratio λ. λ + − = a + λ−1 − . λ = a. λ1 + a2 . λµ . λ . In this case. we have u u → → − → → − → → u xa xa u xa → λ− + − = λ(− + λ−1 − ) = λ(− + ab) = λxb. u u − → → where λ− is the product by a scalar in E . λ1 + λ2 λ1 + λ2 such that → − λ1 − λ2 − → → xb = xa1 + xa2 .374 we let CHAPTER 10. we let a1 . u v u v It is also natural to deﬁne multiplication by a scalar as follows: µ · a. λ1 + λ2 λ1 + λ2 Since → − → → xa xa λ1 − 1 + λ2 − 2 = (λ1 + λ2 )xb. and → → λ · − = λ− . letting b = a + λ−1 − .

j is an aﬃne u u injection with associated linear map i. is a vector space under the following operations of addition and multiplication by a scalar: if λ1 + λ2 = 0 then a1 . from the deﬁnition of + . the map ω : E → R deﬁned such that ω( a. Thus. as an hyperplane in E. → → → → u v u v if µ = 0 then µ · a. λ = 0. λ ∈ R. since u → → → u i(− ) + λ · j(a) = − + a. 1 . λ = a + λ−1 − . under the map j : E → E.10. λ2 = λ1 − →. λ ) = λ. λ1 + λ2 . where j(a) = a. → → λ · − = λ− . ω −1 (0) is a hyperplane isomorphic to E under the injective linear map − → → → i : E → E such that i(− ) = tu (the translation associated with − ). 1 + − . It is also clear that ω is a linear form. λ . for every a ∈ E. The veriﬁcation that E is a vector space is straightforward. u − → is a linear form. u u . THE “HAT CONSTRUCTION”.1. The linear map mapping − → − → → → a vector − to the translation deﬁned by − is clearly an injection i : E → E embedding E u u → → where − stands for the translation associated with the vector − . OR HOMOGENIZING 375 Lemma 10. λ2 = λ1 λ2 a1 + a2 . λ1 + a2 . Note that → → → j(a + − ) = a + − . Finally. and thus. u u and Furthermore. → ω(− ) = 0. The set E consisting of the disjoint union of the translations and the dilatations Ha.1−λ = a. − → 0 · a. ω −1(1) is indeed an aﬃne hyperplane isomor− → phic to E with direction i( E ). and ω −1(1) is an aﬃne u u − → hyperplane isomorphic to E with direction i( E ). λ = 0 . λ = a. Finally. λ .1. under the injective aﬃne map j : E → E. λ . λ = a + λ−1 − .1. 1 = a. → → − for every a ∈ E. λ1 + a2 . λ1 + λ2 λ1 + λ2 → → → a. we have − → E = i( E ) ⊕ Rj(a). for every a ∈ E. u u u − +− =− +− . λ + − = − + a. for every − ∈ E . a− 1 2a if λ1 + λ2 = 0 then a1 . u u u Proof. λµ .

µ . − → Note that E is isomorphic to E ∪ (E × R∗ ) (where R∗ = R − {0}). → arbitrary element b. one . we have − → E = i( E ) ⊕ Rj(a). Thus. the λ-heavy elements all belong to the hyperplane ω −1(λ) − → parallel to i( E ). we get any arbitrary − ∈ E by picking λ = 0 and − = − .1: Embedding an aﬃne space (E. when E is an aﬃne plane. Ramshaw calls the linear form ω : E → R a weight (or ﬂavor). − → − → and since i( E ) ∩ Rj(a) = { 0 }. 1 = a j(E) = ω −1(1) Ω − → u − → i( E ) = ω −1(0) − → Figure 10. µ = 0. E ) into a vector space E → → → when λ = 0. Other authors use the notation E∗ for E. In general. The following diagram illustrates the embedding of the aﬃne space E into the vector space E.376 CHAPTER 10. by picking λ = µ and u − → E = i( E ) + Rj(a). λ a. and he says that an element z ∈ E such that ω(z) = λ is λ-heavy (or has ﬂavor λ) ([65]). for every a ∈ E. intuitively. Thus. The − → elements of j(E) are 1-heavy and are called points. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a. and we get any v u v → − − = µ ab. and the elements of i( E ) are 0-heavy and are called vectors. we can thing of E as a stack of parallel hyperplanes.

Given any family (ai )i∈I of points in E. − → − → From now on. and i( E ) and E . From u u → lemma 10. As an example. and any family (λi )i∈I of scalars in R. the expression 2 + 3 makes sense: it is the weighted point 2. OR HOMOGENIZING 377 for each λ.5. then ai . we may also write a. First. 1 (under the injection j). i∈I where −−→ −− λi ai = i∈I i∈I − → λi bai . u u → → and since we are identifying a + − with a + − . since u u → → a. for every a ∈ E. THE “HAT CONSTRUCTION”. which we will call a weighted point. and simply λ. in A. in A. we write λ for λ. Thus. However.5. 3]. a little bit like an inﬁnite stack of very thin pancakes! There are two privileged − → pancakes: one corresponding to E. 1 as a. 2+3 denotes 2 the middle point of the segment [2. when viewing λ as a vector in R and in A. it is easily shown by induction on the size of I that the following holds: (1) If i∈I λi = 0. and one corresponding to E . because we ﬁnd it too confusing. by e Ramshaw. we will identify j(E) and E. u u → → we will refrain from writing λa + − as λa + − . we go one step further. and write 1a just as a.1. In particular. When we want to be more precise. for λ = 1. We u also denote λa + (−µ)b as λa − µb. for λ = 0. However. λi = i∈I −− − −→ λi ai . λ . when viewing λ as a point in both A and A. every element of E can be written uniquely as − + λa.1. the expression 2 + 3 denotes the real number 5. 1 = a. We can now justify rigorously the programming trick of the introduction of an extra coordinate to distinguish between points and vectors. and 2 + 3 does not make sense in A. in view of the fact that → → a + − . which can be denoted as 2. 1 + − . We will also write λa instead of a. The elements of A are called B´zier sites. when we consider the homogenized version A of the aﬃne space A associated with the ﬁeld R considered as an aﬃne space. and denote → → notation. Then. 2 . since it is not a barycentric combination.1. in the simpliﬁed u u − = a + − . 1 . λ + − = a + λ−1 − .10. the above reads as a + u u → → a + − as a + − . we make a few observations. λ .

Grassmann. in his book published in 1844! . and any family (− ) v of vectors in E . regardless of the value of i∈I λi . . Proof. is a vector independent of b. and thus. Operations on weighted points and vectors were introduced by H. E ). with I ∩ J = ∅.2. Given any aﬃne space (E. n}. or (2) If i∈I λi = 0.1. By induction on the size of I and the size of J. λi . by lemma 2. .1. i∈I λi . we see how barycenters reenter the scene quite naturally. i∈I λi . which.4. or (2) If i∈I λi = 0. In fact. which. λi + − = → vj j∈J i∈I λi i∈I i∈I λi ai + j∈J − → vj i∈I λi . where some of the occurrences of + can be replaced by − . then ai . When i∈I λi = 0. which is left as an exercise.5. then ai . i i∈I j j∈J the following properties hold: (1) If i∈I λi = 0. is a vector independent of b. λi = i∈I i∈I λi i∈I λi ai . . the linear combination of points i∈I λi ai is a vector. where the occurrences of − (if any) are replaced by −. and when I = {1. it is a point. by lemma 2. − → Lemma 10. for any family (ai )i∈I of points in E. λi + i∈I j∈J − = → vj −−→ −− λi ai + i∈I j∈J −.4. λi belongs to the hyperplane ω (1). and that in E. we have the following slightly more general property. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE for any b ∈ E.1. When i∈I λi = 1. then ai . The above formulae show that we have some kind of extended barycentric calculus.378 CHAPTER 10. as λ1 a1 + · · · + λn an . → vj where −−→ −− λi ai = i∈I i∈I − → λi bai for any b ∈ E. for − → → any family (λ ) of scalars in R. we can make sense of i∈I ai . the element −1 i∈I ai . This will be convenient when dealing with derivatives in section 10. we allow ourselves to write λ1 a1 + · · · + λn an . Thus. .

(− →. − a . − = v −→ + · · · + v − a → − − → v 1 a0 a1 m a0 m − → − − over the basis (− →. . − am ) in E . For any element a. am ) in E are (−(v1 + · · · + vm ). . Furthermore. . . v1 . AFFINE FRAMES OF E AND BASES OF E 379 10. . If we assume that we have a nontrivial linear combination − → − a0 → λ1 − → + · · · + λm − am + µa0 = 0 . then the coordinates of a. a0 ) in E. then over the basis (− →. . then the coordinates of x. if v . λ . . then we have − − a− 1 a0 → a0 → λ1 − → + · · · + λm − am + µa0 = a0 + µ−1 λ1 − → + · · · + µ−1 λm − am . µ . − am . . for any aﬃne frame (a0 . . . . a ) in E. . . λ). . stated in the following lemma. . → → − If a vector − ∈ E is expressed as v − − − − − − − → − = v − → + · · · + v − a = − − − · ·− + − − − − − − − ·− − − .t. Proof. . . am ) in E are (λλ0 . the family (a0 . . vm . . . . . . . . . given any element x. . the basis (a0 . λxm . . Given any aﬃne space (E. E ) and bases of E. . am ) in E. the aﬃne basis (a0 .r. . am ) is a basis for E. the family (− →. We sketch parts of the proof. . . if the barycentric coordinates of a w. am ) a− 1 a0 → 0a for E. . λ over the basis 0a → a− a− a (− →.2. the basis (a0 . . .2 Aﬃne Frames of E and Bases of E − → There is also a nice relationship between aﬃne frames in (E. . λm ) with λ0 + · · · + λm = 1. → − − → −(v−+ − ·− v−)a − v a−+ · − + v− a v · 1 a0 a1 m a0 m 1 m 0 + 1 1 m m with respect to the aﬃne basis (a0 . .t. . . . − am )) in E. . . . . leaving the details as an exercise.1.r. 0). am ) in E are (λ0 . λ w. . E ). . a− 1 0a 0a → → − For any vector − ∈ E .2. a0 ) is a basis for E. . . λ ∈ E. . . . − am )) a− 1 a0 → 0a − for E. λλm ). . . . and for any aﬃne frame (a0 . are 0 1 0 m 0 (λx1 . . − am . .r.t. . then its coordinates w. the a− 1 a0 → a− 1 a0 → 0a 0a → coordinates of − are v (v1 . where λ = 0.10. − → − Lemma 10. . . . . if − a0 → a− 1 x = a0 + x1 − → + · · · + xm − am 0a − a0 → a− 1 over the aﬃne frame (a0 . . . vm ). (− →. . . . a− 1 0a if µ = 0. . .

then. . − am ) is a basis of a− 1 a0 → 0a − → E . λ a0 a2 a. . − am )) in E. (− →. . 1 ≤ i ≤ m. − If (x1 . (− →. .t. and . in view of the deﬁnition of + . a1 . we must have µ = 0. . a0 ) in E a− 1 a− 2 0a 0a − which is never null. 1 = a a1 Ω E −→ a− 2 0a − → u −→ a− 1 0a Figure 10. . . . if − x = a0 + x1 − → + · · · + xm − am a− 1 a0 → 0a − over the aﬃne frame (a0 . . . 1) are the coordinates of x in E. (x1 ..e. xm . . we must also have λi = 0 for all i. . and thus. λ + λx1 − → + · · · + λxm − am . − →. . . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE a. − →. λ = a0 . λ over the basis (− →. we have a− 1 a0 → 0a − − x. . . . a2 ) in E. . λ ∈ E. . the last coordinate is 1. λxm . The following diagram shows the basis (− →. λ = a0 + x1 − → + · · · + xm − am . − am )) a− 1 a0 → 0a in E. . a− 1 a0 → a− 1 a0 → 0a 0a − which shows that the coordinates of x. .2: The basis (− →. λ). . . . . . a0 ) in E are a− 1 a0 → 0a (λx1 . a0 ) corresponding to the aﬃne frame a− 1 a− 2 0a 0a (a0 . Given any element x. i.380 CHAPTER 10. to the aﬃne frame (a0 . xm ) are the coordinates of x w.r. . − am . but since (− →. .

. 10. there is a unique linear map f : E → F extending f : E → F . λ a. E ). a2 ) in E viewed as a basis in E. We now consider the universal property of E mentioned at the beginning of this section. ω −1 (1) = j(E). − → Deﬁnition 10. . where E is a vector space. the vector space E has the property that for any vector space F and any aﬃne − → − → − → map f : E → F . a1 . . . um) with respect to the basis (− →. then − u a− 1 a0 → u 0a has coordinates (u1 . given two aﬃne spaces E and F . . .1.3. i. j : E → E is an injective aﬃne − → map with associated injective linear map i : E → E. The following diagram shows the aﬃne frame (a0 . − am ) in E . ω . we deﬁne rigorously the notion of homogenization of an aﬃne space. j..3: The basis (a0 . .10. 1 = a a1 Ω a2 E − → u Figure 10.3. Other authors use the notation f∗ for f . a1 . E ) is a triple E. the last coordinate is 0. .e. um .3 Extending Aﬃne Maps to Linear Maps − → Roughly. an homogenization (or linearization) − → of (E. . every aﬃne map f : E → F extends uniquely to a linear map f : E → F . First. As a consequence. a2 ) in E − → → − → if − has coordinates (u1 . . 0) in E. EXTENDING AFFINE MAPS TO LINEAR MAPS 381 a0 a. Given any aﬃne space (E. and for every vector space F and every aﬃne map . . ω : E → R is a linear form such − → − → that ω −1 (0) = i( E ). .

382 CHAPTER 10. − → − → Lemma 10. E ) and any vector space F .1 is more convenient for our purposes. f (− ) = f (− ) for all − ∈ E . since a + − and a + − are identiﬁed. The next lemma will indeed show that E has the required extension property.e. By linearity of f and since f extends f . since it makes the notion of weight more evident. deﬁnition 10. for any aﬃne map − → − → f : E → F . E ). where E is a vector space. and since f extends f . Given any aﬃne space (E. Assuming that f exists. we have u → → → → f (− + λa) = f (− ) + λf (a) = f (− ) + λf (a) = λf (a) + f (− ). the map f deﬁned as above is clearly a linear map extending f . On the other hand. when λ = 0. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE − → − → f : E → F . Note that we − → could have deﬁned an homogenization of an aﬃne space (E. all − ∈ E . there is a unique linear map f : E → F extending f . j(E) = ω −1 (1) is an aﬃne hyperplane with direction i( E ) = ω −1(0). objects deﬁned by a universal property are unique up to isomorphism.1. as a triple E. u u Proof. H . where f is the linear map associated with f .3. there is a unique linear map f : E → F extending f such that − → → → f (− + λa) = λf (a) + f (− ) u u − → → → − for all a ∈ E.2. As usual.3. we must have u u − → → → → → → f (a) + f (− ) = f (a) + f (− ) = f (a + − ) = f (a + − ) = f (a) + f (− ). The obvious candidate for E is the vector space E that we just constructed. we have u u u − → → → f (− + λa) = λf (a) + f (− ). Then. as in the following diagram: E@ j / E @@ @@ f @ f @ @ − → F − → Thus. recall that from lemma 10. i. j. H is an aﬃne hyperplane in E. and all λ ∈ R.1. . and j : E → E is an injective aﬃne map such that j(E) = H. for every a ∈ E. and such that the universal property stated above holds. we have → → f (− + λa) = λf (a + λ−1 − ). However. u u u u → → If λ = 1. u u u u u − → → → → → − and thus. This property is left as an exercise. every element → of E can be written uniquely as − + λa. u u which proves the uniqueness of f . In u particular. f = f ◦ j.

2. More generally. (−1 . and that (a0 . .3. u u From a practical point of view. . EXTENDING AFFINE MAPS TO LINEAR MAPS When λ = 0. . − . j. with origin a0 . Given two aﬃne spaces E and F and an aﬃne map f : E → F . . and all λ ∈ R. u u − → → → − for all a ∈ E. we have → → u f (− + λa) = λf (a + λ−1 − ). extending j ◦ f .10. with origin b0 . u u → → and (b0 . . . and the aﬃne map j ◦ f : E → F .2 shows that E. . By lemma 10. we have → → → → f (− + λa) = f (λ(a + λ−1 − )) = λf (a + λ−1 − ) = λf (a + λ−1 − ). Also observe that we recover f from f . Consider the vector space F . u Proof.3. . as in the diagram below. . . (−1 . we obtain the following lemma. there is a unique linear map f : E → F . b0 ) in F . ω . u u that is.3. Lemma 10. since − → → → f (− + λa) = f (− ) + λf (a).3. a linear map h : E → F is given by an u u v vm . lemma 10. In u particular. . As a corollary. . . where f is the linear map associated with f . . . E ). all − ∈ E .3.3. −n )) is an aﬃne frame of E. u u u u 383 − → Lemma 10. − )) is an aﬃne frame of F . a0 ) in E and (−1 . Then. by letting λ = 1 in → → f (− + λa) = λf (a + λ−1 − ). we have → → f (a + − ) = f (− + a). − → − → Note that f : E → F has the property that f ( E ) ⊆ F . there is a unique linear map f : E → F extending f . with respect to the two v vm → → → → bases (−1 .3 shows us how to homogenize an aﬃne map to turn it into a linear map between the two homogenized spaces. Assume that E and F → → are of ﬁnite dimension. u u the linear map f is weight-preserving. −n . is an homogenization of (E. E j f / F j f E such that / F − → → → f (− + λa) = f (− ) + λf (a). . when λ = 0. and thus extending f .

. For example. . . . we have . . 1). If this linear map h is equal to the homogenized version f of an aﬃne map f . the last column contains the coordinates (µ1 . a0 ) in E. . . . . since − → → → f (− + λa) = f (− ) + λf (a). and vectors are represented by vectors whose last coordinate is 0. . . and since u u v v 1 n 1 m → → f (a0 + − ) = f (− + a0 ). 1) and (y1 . . 1). 0. − ) and (− . 1) → → of f (a0 ) with respect to the basis (−1 . for X = (x1 . . consider the following aﬃne map f : A2 → A2 deﬁned as follows: y1 = ax1 + bx2 + µ1 . points are represented by vectors whose last cooru u dinate is 1. . 0. The matrix of f is a b µ1 c d µ2 0 0 1 and we have y1 a b µ1 x1 y2 = c d µ2 x2 1 0 0 1 1 y1 a b µ1 x1 y2 = c d µ2 x2 y3 0 0 1 x3 In E. 1)⊤ . ym. . we have y = f (x) iﬀ Y = AX. .384 CHAPTER 10. . . . b0 ). . . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE (m + 1) × (n + 1) matrix A. − . −n . . . . . . . u u → → since over the basis (−1 . . the submatrix of A obtained by deleting v vm − → the last row and the last column is the matrix of the linear map f with respect to the bases → → → → (− . y2 = cx1 + dx2 + µ2 . . . . xn . . with coordinates (x1 . with m occurrences of 0. ym . the last row of the matrix A = M(f ) with respect to the given bases is (0. µm . . . − ). xn . 1)⊤ and Y = (y1 . . u u given any x ∈ E and y ∈ F . . . . . .

− ∈ E ... .3). . . y2 = cx1 + dx2 + µ2 x3 . . . .2. . k≥1 j∈{1. − ∈ E .4. . . and all λ1 .ik }. . there is a unique m-linear map f : (E)m → F extending f . am + λ−1 − ). we obtain the following useful lemma. .. there is a unique m-linear map f : (E)m → F extending f as in the diagram below. vi vi − → → → for all a1 . . − → Lemma 10. . am ∈ E. v 1 v m vm Proof..4 From Multiaﬃne Maps to Multilinear Maps We now show how to homogenize multiaﬃne maps. FROM MULTIAFFINE MAPS TO MULTILINEAR MAPS 385 which means that the homogeneous map f is is obtained from f by “adding the variable of homogeneity x3 ”: y1 = ax1 + bx2 + µ1 x3 .4. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . k=|S| S={i1 .m}. for λi = 0. Furthermore. −k ). . such that. . Lemma 10.. and all −1 . v vm 1 ≤ i ≤ m. . . . .. . .1. . Given any aﬃne space E and any vector space F . . . . . . 10. Em j×···×j f / F j (E)m f / F . where the fS are uniquely determined v vm multilinear maps (by lemma 4.ik }. −k ). .. we have → → → → vm f (−1 + λ1 a1 . . . . . . λm ∈ R. .m} j ∈S / → → → − for all a1 . . all −1 .m}. am ∈ E. − + λm am ) v = λ1 · · · λm f (a1 ..10. ... k=|S| S={i1 .. . Section B. .. . As a corollary. . k≥1 → → fS (−1 . vi vi S⊆{1... y3 = x3 .2.. . . if → → f (a1 + −1 . am + − ) = f (a1 .1. The proof is very technical and can be found in Chapter B. .. Given any two aﬃne spaces E and F and an m-aﬃne map f : E m → F .. am ) + → → λj fS (−1 .. . .4. . .. am ) + v vm S⊆{1. then → → vm f (−1 + λ1 a1 . for any m-aﬃne map − → − → f : E m → F .. . . .

. .. ... the bilinear map f : A × A → A. Immediate from lemma 10. all −1 . for 1 ≤ i ≤ m. v vm 1 ≤ i ≤ m. .3). vi vi S⊆{1. am ) + → → λj fS (−1 . if CHAPTER 10. . k=|S| S={i1 . if f : A × A → A is the biaﬃne map deﬁned such that f (x1 .. . if we consider the aﬃne space A with its canonical aﬃne frame (the origin is 0.. . Furthermore.. − + λm am ) v vm = λ1 · · · λm f (a1 . x2 ) = ax1 x2 + bx1 + cx2 + d. k≥1 → → fS (−1 .4.3. For example. . and all λ1 . .1 (see the proof of lemma 10..m}.3. vi vi − → → → vm for all a1 . . −k ). . . . . where we choose the basis (1. where the fS are uniquely determined v multilinear maps (by lemma 4. − ∈ E .m} j ∈S / → → → − for all a1 . . − ∈ E . am + λ−1 − ). and the basis consists of the single vector 1). . . . . zm )) = ω(z1 ) · · · ω(zm ).3 from lemma 10. .. is given by f ((x1 . for λi = 0. . . . .. (x2 .. am + − ) = f (a1 . . .m}. in the sense that ω(f (z1 . . we have → → → → vm f (−1 + λ1 a1 . am ∈ E. . for all z1 ... k=|S| S={i1 . .ik }. . From a practical point of view. . .. . . .. k≥1 j∈{1. and all −1 . The homogenized version f of an m-aﬃne map f is weight-multiplicative. . . am ) + v vm S⊆{1. . .. .. . . am ∈ E. . . v 1 v m vm Proof. . . 0).2).. . . . . v vm 1 v m vm shows us that f is recovered from f by setting λi = 1... λ1 λ2 ). zm ∈ E. . .ik }. . −k ). . → → → → f (−1 + λ1 a1 . . . . EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE → → f (a1 + −1 . We can use this formula to ﬁnd the homogenized version f of the map f . . λ1 λ2 ) 1 2 1 2 = (ax1 x2 + bx1 λ2 + cx2 λ1 + dλ1 λ2 . .1. . − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . λ2 )) = (λ1 λ2 a(x1 λ−1 )(x2 λ−1 ) + bx1 λ−1 + cx2 λ−1 + d .. λm ∈ R. then → → f (−1 + λ1 a1 . in A. .386 such that. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . am + λ−1 − ). . . . . . . λ1 ).

|In| . i=j 1≤i. when E is of ﬁnite dimension.. Xn .. . using the characterization of multiaﬃne maps f : E m → F given by lemma 4. . − )) is an aﬃne frame for e en E..3.. FROM MULTIAFFINE MAPS TO MULTILINEAR MAPS 387 Note that f (x1 . a + − ) = b + v vm 1≤p≤m I1 ∪.4.. Xn ] is done as follows. → → → → vj E 1.∪In ={1.. we know that for any m vectors − = v − +···+v − ∈ − . . − → − → → for some b ∈ F . . .p} Ii ∩Ij =∅.|In| .. This is very useful in practice. ... . we obtain the expression for f by homogenizing the polynomials which → are the coeﬃcients of the − |I1 |. . Xn ) ∈ R[X1 . and some − |I1|. . . polynomial maps can also be homogenized.2. and we want to ﬁnd a homogeneous polynomial Q(X1 . we have e en → → f (−1 + λ1 a.... x2 ) is indeed recovered from f by setting λ1 = λ2 = 1. . . . . . In other words.. − + λm a) = λ1 · · · λm b + v vm 1≤p≤m I1 ∪.10. (−1 . Xn ) is of total degree p.. i1 · · · vn..|In | ∈ F . 1).kn . . in in ∈In − → w |I1|.p} Ii ∩Ij =∅. we let Q(X1 . .. . . .∪In ) / λj − → w |I1 |. . Z Z ... .. . . . . . ..∪In ={1. and since E = E ⊕ Ra.. Since multiaﬃne maps can be homogenized.. we get: → h(− + λa) = λm b + v 1≤p≤m k1 +···+kn =p 0≤ki .. . For the homogenized version h of the aﬃne polynomial w h associated with f . . . .. a. j e1 n. in in ∈In j∈{1. − . i=j 1≤i.. we can get an explicit formula for the homogenized → → version f of f . w Remark: Recall that homogenizing a polynomial P (X1 ... such that P (X1 .j≤n i1 ∈I1 v1. i1 · · · vn. . Xn . . j en we have → → f (a + −1 .j≤n i1 ∈I1 v1. Z) of total degree m ≥ p. If P (X1... . . If (a. generalizing our previous example..... .|In | ... .m} j ∈(I1 ∪. Xn . . . Z) = Z m P X1 Xn .. 1≤i≤n k → k v1 1 · · · vnn λm−p − k1 . ... . In fact. 1 ) of E. . . with respect to the basis w → → (−1 . Xn ) = Q(X1 ..... .

. with t ∈ R. as suggested in section 10. the derivative DF (a) is the limit. . λn ∈ R. . as − → However. However. t=0 λ1 a1 + · · · + λn an . For any a ∈ A. it is also more convenient to denote the vector ab as b − a. we need to see what is the limit of F (a + tδ) − F (a) . . following Ramshaw. .1.388 CHAPTER 10. since we view R as embedded in A). Note that − → δ = 1 = a + 1 − a. or as δ. . of its m-polar form f : Am → E. In this section. Osculating Flats In this section. since F agrees with F on A. t→0. given a1 . since we view A as embedded as a line in A) as a. lim F (a + tδ) − F (a) . t if it exists. we will write λ1 a1 + · · · + λn an . remember that such combinations are vectors in E (and in E). it will be convenient to denote a point in A (and in A. . t when t → 0. One of the major beneﬁts of homogenization is that the derivatives of an aﬃne polynomial function F : A → E can be obtained in a very simple way from the homogenized version f : (A)m → E. t = 0. we mean a + 1 −a in A. an ∈ E. such that λ1 + · · · + λn = 0. . Remark: when we write a + 1−a. .5 Diﬀerentiating Aﬃne Polynomial Functions Using Their Homogenized Polar Forms. to distinguish it from the vector a ∈ R (and a ∈ A. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE 10. we have F (a + tδ) − F (a) = F (a + tδ) − F (a). − → The vector 1 of A will be denoted as 1 . for any a ∈ R. and λ1 . and thus. When dealing with → − derivatives. In this section. but we prefer to be less pedantic. and we write simply a + 1 − a. we assume that E is a normed aﬃne space.

. . . . . where E is a normed aﬃne space. .5. we showed that DF (a) = mf (a. However. . the structure of E takes care of this. δ). since F (a + tδ) − F (a) = f (a + tδ. . Since F (a + tδ) = f (a + tδ. . where E is an aﬃne space. the k-th derivative Dk F (a) can be computed from the homogenized polar form f of F as follows. since F (a + tδ) − F (a) is indeed a vector (remember our convention that − is an abbreviation for − ). . where 1 ≤ k ≤ m: Dk F (a) = m(m − 1) · · · (m − k + 1) f (a. δ) + m−1 k=2 m k tk f (a. . we have DF (a) = DF (a).1. a. δ). . δ). . . . More generally. the derivative DF (a) of F at a is − → a vector in E . a. m−k k and thus. and not a point in E. by replacing just one occurrence of a in f (a.10. a + tδ ). δ. . . .5. . since F extends F on A. a. . . . . and F is the homogenized version of F . F (a + tδ) − F (a) = mf (a. a). m where f is the homogenized version of the polar form f of F . . and thus. t=0 t lim m−1 However. t→0. . Given an aﬃne polynomial function F : A → E of polar degree m. . . . . m m by multilinearity and symmetry. m−k k Proof. we have k=m F (a + tδ) − F (a) = m t f (a. . a) by δ. A simple induction on k. Lemma 10. δ. DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS 389 Recall that since F : A → E. . a. . . a + tδ ) − f (a. . . . δ ). . . . . . . . we have the following useful lemma. m−1 This shows that the derivative of F at a ∈ A can be computed by evaluating the homogenized version f of the polar form f of F . . a. .

We believe that the approach via polar forms is more conceptual. the previous lemma reads as Dk F (a) = mk f (a. . δ. .5. . Lemma 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE − → When k > m. we have Dk F (a) = 0 . Since coeﬃcients of the form m(m−1) · · · (m−k + 1) occur a lot when taking derivatives. . . depends only on the k + 1 . . . 0 ≤ i ≤ m..390 CHAPTER 10. . and gives more insight into what’s really going on. . s). . If F is speciﬁed by the sequence of m + 1 control points bi = f (r m−i s i ). the k-th derivative Dk F (r) can be computed from the polar form f of F as follows. s−r s−r s−r . δ ). . s. for 0 ≤ k ≤ m. and with the convention that mk = 0 when k > m. .. . . s−r s−r k Dk F (r) = mk f r. the above lemma shows that the k-th derivative Dk F (r) of F at r. . as mk = m(m − 1) · · · (m − k + 1).. . i m−i i and we conclude using the fact that f agrees with f on E. Using the falling power notation. . s. . Given an aﬃne polynomial function F : A → E of polar degree m. we get mk D F (r) = (s − r)k k i=k i=0 k (−1)k−i f (r. with r = s. s ∈ A. The falling powers mk have some interesting combinatorial properties of their own. with m0 = 1. m−k by multilinearity and symmetry. r. . m−k k We also get the following explicit formula in terms of control points.2 is usually derived via more traditional methods involving ﬁnite diﬀerences. i m−i i s−r . a. . . it is useful to introduce the falling power notation. where 1 ≤ k ≤ m: Dk F (r) = Proof. . . . . r. following Knuth.5. for any r. and by induction on k. r. s). It also extends fairly easily to the case when the domain A is replaced by a more general normed aﬃne space (to deﬁne surfaces). Lemma 10. where E is a normed aﬃne space. We deﬁne the falling power mk . Since δ= we can expand mk (s − r)k i=k i=0 k (−1)k−i f (r. . .. .2.

bk In terms of the control points b0 . 2 (s − r) (s − r)2 the last expression making sense in E. and it is given by DF (r) = − m m −→ (b1 − b0 ). the acceleration vector D2 F (r) is given by D2 F (r) = − −→ − m(m − 1) m(m − 1) −→ (b0 b2 − 2b0 b1 ) = (b2 − 2b1 + b0 ). . t. .1. . we have justiﬁed the claims about tangents to B´zier curves made in section 5.2 reads as follows: i=k mk k k D F (r) = (−1)k−i bi . . it will be necessary to generalize the above results to directional derivatives. the formula of lemma 10. . . . . . . Later on when we deal with surfaces. then DF (r) is the velocity vector of F at b0 . and bk = bk+1 . DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS 391 control points b0 . Similarly. .10. r) − f (t. m−1 = f (t. Let us assume that E and E are normed aﬃne spaces. the above reasoning can be used to show that the tangent at the point b0 is determined by the points b0 and bk+1 . . . m−1 = f (t. However. is determined by the two points b0. s)). s). . t. . if b0 = b1 . . . s−r m−1 m−1 and since f agrees with f on Am .m−1 − b0. t.5. . . . In order to see that the tangent at the current point F (t) deﬁned by the parameter t. δ) = m−1 s−r s−r m (f (t. . we have basically done all the work already. the tangent to the B´zier curve at the point b0 is the line determined by b0 and b1 . b0 b1 = s−r s−r the last expression making sense in E. t. This shows that when b0 and b1 are distinct. k i (s − r) i=0 In particular. if b0 = b1 = . . More generally. . . r) and b1. and consider a map F : E → E. . . .5. e the tangent at the point bm is the line determined by bm−1 and bm (provided that these points are distinct). note that since δ= and DF (t) = mf (t. Recall from . we have DF (t) = m (b1.m−1 ). e Similarly. = bk . t. . m−1 m−1 given by the de Casteljau algorithm. . s−r Thus. . bk .

392

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

− → → → − deﬁnition D.1.2, that if A is any open subset of E, for any a ∈ A, for any − = 0 in E , u → the directional derivative of F at a w.r.t. the vector − , denoted as Du F (a), is the limit, if u it exists, → F (a + t− ) − F (a) u lim , t→0,t∈U,t=0 t → where U = {t ∈ R | a + t− ∈ A}. u If F : E → E is a polynomial function of degree m, with polar form the symmetric multiaﬃne map f : E m → E, then → → F (a + t− ) − F (a) = F (a + t− ) − F (a), u u where F is the homogenized version of F , that is, the polynomial map F : E → E associated with the homogenized version f : (E)m → E of the polar form f : E m → E of F : E → E. Thus, Du F (a) exists iﬀ the limit → F (a + t− ) − F (a) u t→0, t=0 t lim exists, and in this case, this limit is Du F (a) = Du F (a). Furthermore, → → → F (a + t− ) = f (a + t− , . . . , a + t− ), u u u

m

and since

→ → → F (a + t− ) − F (a) = f (a + t− , . . . , a + t− ) − f (a, . . . , a), u u u

m m

**by multilinearity and symmetry, we have → → F (a + t− ) − F (a) = m t f (a, . . . , a, − ) + u u
**

m−1 k=m

k=2

m k

→ → tk f (a, . . . , a, − , . . . , − ), u u

m−k k

and thus,

Du F (a) = lim

→ F (a + t− ) − F (a) u → = mf (a, . . . , a, − ). u t→0, t=0 t

m−1

**However, we showed previously that Du F (a) = Du F (a), and thus, we showed that → u Du F (a) = mf (a, . . . , a, − ).
**

m−1

By a simple, induction, we can prove the following lemma.

10.5. DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS

393

the k-th directional derivative Du1 . . . Duk F (a) can be computed from the homogenized polar form f of F as follows: → → Du1 . . . Duk F (a) = mk f (a, . . . , a, −1 , . . . , −k ). u u

m−k

Lemma 10.5.3. Given an aﬃne polynomial function F : E → E of polar degree m, where E → → → − and E are normed aﬃne spaces, for any k nonzero vectors − , . . . , − ∈ E , where 1 ≤ k ≤ m, u u

1 k

and all k ≥ 1, and since E is of ﬁnite dimension, all multiaﬃne maps are continuous and the derivatives Dk F exist for all k ≥ 1 and are of class C ∞ (recall that Dk F (a) is a symmetric k-linear map, see Lang [48]). Furthermore, we know that → → Dk F (a)(−1 , . . . , −k ) = Du1 . . . Duk F (a). u u Thus, lemma 10.5.3 actually shows that → → → → u u Dk F (a)(−1 , . . . , −k ) = mk f (a, . . . , a, −1 , . . . , −k ). u u

m−k

Lemma 10.5.3 is a generalization of lemma 10.5.1 to any domain E which is a normed aﬃne space. We are going to make use of this lemma to study local approximations of a polynomial map F : E → E, in the neighborhood of a point F (a), where a is any point in E. In order to be sure that the polar form f : E m → E is continuous, let us now assume that E is of ﬁnite dimension, → → Since by lemma 10.5.3, the directional derivatives D . . . D F (a) exist for all − , . . . , − u u

u1 uk 1 k

**This shows that Dk F (a) is the symmetric k-linear map → → → → (−1 , . . . , −k ) → mk f (a, . . . , a, −1 , . . . , −k ). u u u u
**

m−k

Of course, for k > m, the derivative Dk F (a) is the null k-linear map. Remark: As usual, for k = 0, we agree that D0 F (a) = F (a). We could also relax the condition that E is of ﬁnite dimension, and assume that the polar form f is a continuous map. Now, let a be any point in E. For any k, with 0 ≤ k ≤ m, we can truncate the Taylor expansion of F : E → E at a at the (k + 1)-th order, getting the polynomial map Gk : E → E a deﬁned such that, for all b ∈ E, Gk (b) = F (a) + a → − → − 1 1 1 D F (a)( ab) + · · · + Dk F (a)( ab k ). 1! k!

The polynomial function Gk agrees with F to kth order at a, which means that a Di Gk (a) = Di F (a), a

394

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

for all i, 0 ≤ i ≤ k. We say that Gk osculates F to kth order at a. For example, in the case a of a curve F : A → E, for k = 1, the map G1 is simply the aﬃne map determined by the a tangent line at a, and for k = 2, G2 is a parabola tangent to the curve F at a. a

k As pointed out by Ramshaw, it is tempting to believe that the polar form ga of Gk is a simply obtained from the polar form f of F , by ﬁxing m − k arguments of f at the point a, more precisely, if k ga (b1 , . . . , bk ) = f (b1 , . . . , bk , a, . . . , a), m−k

for all b1 , . . . , bk ∈ E. Unfortunately, this is false, even for curves. The problem is a silly one, it has to do with the falling power mk . For example, if we consider a parabola F : A → A2 , it is easy to see from Taylor’s formula, that

1 Gb (a) = 2f (a, b) − f (b, b), 1 and Ga (b) = 2f (a, b) − f (a, a),

which means that f (a, b) is both the middle of the two line segments (f (a, a), G1 (b)) and a (f (b, b), G1 (a)), which happen to be tangent to F at F (a) and F (b). Unfortunately, it is not b true that G1 (b) = G1 (a) = f (a, b). a b It is possible to ﬁx this problem and to ﬁnd the relationship between the polar forms f k and ga , but this is done most conveniently using symmetric tensors, and will be postponed until section 11.1 (see lemma B.4.3). The ennoying coeﬃcients mk can also be washed out, if we consider the aﬃne subspaces spanned by the range of Gk , instead of osculating curves or surfaces. a Deﬁnition 10.5.4. Given any two normed aﬃne spaces E and E, where E is of ﬁnite dimension, for any polynomial map F : E → E of degree m, for any a ∈ E, for any k, with 0 ≤ k ≤ m, the polynomial map Gk : E → E is deﬁned such that, for all b ∈ E, a Gk (b) = F (a) + a → − → − 1 1 1 D F (a)( ab) + · · · + Dk F (a)( ab k ). 1! k!

We say that Gk osculates F to kth order at a. The osculating ﬂat Osck F (a) is the aﬃne a subspace of E generated by the range of Gk . a If F : A → E is a curve, then we say that F is nondegenerate iﬀ Osck F (a) has dimension k for all a ∈ A. In such a case, the ﬂat Osc1 F (a) is the tangent line to F at a, and Osc2 F (a) is the osculating plane to F at a, i.e., the plane determined by the point F (a), the velocity vector D1 F (a), and the acceleration vector D2F (a). The osculating plane is the usual notion used in diﬀerential geometry. The osculating plane to the curve F at the point F (a) is the limit of any plane containing the tangent line at F (a) and any other point F (b) on the curve F , when b approaches a.

10.5. DIFFERENTIATING AFFINE POLYNOMIAL FUNCTIONS

395

→ → If F : P → E is a surface, assuming that (Ω, (−1 , −2 )) is an aﬃne frame of P, recall that e e we denote Dejk . . . Dej1 F (a) as ∂k F (a). ∂xj1 . . . ∂xjk → → These are the partial derivatives at a. Also, letting b = a + h1 −1 + h2 −2 , in terms of partial e e derivatives, the truncated Taylor expansion is written as Gk (b) = F (a) + a

1≤i1 +i2 ≤k

hi1 hi2 1 2 i1 !i2 !

∂ ∂x1

i1

∂ ∂x2

i2

F (a).

It is not too diﬃcult to show that there are k(k + 3) (k + 1)(k + 2) −1 = 2 2 partial derivatives in the above expression, and we say that the surface F is nondegenerate iﬀ Osck F (a) has dimension k(k+3) for all a ∈ P. For a nondegenerate surface, Osc1 F (a) is 2 the tangent plane to F at a, and Osc2 F (a) is a ﬂat of dimension 5, spanned by the vectors 2 2 ∂F ∂F ∂2F (a), ∂x2 (a), ∂ F (a), ∂ F (a), and ∂x1 ∂x2 (a). The ﬂat Osc3 F (a) is a ﬂat of dimension 9, and ∂x1 ∂x2 ∂x2 1 2 we leave as an exercise to list the vectors spanning it. Thus, plane curves are degenerate in the above sense, except lines, and surfaces in A3 are degenerate in the above sense, except planes. There is a simple relationship between osculating ﬂats and polar forms, but it is much more convenient to use tensors to prove it, and we postpone the proof until section 11.1 (see lemma B.4.4). Let us simply mention a useful corollary. Given a polynomial map F : E → E of degree m with polar form f : E m → E, the aﬃne subspace spanned by the range of the multiaﬃne map (b1 , . . . , bm−k ) → f (a, . . . , a, b1 , . . . , bm−k ),

k

is the osculating ﬂat Oscm−k F (a). This leads to a geometric interpretation of polar values. We note in passing that the geometric interpretation of polar forms in terms of osculating ﬂats, was investigated by S. Jolles, as early as 1886. Let F : A → E be a nondegenerate curve of degree 3 (and thus, a space curve). By the previous corollary, the polar value f (r, s, t) is the unique intersection of the three osculating planes Osc2 F (r), Osc2 F (s), and Osc2 F (t). The polar value f (s, s, t) is the intersection of the tangent line Osc1 F (s) with the osculating plane Osc2 F (t). More generally, given a nondegenerate curve or surface F : E → E, the polar value f (b1 , . . . , bm ) is the unique intersection of the osculating ﬂats corresponding to all of the distinct points a that occur in the multiset {b1 , . . . , bm }.

This interpretation is so nice that one wonders why it was not chosen as a deﬁnition of polar forms. Unfortunately, this idea does not work as soon as F : A → E is degenerate,

396

CHAPTER 10. EMBEDDING AN AFFINE SPACE IN A VECTOR SPACE

which happens a lot. Indeed, B´zier points are usually not aﬃnely independent. Thus, we e had to use a more algebraic deﬁnition. In the case of surfaces, osculating ﬂats intersect more often that we would expect. For example, given a nondegenerate cubic surface, we know that it lies in an aﬃne space of dimension 9. But for each a ∈ P, the osculating ﬂat Osc2 F (a) has dimension 5. In general, three 5-ﬂats in a 9-space do not intersect, but any three 5-ﬂats Osc2 F (a), Osc2 F (b), and Osc2 F (c), intersect at the polar value f (a, b, c). Readers who would like to have an in-depth understanding of the foundations of geometric design and a more conceptual view of the material on curves and surfaces are urged to read the next chapter on tensors. However, skipping this chapter will only have very minor consequences (basically, ignoring the proofs of a few results).

10.6

Problems

Problem 1 (10 pts). Prove that E as deﬁned in lemma 10.1.1 is indeed a vector space. Problem 2 (10 pts). Prove lemma 10.1.2. Problem 3 (10 pts). Fill in the missing details in the proof of lemma 10.2.1. Problem 4 (10 pts). Fill in the missing details in the proof of lemma 10.5.2. Problem 5 (10 pts). Give some vectors spanning the ﬂat Osc3 F (a) of dimension 9.

**Chapter 11 Tensor Products and Symmetric Tensor Products
**

11.1 Tensor Products

This chapter is not absolutely essential and can be omitted by readers who are willing to accept some of the deeper results without proofs (or are willing to go through rather nasty computations!). On the other hand, readers who would like to have an in-depth understanding of the foundations of computer-aided geometric design and a more conceptual view of the material on curves and surfaces, should make an eﬀort to read this chapter. We hope that they will ﬁnd it rewarding! First, tensor products are deﬁned, and some of their basic properties are shown. Next, symmetric tensor products are deﬁned, and some of their basic properties are shown. Symmetric tensor products of aﬃne spaces are also brieﬂy discussed. The machinery of symmetric tensor products is then used to prove some important results of CAGD. For example, an elegant proof of theorem 5.3.2 is given. We have seen that multilinear maps play an important role. Given a linear map f : E → → F , we know that if we have a basis (−i )i∈I for E, then f is completely determined by its u − ) on the basis vectors. For a multilinear map f : E n → F , we don’t know if there → values f ( ui is such a nice property, but it would certainly be very useful. In many respects, tensor products allow us to deﬁne multilinear maps in terms of their action on a suitable basis. Once again, as in section 10.1, we linearize, that is, we create a new vector space E ⊗ · · · ⊗ E, such that the multilinear map f : E n → F is turned into a linear map f⊗ : E ⊗ · · · ⊗ E → F , which is equivalent to f in a strong sense. If in addition, f is symmetric, then we can deﬁne a symmetric tensor product E ⊙ · · · ⊙ E, and every symmetric multilinear map f : E n → F is turned into a linear map f⊙ : E ⊙ · · · ⊙ E → F , which is equivalent to f in a strong sense. Tensor products can be deﬁned in various ways, some more abstract than others. We tried to stay down to earth, without excess! 397

398 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS Let K be a given ﬁeld, and let E1 , . . . , En be n ≥ 2 given vector spaces. First, we deﬁne tensor products, and then we prove their existence and uniqueness up to isomorphism. Deﬁnition 11.1.1. A tensor product of n ≥ 2 vector spaces E1 , . . . , En , is a vector space T , together with a multilinear map ϕ : E1 × · · · × En → T , such that, for every vector space F and for every multilinear map f : E1 ×· · ·×En → F , there is a unique linear map f⊗ : T → F , with → → → → f (−1 , . . . , −n ) = f⊗ (ϕ(−1 , . . . , −n )), u u u u → → for all − ∈ E , . . . , − ∈ E , or for short u u

1 1 n n

**f = f⊗ ◦ ϕ. Equivalently, there is a unique linear map f⊗ such that the following diagram commutes: E1 × · · · × En N
**

/ T NNN NNN f⊗ NNN f N&

ϕ

F

First, we show that any two tensor products (T1 , ϕ1 ) and (T2 , ϕ2 ) for E1 , . . . , En , are isomorphic. Lemma 11.1.2. Given any two tensor products (T1 , ϕ1 ) and (T2 , ϕ2 ) for E1 , . . . , En , there is an isomorphism h : T1 → T2 such that ϕ2 = h ◦ ϕ1 . Proof. Focusing on (T1 , ϕ1 ), we have a multilinear map ϕ2 : E1 × · · · × En → T2 , and thus, there is a unique linear map (ϕ2 )⊗ : T1 → T2 , with ϕ2 = (ϕ2 )⊗ ◦ ϕ1 . Similarly, focusing now on on (T2 , ϕ2 ), we have a multilinear map ϕ1 : E1 × · · · × En → T1 , and thus, there is a unique linear map (ϕ1 )⊗ : T2 → T1 , with ϕ1 = (ϕ1 )⊗ ◦ ϕ2 . But then, we get and ϕ1 = (ϕ1 )⊗ ◦ (ϕ2 )⊗ ◦ ϕ1 , ϕ2 = (ϕ2 )⊗ ◦ (ϕ1 )⊗ ◦ ϕ2 .

On the other hand, focusing on (T1 , ϕ1 ), we have a multilinear map ϕ1 : E1 × · · · × En → T1 , but the unique linear map h : T1 → T1 , with ϕ1 = h ◦ ϕ1

11.1. TENSOR PRODUCTS

399

is h = id, and since (ϕ1 )⊗ ◦ (ϕ2 )⊗ is linear, as a composition of linear maps, we must have (ϕ1 )⊗ ◦ (ϕ2 )⊗ = id. Similarly, we must have This shows that (ϕ1 )⊗ and (ϕ2 )⊗ are inverse linear maps, and thus, (ϕ2 )⊗ : T1 → T2 is an isomorphism between T1 and T2 . Now that we have shown that tensor products are unique up to isomorphism, we give a construction that produces one. Lemma 11.1.3. Given n ≥ 2 vector spaces E1 , . . . , En , a tensor product (E1 ⊗ · · · ⊗ En , ϕ) → → → → for E1 , . . . , En can be constructed. Furthermore, denoting ϕ(−1 , . . . , −n ) as −1 ⊗ · · · ⊗ −n , u u u u → → → the tensor product E1 ⊗ · · · ⊗ En is generated by the vectors −1 ⊗ · · · ⊗ −n , where −1 ∈ u u u − ∈ E , and for every multilinear map f : E × · · · × E → F , the unique linear → E1 , . . . , un n 1 n map f⊗ : E1 ⊗ · · · ⊗ En → F such that f = f⊗ ◦ ϕ, is deﬁned by → → → → f⊗ (−1 ⊗ · · · ⊗ −n ) = f (−1 , . . . , −n ), u u u u → → on the generators −1 ⊗ · · · ⊗ −n of E1 ⊗ · · · ⊗ En . u u Proof. First, we apply the construction of deﬁnition A.1.11 to the cartesian product I = E1 × · · · × En , and we get the free vector space M = K (I) on I = E1 × · · · × En . Recall that −→ − −→ − → the family (−i )i∈I is deﬁned such that (ei )j = 0 if j = i and (ei )i = 1. It is a basis of the vector e → space K (I) , so that every − ∈ K (I) can be uniquely written as a ﬁnite linear combination w − . There is also an injection ι : I → K (I) such that ι(i) = − for every i ∈ I. Since → → of the ei ei − is uniquely associated with some n-tuple i = (− , . . . , − ) ∈ E × · · · × E , we → → → every ei u1 un 1 n − as (− , . . . , − ). Also, by lemma A.2.4, for any vector space F , and for any → → → will denote e u u

i 1 n

(ϕ2 )⊗ ◦ (ϕ1 )⊗ = id.

function f : I → F , there is a unique linear map f : K (I) → F , such that f = f ◦ ι,

**as in the following diagram: E1 × · · · ×R n E
**

ι / K (E1 ×···×En ) RRR RRR RRR f RRR f RR(

F

**Next, let N be the subspace of M generated by the vectors of the following type: → → → → → → → → → → (−1 , . . . , −i + −i , . . . , −n ) − (−1 , . . . , −i , . . . , −n ) − (−1 , . . . , −i , . . . , −n ), u u v u u u u u v u → → → → → → (− , . . . , λ− , . . . , − ) − λ(− , . . . , − , . . . , − ). u u u u u u
**

1 i n 1 i n

400 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS We let E1 ⊗ · · · ⊗ En be the quotient M/N of the free vector space M by N, which is well deﬁned, by lemma A.3.1. Let π : M → M/N be the quotient map, and let → By construction, ϕ is multilinear, and since π is surjective and the ι(i) = −i generate M, e − , . . . , − ) ∈ E × · · · × E , the ϕ(− , . . . , − ) generate M/N. → → → → since i is of the form i = ( u1 un u1 un 1 n − , . . . , − ) as − ⊗ · · · ⊗ − , the tensor product E ⊗ · · · ⊗ E is → → → → Thus, if we denote ϕ( u1 un u1 un 1 n − ⊗ · · · ⊗ − , where − ∈ E , . . . , − ∈ E . → → → → generated by the vectors u1 un u1 un 1 n ϕ = π ◦ ι.

For every multilinear map f : E1 × · · · × En → F , if a linear map f⊗ : E1 ⊗ · · · ⊗ En → F → → exists such that f = f⊗ ◦ ϕ, since the vectors −1 ⊗ · · · ⊗ −n generate E1 ⊗ · · · ⊗ En , the map u u f⊗ is uniquely deﬁned by → → → → f⊗ (−1 ⊗ · · · ⊗ −n ) = f (−1 , . . . , −n ). u u u u On the other hand, because M = K (E1 ×···×En ) is free on I = E1 × · · · × En , there is a unique linear map f : K (E1 ×···×En ) → F , such that f = f ◦ ι, as in the diagram below: E1 × · · · ×R n E

ι / K (E1 ×···×En ) RRR RRR RRR f RRR f RR(

F

− → → → Because f is multilinear, note that we must have f (− ) = 0 , for every − ∈ N. But then, w w f : M → F induces a linear map h : M/N → F , such that → → → → by deﬁning h([− ]) = f (− ), for every − ∈ M, where [− ] denotes the equivalence class in z z z z − ∈ M: → M/N of z E1 × · · · × S n π◦ι / K (E1 ×···×En ) /N E

SSS SSS SSS SSS SSS f S)

h

f = h ◦ π ◦ ι,

F

Indeed, the fact that f vanishes on N insures that h is well deﬁned on M/N, and it is clearly linear by deﬁnition. However, we showed that such a linear map h is unique, and thus it agrees with the linear map f⊗ deﬁned by → → → → f⊗ (−1 ⊗ · · · ⊗ −n ) = f (−1 , . . . , −n ) u u u u on the generators of E1 ⊗ · · · ⊗ En .

11.1. TENSOR PRODUCTS

401

where h ∈ L(E1 ⊗ · · · ⊗ En ; F ). Indeed, h ◦ ϕ is clearly multilinear, and since by lemma 11.1.3, for every multilinear map f ∈ L(E1 , . . . , En ; F ), there is a unique linear map f⊗ ∈ L(E1 ⊗ · · · ⊗ En ; F ) such that f = f⊗ ◦ ϕ, the map − ◦ ϕ is bijective. As a matter of fact, its inverse is the map f → f⊗ . Remark: For F = K, the base ﬁeld, we obtain a natural isomorphism between the vector space L(E1 ⊗ · · · ⊗ En ; K), and the vector space of multilinear forms L(E1 , . . . , En ; K). However, L(E1 ⊗ · · · ⊗ En ; K) is the dual space (E1 ⊗ · · · ⊗ En )∗ , and thus, the vector space of multilinear forms L(E1 , . . . , En ; K) is naturally isomorphic to (E1 ⊗ · · · ⊗ En )∗ . When all the spaces have ﬁnite dimension, this yields a (noncanonical) isomorphism between the ∗ ∗ vector space of multilinear forms L(E1 , . . . , En ; K) and E1 ⊗ · · · ⊗ En . The fact that the map ϕ : E1 × · · · × En → E1 ⊗ · · · ⊗ En is multilinear, can also be expressed as follows: − ⊗ · · · ⊗ (− + − ) ⊗ · · · ⊗ − = (− ⊗ · · · ⊗ − ⊗ · · · ⊗ − ) + (− ⊗ · · · ⊗ − ⊗ · · · ⊗ − ), → → w → → → → → → → → u1 vi un u1 vi un u1 wi un i − ⊗ · · · ⊗ (λ− ) ⊗ · · · ⊗ − = λ(− ⊗ · · · ⊗ − ⊗ · · · ⊗ − ). → → → → → → u u u u u u

1 i n 1 i n

What is important about lemma 11.1.3 is not so much the construction itself, but the fact that a tensor product with the universal property with respect to multilinear maps stated in that lemma holds. Indeed, lemma 11.1.3 yields an isomorphism between the vector space of linear maps L(E1 ⊗ · · · ⊗ En ; F ), and the vector space of multilinear maps L(E1 , . . . , En ; F ), via the linear map − ◦ ϕ deﬁned by h → h ◦ ϕ,

However, there vectors are not linearly independent. This situation can be ﬁxed when considering bases, which is the object of the next lemma. − → Lemma 11.1.4. Given n ≥ 2 vector spaces E1 , . . . , En , if ( uk )i∈Ik is a basis for Ek , 1 ≤ i k ≤ n, then the family of vectors − → − → (u11 ⊗ · · · ⊗ unn )(i1 ,...,in )∈I1 ×...×In i i

Of course, this is just what we wanted! Tensors in E1 ⊗ · · · ⊗ En are also called n-tensors, → → → and tensors of the form −1 ⊗ · · · ⊗ −n , where −i ∈ Ei , are called simple (or decomposable) u u u n-tensors. Those n-tensors that are not simple are often called compound n-tensors. → → We showed that E ⊗ · · · ⊗ E is generated by the vectors of the form − ⊗ · · · ⊗ − . u u

1 n 1 n

**is a basis of the tensor product E1 ⊗ · · · ⊗ En . − → Proof. For each k, 1 ≤ k ≤ n, every v k ∈ Ek can be written uniquely as −k → v = − → k vj uk , j
**

j∈Ik

all zero except for a ﬁnite number..1. G. is the desired map h. there is some linear map h : E1 ⊗ · · · ⊗ En → F . Lemma 11. We will show that for every family −− (−i1 .×In . it will follow that − → − → (u11 ⊗ · · · ⊗ unn )(i1 .. 1 ≤ k ≤ n.. However...5.in )∈I1 ×.5 (2). Let F be any nontrivial vector space. since ( uk )i∈Ik is a basis for Ek .... w −→ It is immediately veriﬁed that f is multilinear... i1 ..jn .. We deﬁne the function f : E1 × · · · × En → F as follows: f( j1 ∈I1 − → 1 vj1 u11 .2... i i Then. By the universal property of the tensor product...in )(i1 .×In for some unique family of scalars λi1 . As a corollary of lemma 11.. j jn ∈In → n − vjn unn ) = j j1 ∈I1 . then every tensor z 1 n way as − → − → − = → λ z u1 ⊗ · · · ⊗ un . .. . if ( uk )i∈Ik is a i − ∈ E ⊗ · · · ⊗ E can be written in a unique → basis for Ek .402 CHAPTER 11.jn ∈In 1 n − − vj1 · · · vjn −j1. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS k for some family of scalars (vj )j∈Ik . .. In particular.×In i i − → − → − → is linearly independent.1. the linear map f⊗ : E1 ⊗ · · · ⊗ En → F such that f = f⊗ ◦ ϕ. such that − → − → −− w −→ h(u11 ⊗ · · · ⊗ unn ) = −i1 . they form a basis of E1 ⊗ · · · ⊗ En . the u11 ⊗ · · · ⊗ unn also i i i generate E1 ⊗ · · · ⊗ En .in . . F... w −→ of vectors in F .. when each Ik is ﬁnite and of size mk ..... we see that the dimension of the − → tensor product E1 ⊗ · · · ⊗ En is m1 · · · mn ....4.in ) ∈ I1 ×. and thus... there exists unique isomorphisms (1) E ⊗ F ≃ F ⊗ E (2) (E ⊗ F ) ⊗ G ≃ E ⊗ (F ⊗ G) ≃ E ⊗ F ⊗ G (3) (E ⊕ F ) ⊗ G ≃ (E ⊗ G) ⊕ (F ⊗ G) (4) K ⊗ E ≃ E such that respectively .. We also mention the following useful isomorphisms.in ∈ K..in i1 in (i1 ... Given 3 vector spaces E.. by lemma A..in )∈I1 ×......

there is a linear map g : E ⊗ F ⊗ G → (E ⊗ F ) ⊗ G. there is a linear map fw : E ⊗ F → E ⊗ F ⊗ G. we can deﬁne h : E × F → E ′ ⊗ F ′ by → → → → h(− . it induces a linear map f : (E ⊗ F ) ⊗ G → E ⊗ F ⊗ G. → → → → → such that fw (− ⊗ − ) = − ⊗ − ⊗ − . and thus. → → → → → → such that g(− ⊗ − ⊗ − ) = (− ⊗ − ) ⊗ − . it induces a unique linear map f ⊗ g : E ⊗ F → E ′ ⊗ F ′. − ) → (− ⊗ − ) ⊗ − u v w u v w from E × F × G to (E ⊗ F ) ⊗ G. We → illustrate the proof method on (2). u v u v It is immediately veriﬁed that h is bilinear. − ) = f (− ) ⊗ g(− ). − ) → − ⊗ − ⊗ − u v u v w from E × F to E ⊗ F ⊗ G is bilinear. and thus. but they also act on linear maps (they are functors). → → → → → → such that f ((− ⊗ − ) ⊗ − ) = − ⊗ − ⊗ − . (− . These isomorphisms are proved using the universal property of tensor products. Clearly. − ⊗ − ) u v w u w v w → → 4. The map w → → → → → (− . and thus. u v u v w Next. λ ⊗ − → λ− . u v w u v w Also consider the map → → → → → → (− . (− ⊗ − ) ⊗ − → − ⊗ (− ⊗ − ) → − ⊗ − ⊗ − u v w u v w u v w → → → → → → → 3. TENSOR PRODUCTS → → → → 1. f ◦ g and g ◦ f are identity maps. Not only do tensor products act on spaces. It is trilinear. Given two linear maps f : E → E ′ and g : F → F ′ . − ) ⊗ − → (− ⊗ − . u u Proof. f and g are isomorphisms. It is easily seen to be bilinear. such that → → → → (f ⊗ g)(− ⊗ − ) = f (− ) ⊗ g(− ). u v u u . − ) → fw (− ).1. consider the map → → → (− . and u v w u v w thus. z w z from (E ⊗ F ) × G into E ⊗ F ⊗ G. The other cases are similar. − . Fix some − ∈ G. − ⊗ − → − ⊗ − u v v u 403 → → → → → → → → → 2.11. and thus.

u u u u . with → → → → f (−1 . and left to the reader. . However. Remark: The tensor product E ⊗···⊗E m is also denoted as m E.404 CHAPTER 11. −n ) = f⊙ (ϕ(−1 . . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS If we also have linear maps f ′ : E ′ → E ′′ and g ′ : F ′ → F ′′ . since we already have the notion of a tensor product. . is an interesting object. is a vector space S. such that. we can easily verify that the linear maps (f ′ ◦ f ) ⊗ (g ′ ◦ g) and (f ′ ⊗ g ′ ) ◦ (f ⊗ g) agree on all vectors of the form − ⊗ − ∈ E ⊗ F . . rather then n vector spaces E1 . where n ≥ 2.1. together with a symmetric multilinear map ϕ : E n → S. 0 E = K). First. it corresponds to the algebra of polynomials with coeﬃcients in K in n noncommuting variables. and is called the m-th tensor power of E (with space T(E) = m≥0 1 E = E. . and E. which is easily done. When E is of ﬁnite dimension n. there is a unique linear map f⊙ : S → F . for every vector space F and for every symmetric multilinear map f : E n → F . . Since these vectors generate E ⊗ F . The generalization to the tensor product f1 ⊗ · · · ⊗ fn of n ≥ 3 linear maps fi : Ei → Fi is immediate. Deﬁnition 11. . . . we deﬁne symmetric tensor products (powers). The vector m called the tensor algebra of E. and construct symmetric tensor products from scratch. . First. . there is a more economical method. We now turn to symmetric tensors. −n )). note that we have to restrict ourselves to a single vector space E.3.2.1. En . so that symmetry makes sense. However. 11.2 Symmetric Tensor Products Our goal is to come up with a notion of tensor product that will allow us to treat symmetric multilinear maps as linear maps. We could proceed directly as in lemma 11. we conclude that → → u v (f ′ ◦ f ) ⊗ (g ′ ◦ g) = (f ′ ⊗ g ′ ) ◦ (f ⊗ g). we would have to deﬁne a multiplication operation on T(E). A symmetric n-th tensor power (or tensor product) of a vector space E. .

.2. . E nC ϕ / S CC CC f⊙ C f CC! Equivalently. ϕ2 ) for E. Let C be the subspace of n E generated by the vectors of the form − ⊗ · · · ⊗ − − − → ⊗ · · · ⊗ − →. The tensor power n E is too big. and for u u u u n every symmetric multilinear map f : E n → F . are isomorphic. . and all permutations π : {1. . Lemma 11. . . . . we deﬁne an appropriate quotient. u u u u n E)/C be the map . . the unique linear map f⊙ : E → F such that f = f⊙ ◦ ϕ.2. . n}. ϕ1 ) and (S2 . the symmetric u u u u → → → → tensor power n E is generated by the vectors −1 ⊙ · · · ⊙ −n . .3. Let ϕ : E n → ( → → → → (−1 . Given a vector space E. Replace tensor product by symmetric n-th tensor power in the proof of lemma 11. .2. −n ∈ E. Proof. . there is an isomorphism h : S1 → S2 such that ϕ2 = h ◦ ϕ1 . . Proof.1. . . −n ). denoting ϕ(−1 . . Given any two symmetric n-th tensor powers (S1 . Let p : n E→( n E)/C be the quotient map.2. . . . We claim that the quotient u space ( n E)/C does the job. . n} → {1. SYMMETRIC TENSOR PRODUCTS → → for all −1 . . and thus. We now give a construction that produces a symmetric n-th tensor power of a vector space E. . ϕ) for E can → → → → be constructed (n ≥ 2). . ϕ1 ) and (S2 . u u u u → → on the generators −1 ⊙ · · · ⊙ −n of u u n E. is deﬁned by → → → → f⊙ (−1 ⊙ · · · ⊙ −n ) = f (−1 . a symmetric n-th tensor power ( n E. −n ) → p(−1 ⊗ · · · ⊗ −n ). . −n ∈ E. . → → u1 un u− u− π(1) π(n) → for all −i ∈ E. where −1 .2. . −n ) as −1 ⊙· · ·⊙ −n . Lemma 11. ϕ2 ) for E.11. we show that any two symmetric n-th tensor powers (S1 . Furthermore. . or for short u u 405 f = f⊙ ◦ ϕ. there is a unique linear map f⊙ such that the following diagram commutes: F First.

. since f is symmetric. → → w → → → → → → → → u1 vi un u1 vi un u1 wi un i − ⊙ · · · ⊙ (λ− ) ⊙ · · · ⊙ − = λ(− ⊙ · · · ⊙ − ⊙ · · · ⊙ − ). Given any symmetric multilinear map f : E n → F . → → u1 un u− u− π(1) π(n) . the actual construction is not important. . The fact that the map ϕ : E n → as follows: n E is symmetric and multinear. or Sn (E). ϕ = p ◦ ϕ0 . Thus. the vectors − ⊙ · · · ⊙ − generate u u n 1 n 1 n ( E)/C. . What is important is that the symmetric n-th power has the universal property with respect to symmetric multilinear maps. since the vectors −1 ⊙ · · · ⊙ −n generate u u → → → → f⊙ (−1 ⊙ · · · ⊙ −n ) = f (−1 . we get z z n − ]) = f (− ). . u u u u → → → → Let us denote ϕ(−1 . n-th tensor power of E. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS → → → → or equivalently. . . −n ). It may not be standard. . is borrowed from Ramshaw. u u u u which shows that h and f⊙ agree. where [− ] is the → → → an induced linear map h : ( E)/C → F . if a linear map f⊙ : ( ( n E)/C. such that h([ z z ⊗ z n n − ∈ → equivalence class in ( E)/C of z E: E n LL p◦ϕ0 / ( n E)/C LLL LLL h f LLLL % F However. . Since the u u u u n → → → → vectors − ⊗ · · · ⊗ − generate u u E. . we have f⊗ (− ) = 0 for every − ∈ n E.406 CHAPTER 11. . there is a linear map f⊗ : such that f = f⊗ ◦ ϕ0 . −n ) = −1 ⊗ · · · ⊗ −n . as in the diagram below: E n GG n / E GG GG f⊗ G f GGG # ϕ0 n E→F F − → → → However. . and p is surjective. . Thus. → → → → → → u u u u u u 1 i n 1 i n − ⊙ · · · ⊙ − = − → ⊙ · · · ⊙ − →. It is clear that ϕ is symmetric. where ϕ0 (−1 . we must have n → → E)/C → F exists. n E=( n E)/C and ϕ constitute a symmetric Again. Other authors use the notation Symn (E). Remark: The notation n E for the symmetric n-th tensor power of E. We will adopt Ramshaw’s notation. −n ) as −1 ⊙ · · · ⊙ −n . can also be expressed − ⊙ · · · ⊙ (− + − ) ⊙ · · · ⊙ − = (− ⊙ · · · ⊙ − ⊙ · · · ⊙ − ) + (− ⊙ · · · ⊙ − ⊙ · · · ⊙ − ).

. and the vector space of symmetric multilinear maps S(E n . together with a symmetric multiaﬃne map ϕ : E n → S. an ∈ E.3. is an aﬃne space S. The last identity shows that the “operation” ⊙ is commutative. we can view the → → symmetric tensor −1 ⊙ · · · ⊙ −n as a multiset. u u Remark: As in the case of general tensors. and since by lemma 11. or for short f = f⊙ ◦ ϕ. this yields a (noncanonical) isomorphism between the vector space of symmetric multilinear forms S((E ∗ )n . . its inverse is the map f → f⊙ . the map − ◦ ϕ is bijective. Thus.2. Actually. It is also possible to deﬁne tensor products of aﬃne spaces. via the linear map −◦ϕ deﬁned by h → h ◦ ϕ. . where n ≥ 2. an )). . . When the space E has ﬁnite dimension. . and tensors of the form − ⊙· · ·⊙ − . Thus. with f (a1 . . Symmetric tensors in n E are also called symmetric n-tensors. F ) such that f = f⊙ ◦ ϕ. as aﬃne maps f⊙ : E → F . F ).3 yields an isomorphism between the vector space of linear maps L( n E. and symmetric tensor powers of aﬃne spaces. The motivation is to be able to deal with symmetric multiaﬃne maps f : E m → m F . there is a unique aﬃne map f⊙ : S → F . F ). are called simple (or decomposable) symmetric n-tensors. As a matter of fact.3 Aﬃne Symmetric Tensor Products Ramshaw gives a construction for the symmetric tensor powers of an aﬃne space. for every aﬃne space F and for every symmetric multiaﬃne map f : E n → F .3. Those → → → u1 un ui symmetric n-tensors that are not simple are often called compound symmetric n-tensors. for every symmetric multilinear map f ∈ S(E n . K) and n E. it turns out that we can easily construct symmetric tensors powers of aﬃne spaces from what we have done so far. . 11. . we now brieﬂy discuss symmetric tensor powers of aﬃne spaces. for all a1 . .11. Deﬁnition 11. there is a unique linear map f⊙ ∈ L( n E. using polynomials. F ). . since this might also be helpful to those readers who wish to study Ramshaw’s paper [65] carefully. where − ∈ E.3. . AFFINE SYMMETRIC TENSOR PRODUCTS for all permutations π on n elements. 407 where h ∈ L( n E. F ). K) is naturally isomorphic to ( n E)∗ . Indeed. A symmetric n-th tensor power (or tensor product) of an aﬃne space E. . the vector space of symmetric multilinear forms S(E n .1. h ◦ ϕ is clearly symmetric multilinear. such that. an ) = f⊙ (ϕ(a1 . Lemma 11.2.

TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS Equivalently. whose proof is left as an exercise. . If ϕ(a1 . . . it can be shown that E/ ≡F is an aﬃne space with associated vector space E / F . we can proceed in at least two ways. . . it is easy to show that symmetric tensor powers are unique up to isomorphism. on the generators a1 ⊙ · · · ⊙ an of n E. is an aﬃne space. . . where a1 . .3. an aﬃne congruence on E is deﬁned as a relation ≡F on E. . an are points in E. there is a unique aﬃne map f⊙ such that the following diagram commutes: E nC / S CC CC f⊙ C f CC! ϕ F As usual. an ∈ E. . . The following lemma. .. Lemma 11. The ﬁrst method is to mimick the constructions of this section. . an are points in E. and then construct the symmetric tensor power n n E. are as follows: (1) The notion of aﬃne space freely generated by a set I makes sense. However. getting the vector space E. where a1 . an ) is denoted as a1 ⊙· · ·⊙an . and together with the multiaﬃne map ϕ : E n → n E. and behave well. there is a more direct approach. the unique aﬃne map n f⊙ : E → F such that f = f⊙ ◦ ϕ.408 CHAPTER 11.2. is a symmetric n-th tensor power for E. but with aﬃne spaces and aﬃne and multiaﬃne maps. and for every symmetric multiaﬃne map f : E n → F . deﬁned as the restriction to E n of the multilinear map − . . (2) Quotients of aﬃne spaces can be deﬁned.. makes what we just claimed more precise. − − → → Then. Given an aﬃne space − → − → E and a subspace F of E . determined such that → → − − a ≡F b iﬀ ab ∈ F . . the reasons why tensor products of aﬃne spaces can be constructed. . then the symmetric tensor power E of the aﬃne space E already sits inside n n E consists of all aﬃne E as an aﬃne space! As a matter of fact. In fact. an ). Indeed. the symmetric tensor power n E is spanned by the tensors a1 ⊙· · ·⊙an . In order to prove the existence of such tensor products.. .− → − ⊙ ··· ⊙ − → → → → u1 un u1 un from (E)n to n E. . where a1 .. the subset n E of the vector space n E consisting of all aﬃne combinations of simple n-tensors of the form a1 ⊙ · · · ⊙ an . . Given an aﬃne space E. . It turns out that if we ﬁrst homogenize the aﬃne space E. is deﬁned by f⊙ (a1 ⊙ · · · ⊙ an ) = f (a1 . . the aﬃne space combinations of simple n-tensors of the form a1 ⊙ · · · ⊙ an . it is identical to the construction of the free vector space K (I) .

for all a1 . Indeed. . and dom(M) is ﬁnite.1. but also by the simple n-tensors of the form an . i ∈ dom(M). . For this. . .4 Properties of Symmetric Tensor Products → → → → Going back to vector spaces. since (I) i∈I M(i) = i∈dom(M ) M(i). . . this is a consequence of lemma 4. for any n ≥ 2. . .4 for symmetric tensor powers. and we simply followed an approach closer to traditional linear algebra. It is worth noting that the aﬃne tensor power n E is spanned not only by the simple n-tensors a1 · · · an . by lemma A. . This is because Ramshaw deﬁnes the hat construction as a special case of his construction of the aﬃne symmetric tensor power.3. as follows: JM = {η | η : {1. and write tensors a1 ⊙ · · · ⊙ am simply as a1 · · · am . .2. . we can associate a unique aﬃne map f⊙ : E m → E. note that the sum i∈I M(i) makes sense. . omitting the symbol ⊙.1. and this is quite easy to show. we just have to show that a symmetric multiaﬃne map is uniquely determined by its behavior on the diagonal. 11. an ) = h(a1 · · · an ). u u u u n generate E. we deﬁne the set JM of functions η : {1. M(i) = n}. that is. PROPERTIES OF SYMMETRIC TENSOR PRODUCTS Proof. Then. where −1 . . .4. −n ∈ E. whereas Ramshaw followed an approach in which aﬃne spaces played a more predominant role. an ∈ E. . n Given an aﬃne space E.11. . Following Ramshaw. . . . . since f is symmetric multiaﬃne and h = f⊙ is the unique aﬃne map such that f (a1 .3. we call the aﬃne map f⊙ . For every multiset M ∈ N . n} → dom(M). recall that a (ﬁnite) multiset over a set I is a function M : I → N. where a ∈ E. In the end. and that the set of all multisets over I is denoted as N(I) . . . the vectors −1 ⊙ · · · ⊙ −n . We let dom(M) = {i ∈ I | M(i) = 0}. . but Ramshaw favors the reading n E. the two approaches are equivalent. . am ) = f⊙ (a1 ⊙ · · · ⊙ am ). an ∈ E. given any polynomial aﬃne map F : E → E of degree m with polar form f : E m → E. . .2. am ∈ E. it is suﬃcent to show that every linear map n h: E → F is uniquely determined by the tensors of the form an . By lemma 11.2. The answer is that that they are isomorphic. the aﬃne blossom of F . i∈I . We will prove a version of lemma 11. .4. one may wonder what is the relationship between E and n E.5. |η −1 (i)| = M(i). if we let f = h ◦ ϕ. am ): view the notation f (a1 · · · am ) as an abbreviation for f⊙ (a1 ⊙ · · · ⊙ am ). Left as an exercise. The existence of the symmetric tensor power E m justiﬁes the multiplicative notation f (a1 · · · am ) for the polar value f (a1 . n} → dom(M). . . . such that f (a1 . . drop the subscript ⊙ from f⊙ . for all a1 . From lemma 11. . . . for any multiset M ∈ N(I) . . such that M(i) = 0 for ﬁnitely many i ∈ I. We personally favor the reading n E. but they are not linearly independent. which is a ﬁnite set. . 409 Let E and E be two aﬃne spaces. where a1 . However. again.

if i∈I M(i) = n and dom(M) = {i1 .410 CHAPTER 11. .. . . ik . . such that for every →⊙M (ik ) ) = − . . i2 . . TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS In other words. i∈I M (i)=n.. .. . . .. M(i2 ) occurrences of i2 . . The proof is very similar to that of lemma 11. . j ⊙M (i1 ) n E → F .. . i∈I M (i)=n .. the linear map f⊙ : E → F such that f = f⊙ ◦ ϕ. . . Then. Given a vector space E. → Lemma 11. . i2 . Intuitively. For any nontrivial vector space F . .. u We can now prove the following lemma. by lemma A. {i1 .4. for any family of vectors → (− M )M ∈N(I) . and thus. . .. M (i1 ) M (i2 ) M (ik ) → Given any k ≥ 1. We deﬁne the map f : E n → F as follows: f( j1 ∈I → n − vjn unn ) = j jn ∈I i∈I M ∈N(I) M (i)=n η∈JM It is not diﬃcult to verify that f is symmetric and multilinear. .2. ik . . . . w we show the existence of a symmetric multilinear map h : M ∈ N(I) with i∈I M(i) = n. where {i1 . we can also show that these vectors generate n E. .1 any function η ∈ JM speciﬁes a sequence of length n. consisting of M(i1 ) occurrences of i1 . we have → h(−1 ui − → 1 vj1 u11 . ik } = dom(M).ik }=dom(M ) is linearly independent. . we denote u − ⊙···⊙− → → u u k →⊙k as − .. 1 Note that must have k ≤ n. .1. is the desired map h.4. . they form a basis for n E. i1 . . . By the universal property of n the symmetric tensor product. M(ik ) occurrences of ik .1. . if (−i )i∈I is a basis for E. and any − ∈ E. . n i∈I M (i)=n. The details are left as an exercise. Using the commutativity of ⊙. Proof. → ⊙ · · · ⊙ −k ui wM → 1 n w vη(1) · · · vη(n) −M . {i1 .ik }=dom(M ) is a basis of the symmetric n-th tensor power E. then the family of u vectors → − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) → u u i1 ik M ∈N(I) . ik }. . any η deﬁnes a “permutation” of the sequence (of length n) i1 . it follow that the family − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) → → u i1 u ik M ∈N(I) .5 (2).

when p = 2. where i ∈ I (recall that M(i1 ) + · · · + M(ik ) = n).11. . This can also be seen directly... lemma 11. .4. and thus.. Polynomials can be deﬁned in terms of symmetric tensors. we can deﬁne h : E × E → → → → → h(− . In particular. → Given a vector space E and a basis (−i )i∈I for E. − ) = f (− ) ⊙ g(− ). jp ). Compare n n with the dimension of n E. → → → → (f ⊙ g)(− ⊙ − ) = f (− ) ⊙ g(− ). . This looks like a homogeneous polynomial of total degree n. PROPERTIES OF SYMMETRIC TENSOR PRODUCTS 411 As a consequence.1 shows that every symu − ∈ n E can be written in a unique way as → metric tensor z − = → z M ∈N(I) M (i)=n {i1 . see the next remark). . Again. Thus the dimension of n E is . We leave as an exercise to show p+n−1 p+n−1 that this number is . which is pn . the dimension of n E is the number of ﬁnite multisets (j1 . such that j1 +· · ·+jp = n. Remark: The number p+n−1 n is also the number of homogeneous monomials j j X1 1 · · · Xp p of total degree n in p variables (we have j1 + · · · + jp = n).ik }=dom(M ) i∈I → →⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) . → u ik u i1 → in the “indeterminates” −i . This is not a coincidence! Symmetric tensor products are closely related to polynomials (for more on this. u ik λM − 1 ui for some unique family of scalars λM ∈ K.. where the monomials of total degree n are the symmetric tensors → − ⊙M (i1 ) ⊙ · · · ⊙ − ⊙M (ik ) . it induces a unique linear map 2 2 2 E ′ by f ⊙ g: such that E→ E ′. the dimension of n E is n + 1. Given two linear maps f : E → E ′ and g : E → E ′ .4. jk ≥ 0. all zero except for a ﬁnite number. u v u u . this u is not a coincidence. when I is ﬁnite. say of size p. u v u v It is immediately veriﬁed that h is bilinear.

un+1 in A can be viewed as symmetric tensors u1 ⊙ · · · ⊙ un+1 . we can easily verify that (f ′ ◦ f ) ⊙ (g ′ ◦ g) = (f ′ ⊙ g ′ ) ◦ (f ⊙ g).2. we would have to deﬁne a multiplication operation on T(E). the vector space S(E) (also u denoted as Sym(E)).3. Remark: The vector space m S(E) = m≥0 E. then they form a basis of n A. This elegant proof is due to Ramshaw. (with 1 E = E. an algebra essentially has both a vector space (or module) structure. . . We could also have deﬁned S(E) from T(E). Actually. . The generalization to the symmetric tensor product f1 ⊙ · · · ⊙ fn of n ≥ 3 linear maps fi : E → F is immediate. . When this operation is associative and has an identity. When E is of ﬁnite dimension n. However. . which is easily done. . but this would also require deﬁning a multiplication operation (⊗) on T(E). multisets of size n + 1 consisting of points u1 . . then S(E) is obtained as the quotient of T(E). As a reward to the brave readers who read through this chapter. 11. given any progressive sequence u1 . → → → → of the form − ⊗ − − − ⊗ − . u2n . and if these tensors are linearly independent in n A.2 What’s nice about the symmetric tensor algebra.2. we recall theorem 5. → When E is of inﬁnite dimension and (−i )i∈I is a basis of E. called the symmetric tensor algebra of E. it can be shown to correspond to the ring of polynomials with coeﬃcients in K in n variables (this can be seen from lemma 11. and 0 E = K). is that S(E) provides an intrinsic deﬁnition of a polynomial ring (algebra!) in any set I of variables.3. Let me tease the reader anyway. where 0 ≤ k ≤ n. Very elegant. and left to the reader. 2 . If this is done. by the subspace of T(E) generated by all vectors in T(E). First. isn’t it? u v v u We can ﬁnally apply this powerful machinery to CAGD. is an interesting object. . together with a multiplication operation which is bilinear. and we will continue to do so. Then.1). we give a short proof of the hard part of theorem 5. and a ring structure.5 Polar Forms Revisited When E = A. by saying that an algebra over a ﬁeld K (or a ring A) consists basically of a vector space (or module) structure.4. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS If we also have linear maps f ′ : E ′ → E ′′ and g ′ : E ′ → E ′′ . we have n + 1 tensors uk+1 ⊙ · · · ⊙ un+k .412 CHAPTER 11. we have avoided talking about algebras (even though polynomial rings are a prime example of algebra). corresponds to the ring of polynomials in inﬁnitely many variables in I.

. we know that for any sequence of m + 1 points b0 . . u2m be a progressive sequence of numbers ui ∈ R. for every k. Now. By the ﬁrst half of theorem 5.3.3. .11. as a corollary of lemma 11. . whose polar form f : Am → E satisﬁes the conditions f (uk+1. . . . . there will be a unique linear map m h: satisfying the conditions A → E. whose polar form f : Am → E satisﬁes the conditions for every k. . Proof. POLAR FORMS REVISITED 413 Theorem 5. by lemma A. . . . . h(uk+1 ⊙ · · · ⊙ um+k ) = bk . . bm in E (which is assumed nontrivial!). . u2m . given the progressive sequence u1 . m However. whose polar form f : Am → E satisﬁes the conditions f (uk+1. . there is a unique polynomial curve F : A → E of degree m. . . Uniqueness has already be shown.2.1. . 0 ≤ k ≤ m. . the dimension of A is m + 1 (which can also be seen directly). where 0 ≤ k ≤ m. since then. But this is easy! Indeed. . 0 ≤ k ≤ m. we just have to prove the existence of a linear map m h: satisfying the conditions A → E. 0 ≤ k ≤ m. . . f (uk+1 . for every k. bm in some aﬃne space E. We just have to show that they form a basis of m A. Given any sequence of m+1 points b0 . h(uk+1 ⊙ · · · ⊙ um+k ) = bk . um+k ) = bk . we want to prove that there exists a polynomial curve F : A → E of degree m. we have m+1 symmetric tensors uk+1 ⊙· · ·⊙um+k .2. um+k ) = bk . . and so. we will have succeeded. . since then. 0 ≤ k ≤ m. 0 ≤ k ≤ m.2 Let u1.4.3. . we let g = h ◦ ϕ. . . there is at most one polynomial curve of degree m. If we can show that there exists a symmetric multilinear map g : (A)m → E satisfying the conditions g(uk+1. . . for every k. . for every k. um+k ) = bk . since we can deﬁne f as the restriction of g to Am . .5. using symmetric tensors. . um+k ) = bk .

r1 rm 0≤i≤m where σi (x1 . h(uk+1 ⊙ · · · ⊙ um+k ) = bk . for every k. 0 δ. form a basis of m A. let us denote 1 as δ (this is a vector in R). . which implies that there is at most one linear map m h: satisfying the conditions A → E. m A. This leads us to investigate bases of m A. is that the symmetric tensors uk+1 · · · um+k . h(uk+1 ⊙ · · · ⊙ um+k ) = bk . As suggested earlier. . judicious use of linear and multilinear algebra allowed us to prove the existence of a polynomial curve satisfying the conditions of theorem 5. . every symmetric tensor θ1 · · · θm can be written as (u1 δ + r1 0) · · · (um δ + rm 0) = r1 · · · rm σi um u1 m−i i .. Then. which proves the existence (and also uniqueness!) of a linear map m for every k. this implies that the vectors uk+1 ⊙ · · · ⊙ um+k . . Thus. For example. . By lemma A. for every θ ∈ A. we have θ1 θ2 θ3 = 2 3 u1 u2 u3δ 3 + (u1 u2 r3 + u1 u3 r2 + u2 u3 r1 )0δ 2 + (u1 r2 r3 + u2 r1 r3 + u3 r1 r2 )0 δ + r1 r2 r3 0 .2. 0 ≤ k ≤ m. where 0 ≤ k ≤ m. for notational simplicity.3. xm .5 (1). the symmetric tensors uk+1 ⊙ · · · ⊙ um+k form a basis of m A. 0 ≤ k ≤ m. 0 ≤ k ≤ m. .. 0) is a basis for A. without having to go through painful calculations. h: satisfying the conditions A → E. generate where 0 ≤ k ≤ m. symmetric tensors θ1 ⊙ · · · ⊙ θm will be denoted simply as θ1 · · · θm . bases of A. and thus. the multiaﬃne map f which is the restriction of g = h ◦ ϕ to Am . . . xm ) is the i-th elementary symmetric function in x1 .2. and the dimension of m A is m + 1. is the polar form of the desired curve. since θ = uδ + r0. As we already explained.414 CHAPTER 11. The crucial point of the previous proof.. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS for every k. . we know that (1. To avoid clashes. omitting the symbol ⊙.. For example. Since there are m + 1 vectors uk+1 ⊙ · · · ⊙ um+k .

an ) is a barycentric aﬃne frame for E. . where r. where 0 ≤ i ≤ m. In e general. . t) i. vj r m−k s k . . 0) and (0. Then. and (Ω. . 1). an ) for E. considering the aﬃne plane A2 . then the family of symmetric tensors ai0 ai1 · · · ain . δ2 .11.4. where δ1 and δ2 denotes the unit vectors (1. the symmetric tensor u1 · · · um can be written as (u1 δ + 0) · · · (um δ + 0) = For example. s. where i = i1 + · · · + in . This is also a direct consequence of lemma 11. . is a B´zier basis of m E. . which It is easy to generalize these bases to aﬃne spaces of larger dimensions. The above makes it clear that the m+1 symmetric tensors 0 δ i generate m A. . . the family of tensors r m−k s k . we have the power basis consisting of m i j the tensors δ1 δ2 Ω k . Thus. if we use the basis (δ1 . .. we prefer the family m m−i i 0 δ . for every θ ∈ A (the condition u + v = 1 holding only iﬀ θ is a point). Considering any barycentric aﬃne frame (a0 . For reasons of convenience to be revealed in a moment.5. Ω) for A2 . . they form a basis of m A. . . δn )) is an aﬃne frame for E. where i + j + k = m. of tensors i We could also have used the barycentric basis (r. then we have a B´zier basis consisting of the tensors r i sj tk . . . k in A2 .. where 0 ≤ k ≤ m. e m A. . also forms a basis of we call the B´zier basis. for points u1 . . . um ∈ A. If we consider a barycentric basis (r. s are distinct points in A. if E is an aﬃne space of dimension n. If (a0 . and Ω the origin of A2 . It will also be useful to extend the e notion of weight function deﬁned for the homogenized version E of an aﬃne space E. we have u1 u2 u3 = u1 u2 u3 δ 3 + (u1 u2 + u1 u3 + u2 u3 )0δ 2 + (u1 + u2 + u3 )0 δ + 0 . is a basis of m E. we can write θ = ur + vs. |J|=k I∪J={1. and every symmetric tensor θ1 · · · θm can be written as (u1 r + v1 s) · · · (um r + vm s) = ui I∩J=∅. the family of symmetric tensors i i δ11 · · · δnn Ωm−i . .. and since m A is of dimension m + 1. For example. n 0 1 where i0 + i1 + · · · + in = m.1. . j. where i + j + k = m. POLAR FORMS REVISITED 415 In particular.m} i∈I j∈J m−i 2 3 σi (u1 . um)0 0≤i≤m m−i δi. and call it the power basis. s). to the symmetric tensor power m E. . (δ1 ..

using the basis (δ. the tensor power m E is even generated by the simple m-tensors of the form am . we notice that the ﬁrst column contains 1 in the ﬁrst row. uk+m )0 δ. an ) for E. 1 σ1 (um+1 . .416 CHAPTER 11. . we can factor 2≤i≤m+1 (um+i−1 − ui−1 ) = 1≤i≤m (um+i − ui ). . which is obvious. .5 showed. . . u2m ) (um+i − uj ).2. Then. . . . is that the symmetric tensors dk = uk+1 · · · um+k form a basis of m A. .. iﬀ θ ∈ m E.2. contain the factor (um+i−1 − ui−1). . . where b1 · · · bm ∈ E. . We now give another proof that these tensors are linearly independent. and we get m−i i σi (uk+1 . ω(ai0 ai1 · · · ain ) = 1.3. . where a ∈ E. . u2m ) . in view of lemma 11. . .3. 0) for A. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS m deﬁne the weight function (or ﬂavor function) ω : E → K. where 0 ≤ i ≤ m. We claim that det(M) = 1≤i≤j≤m σ1 (u1 . the aﬃne tensor power of E. um ) σ1 (u2 . . . is a B´zier basis of m E. . am ∈ E. Thus. . is to imitate what we did in the computation of the Vandermonde determinant. it is easily seen that a tensor θ ∈ m E has weight 1 (ﬂavor 1) iﬀ it can be expressed as an aﬃne combination of simple m-tensors of the form b1 · · · bm . . . . . One way two compute det(M). . . . . .. and 0 elsewhere. . dk = (uk+1 δ + 0) · · · (uk+mδ + 0) = 0≤i≤m The m + 1 tensors dk are linearly independent iﬀ the determinant of the (m + 1)(m + 1) matrice M = (mi.. .. Actually. . ending by subtracting the ﬁrst row from the second.e. It is also worth noting that m E is generated by the simple m-tensors of the form a1 · · · am . . . . . σm (u1. . the family of tensors ai0 ai1 · · · ain . . n 0 1 where i0 + i1 + · · · + in = m. we express every point u as uδ + 0. . or de Casteljau pole system.. then the (m − 1)-th row from the m-th. as the unique linear map such that. where 2 ≤ i ≤ m + 1 (counting from top down). etc.. and 1 ≤ k ≤ m + 1. .. If we subtract the m-th row from the (m + 1)-th (the last row). . . . um+1 ) σ1 (u3 . . . um+2 ) . What lemma A. 0 1 n where i0 + i1 + · · · + in = m. . . since for any barycentric aﬃne basis (a0 . um+2 ) . by computing a determinant. um+1 ) σm (u3. . is nonnull. It is immediately seen that ω is independent of the chosen aﬃne frame. um ) σm (u2. . uk+m)).2. 1 1 det(M) = 1 . This is certainly not obvious at ﬁrst glance. σm (um+1 .k ) = (σi (uk+1. . .. . We will proceed by induction. where a1 . . . and that all the other entries on row i. . . . i. . . As earlier. . We call such a family of tensors a de Casteljau basis. in view of the remark e just after lemma 11. .

. r1 ). . and we now give such an example. Ω) for A3 . r2 ). −2 . u2. (u3 . u3 ) = 7u1 u2 u3 + 2u1 u2 + 2u1 u3 + 2u2u3 − 1u1 − 1u2 − 1u3 + 4 f2 (u1 . Of. (u3 . j. getting f : A × A × A → A3 . r3 )) = 1u1 u2 u3 + 1u1u2 r3 + 1u1 u3 r2 + 1u2 u3 r1 + 3u1 r2 r3 + 3u2 r1 r3 + 3u3r1 r2 − 5r1 r2 r3 f3 ((u1. . (−1 . It is also instructive to go through the steps of polarizing. the result of homogenizing e e e3 3 3 f : A × A × A → A . u2. (u2 . r) = 0u3 + 0u2r + 0ur 2 + 1r 3 . (u3 . but of size m × m. (u2 . Note that we could have ﬁrst homogenized F : A → A3 . given by f1 ((u1. u2m−1 . − )). → → → deﬁned as follows (assuming the standard aﬃne frame (Ω. det(M) = 0 iﬀ um+i = uj . r1 ). homogenizing. and (−1 . we get a similar determinant. u2. − . r3 )) = 0u1 u2 u3 + 0u1 u2 r3 + 0u1 u3 r2 + 0u2u3 r1 + 0u1 r2 r3 + 0u2r1 r3 + 0u3 r1 r2 + 1r1 r2 r3 . for all i. u3 ) = 2u1 u2 u3 − 1u1u2 − 1u1 u3 − 1u2u3 + 4u1 + 4u2 + 4u3 − 8. Then. −2 . POLAR FORMS REVISITED 417 and by expanding according to the ﬁrst column. → → → Taking the basis (δ. getting F2 (u. r) = 1u3 + 3u2r + 9ur 2 − 5r 3 F1 (u. with 1 ≤ i ≤ j ≤ m. explicitly. course.5.11. and tensoring. for A3 ): e e e3 F1 (u) = 7u3 + 6u2 − 3u + 4 F2 (u) = 1u3 + 3u2 + 9u − 5 F3 (u) = 2u3 − 3u2 + 12u − 8. we rediscover the condition for a progressive sequence. . r2 ). r2 ). namely. r) = 2u3 − 3u2 r + 12ur 2 − 8r 3 . is f : (A) → A3 . (u2 . r1 ). F3 (u. given by f1 (u1 . r2 ). r3 )) = 2u1 u2 u3 − 1u1 u2 r3 − 1u1 u3 r2 − 1u2 u3 r1 + 4u1 r2 r3 + 4u2 r1 r3 + 4u3r1 r2 − 8r1 r2 r3 f4 ((u1. r1 ). u3 ) = 1u1 u2 u3 + 1u1 u2 + 1u1 u3 + 1u2u3 + 3u1 + 3u2 + 3u3 − 5 f3 (u1 . We ﬁrst polarize F : A → A3 . r) = 7u3 + 6u2r − 3ur 2 + 4r 3 F4 (u. 0) for A. and involving only the 2m − 2 elements u2 . we can conclude by induction. (u3 . (u2 . Consider the polynomial curve F : A → A3 . r3 )) = 7u1u2 u3 + 2u1 u2 r3 + 2u1u3 r2 + 2u2 u3 r1 − 1u1 r2 r3 − 1u2 r1 r3 − 1u3 r1 r2 + 4r1 r2 r3 f2 ((u1.

in the present case vectors.. Now if we rescale each tensor m m−k k . Some results on osculating ﬂats can are also shown as well as a generalized version of lemma 5. (f )⊙ (0 ). we easily see that (f1 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 7a + 2b + −1c + 4d (f2 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 1a + 1b + 3c − 5d 2 2 3 3 2 3 2 3 2 3 (f4 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 0a + 0b + 0c + 1d.e. . An advantage of the B´zier basis is that the tensors r m−k s k e are really points. f⊙ carries some very e tangible geometric signiﬁcance. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS and then polarized F : A → A3 .2 (conditions on polar forms for polynomial maps to agree to kth order). that we write a symmetric tensor in 3 A as a δ 3 + b 0δ 2 + c 0 δ + d 0 . vector) (f )⊙ m m−k k 0 δ . 3 Finally. getting the same trilinear map f : (A)3 → A3 .4. Thus. assuming 3 the power basis of A. However. this material is quite technical.5. we have a = u1 u2 u3 . i. The columns of the above matrix have a geometric signiﬁcance. This is because symmetry is built-in. and the last one is a a point. s) for A is used. are the B´zier control points of the curve F . It can be be found in Chapter B. The ﬁrst three are vectors. Then. for (u1 δ + r1 0) (u2δ + r2 0) (u3δ + r3 0). k 2 3 (f3 )⊙ (a δ 3 + b 0δ 2 + c 0 δ + d 0 ) = 2a − 1b + 4c − 8d This explains why it is interesting to rescale by Similarly. For example. if the aﬃne basis (r.418 CHAPTER 11. (f )⊙ (0δ 2 ). and d = r1 r2 r3 . it is easy to see that the tensors (in this case. k m . Note that the four columns happen to be the tensors. (f )⊙ (δ 3 ). c = (u1 r2 r3 + u2 r1 r3 + u3 r1 r2 ). Section B. Note how tensoring eliminates duplicates that polarizing introduced. we arrive at a geometric interpretation for the columns of the coeﬃcients 0 δ by k of the homogenized map F : the coeﬃcients of uk in the formula for the coordinates of F (u) are precisely the coordinates (except the last one) of the tensor (in this case. we compute the tensored version (f )⊙ : A → A3 of f : (A)3 → A3 . b = (u1 u2 r3 + u1 u3 r2 + u2 u3 r1 ). points) f⊙ (r m−k s k ). (f )⊙ (0 δ). as abstract as it is.

− )(− ) = 0 for all − ∈ E. Given some linear maps f : E → E ′ . − ∈ F . − − → → Prove that E/ ≡F is an aﬃne space with associated vector space E / F . Show that if α(f.1. v u u v Problem 4 (20 pts). − )(− ) = f (− )− . Problem 7 (10 pts).6 Problems Problem 1 (10 pts). Prove that α is bilinear and that the unique linear map v u α⊗ : E ∗ ⊗ F → L(E. determined such that → → − − a ≡F b iﬀ ab ∈ F . Prove that the number of homogeneous monomials j j X1 1 · · · Xp p . (3) Prove that tensor products of aﬃne spaces exist. then either f = 0 or − = 0 . (1) Prove that the notion of an aﬃne space freely generated by a set I makes sense (mimic the construction of the free vector space K (I) ). Problem 5 (10 pts). F ) be the map deﬁned such that → → → → α(f. Problem 2 (10 pts). Prove lemma 11.6. Let E and F be two vector spaces of ﬁnite dimension. Recall that the set of linear maps from E to F is denoted as L(E.2.5. and − ∈ E. Prove that n E and n E are isomorphic. PROBLEMS 419 11. Problem 3 (20 pts). Problem 6 (10 pts). prove that (f ′ ◦ f ) ⊗ (g ′ ◦ g) = (f ′ ⊗ g ′ ) ◦ (f ⊗ g). F ). Fill in the details of the proof of lemma 11. f ′ : E ′ → E ′′ .3. (2) Quotients of aﬃne spaces can be deﬁned as follows. an aﬃne congruence on E is deﬁned as a relation ≡F on E. − → → → → → → − Hint. g : F → F ′ . Let α : E ∗ × F → L(E. F ) induced by α is an isomorphism. v u u v → → for all f ∈ E ∗ .11. and g ′ : F ′ → F ′′ . Given an aﬃne space E and a − → − → subspace F of E .

y − + x− ). u v u v → → → → → − → − Prove that if (− 1 . Note that − → → → → − ( 0 . Hint. jp ) such that j1 + · · · + jp = n. then ((− 1 . We call such a basis a real basis. v v → → − and thus. of total degree n in p variables is Problem 8 (10 pts). . u u v v u v → → v and the multiplication by a complex scalar z = x + iy deﬁned such that → → → → → → (x + iy) · (− . where xi ∈ C and −i ∈ E. . 0 ). . u we can write → → → → (− . . − ∈ R ⊗ E (and recall that R ⊗ E is isomorphic u v u v to E). −2 + −2 ). − n ) is any basis of E. Show that every vector in C ⊗ E can be written as j → λj ⊗ −j + i u j → µj ⊗ −j . . Viewing C as a vector space (of dimension 2) over R. − ) = − + i− . − ) = i(− .e. (− n . where − . i. we can deﬁne the tensor product C ⊗ E. 0 ). Denoting the above vector space as EC . . as − + i− . . Prove that the dimension of n E is p+n−1 . Prove that this is also the number of ﬁnite n multisets (j1 . −2 ) = (−1 + −1 . − ) = (x− − y − . which is a real vector → → u u space. n Problem 9 (20 pts). jk ≥ 0. u v u v u v Prove that the above structure is a complex vector space.420 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS p+n−1 . . u → → → → where λj . we can deﬁne multiplication by a complex scalar z ∈ C as z· i → xi ⊗ −i = u i → zxi ⊗ −i . Since every element of C ⊗ E is of the form i xi ⊗ −i . 0 ). . . . (ii) Consider the structure E × E under the addition operation → → → → → → u (−1 . Let E be a real vector space of dimension n. −2 ) + (−1 . prove that C ⊗ E is isomorphic to EC . . identifying E with the subspace of EC consisting of all vectors of the form (− . 0 )) is a basis of e e e e EC . . µj ∈ R. u (i) Prove that the above operation makes C ⊗ E into a complex vector space called the complexiﬁcation of E.

.6. −2 ) + i[ϕ(−1 . −2 ) − ϕ(−1 . so is ϕC . −2 ) + ϕ(−1 . PROBLEMS 421 (iii) Prove that every linear map f : E → E can be extended to a linear map fC : EC → EC deﬁned such that → → → → fC (− + i− ) = f (− ) + if (− ). u v u v (iv) Prove that every bilinear form ϕ : E × E → R can be extended to a bilinear map ϕC : EC × EC → C deﬁned such that → → u → → → → → → u → v ϕC (−1 + i−1 .11. −2 )]. u v → v u u v v v → u → Furthermore. −2 + i−2 ) = ϕ(−1 . if ϕ is symmetric.

422 CHAPTER 11. TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS .

Part IV Appendices 423 .

424 .

a subfamily of (ui )i∈I is a family (uj )j∈J where J is any subset / of I. e Algebra 1. We recommend the following excellent books for an extensive treatment of linear algebra. e e e e e e Another useful and rather complete reference is the text Finite-Dimensional Spaces. by Strang [81]. and wk = v. where k is any index such that k ∈ I. projectives. But beware. The appendices contain no original material. we denote as (ui )i∈I ∪k (v) the family (wi )i∈I∪{k} deﬁned such that. We can deal with an arbitrary set X by viewing it as the family (Xx )x∈X corresponding to the identity function id : X → X. by Lang [47]. Algebra.1 Vector Spaces The purpose of the appendices is to gather results of Linear Algebra and Analysis used in our treatment of the algorithmic geometry of curves and surfaces. by Boehm and Prautzsch [11] is also an excellent reference on geometry geared towards computer aided geometric design. there is probably more material than really needed. recall that a family (ai )i∈I of elements of A is simply a function a : I → A. Given a family (ui )i∈I . and euclidiennes. and we advise our readers to proceed “by need”. except perhaps for the presentation and the point of view. 425 . and geometry: Linear Algebra and its Applications. by Walter Noll [57]. Alg`bre lin´aire et g´om´trie classique. Algebra. by Bertin [8]. G´om´tries aﬃnes. (ai )i∈I = ∅. polynomials. wi = ui if i ∈ I. e e e e G´om´trie 1 and 2. by e e e e Tisseron [83]. In fact. where J is a ﬁnite subset of I (the support of the family). by Michael Artin [1]. we say that a family (ai )i∈I has ﬁnite support iﬀ ai = 0 for all i ∈ I − J. the notation and terminology is a bit strange! The text Geometric Concepts for Geometric Design. by Berger [5. The ﬁrst two chapters of Strang [81] are highly recommended. by Bourbaki [14. Given a set A. 15]. Given a family (ui )i∈I and any element v. Algebra. We begin by reviewing some basic properties of vector spaces. A family (ai )i∈I is ﬁnite if I is ﬁnite. We agree that when I = ∅. If A is ring with additive identity 0. Alg`bre.Appendix A Linear Algebra A. 6]. by Van Der Waerden [84]. Alg`bre Lin´aire et G´om´trie El´mentaire by Dieudonn´ [25]. by Mac Lane and Birkhoﬀ [52].

The ﬁeld K is often v v v called the ﬁeld of scalars. u u u → → → (V4) 1 · − = − . Next. LINEAR ALGEBRA In this chapter. .e. i. a vector space over K (or K-vector space) is a set E (of vectors) together with two operations + : E × E → E (called vector addition). unless speciﬁed otherwise. . . of the form − . − → From (V0). and thus is nonempty. β ∈ K. we will refer to a K-vector space simply as a vector space. and α · (−− ) = −(α · − ). Addition can be extended to Rn as follows: (x1 . . in the rest of this chapter. . those of a vector space. For simplicity. and multiplication by a scalar being multiplication in the ﬁeld. . . the element α · − is also denoted as α− . − ∈ E. it will always be clear from the type of u the arguments which + is intended. For every n ≥ 1. The ﬁeld K itself can be viewed as a vector space over itself. we review the concepts of linear combination and linear independence. We begin by reviewing the deﬁnition of a vector space. .t. addition v v of vectors being addition in the ﬁeld. 1 . . xn ). with identity element 0 . satisfying the following conditions: − → (V0) E is an abelian group w. for all α. . . We can also deﬁne an operation · : R × Rn → Rn as follows: λ · (x1 . .r. +.1. it is assumed that all families of scalars have ﬁnite support. xn ) + (y1 . . Deﬁnition A. .1. if we write elements of E as vectors. The deﬁnition below is stated for an arbitrary ﬁeld K. From (V2). The resulting algebraic structure has some interesting properties. xn ) = (λx1 . From − → − → → → → → − (V1). − ∈ E. The symbol + is overloaded. we also assume that K = R. u u u u → → → (V3) (αβ) · − = α · (β · − ).426 APPENDIX A. we get α · 0 = 0 . . for all α. the ﬁeld of real numbers. we assume that all K-vector spaces are deﬁned with respect to a ﬁxed ﬁeld K. − . . As noted earlier. Rn is a vector space over R. for all α ∈ K. xn + yn ). . λxn ). → → → → → → (V1) α · (− + − ) = (α · − ) + (α · − ). for all − ∈ E. u u u → → → Given α ∈ K and − ∈ E. since it denotes both addition in the ﬁeld K and addition of vectors in E. → However. Given a ﬁeld K. . let Rn be the set of n-tuples x = (x1 . . a vector space always contains the null vector 0 . yn ) = (x1 + y1 . . we get 0 · − = 0 . u v u v u v → → → → (V2) (α + β) · − = (α · − ) + (β · − ). . β ∈ K. Thus. although all deﬁnitions and proofs hold for any commutative ﬁeld K. and v v v → → (−α) · − = −(α · − ). − ∈ E.1 and · : K × E → E (called scalar multiplication). but readers may safely assume that K = R. . . Unless speciﬁed otherwise or unless we are dealing with several diﬀerent ﬁelds. .

VECTOR SPACES 427 → Deﬁnition A. µ ∈ K. u j The notion of a subspace of a vector space is deﬁned as follows. → → − λi −i = 0 implies that λi = 0 for all i ∈ I. we stipulate that − = 0 . A vector − ∈ E is a linear combination of a v − ) of elements of E iﬀ there is a family (λ ) of scalars in K such that → family ( ui i∈I i i∈I − = → v i∈I → λi −i . Indeed. u → → − → When I = ∅. the family ∅ is linearly independent. Letting λ = µ = 0. u − = → uj i∈(I−{j}) i∈I which implies that → −λ−1 λi −i . − ∈ F .1. → Given a vector space E. .A. The subspace { 0 } will be denoted as 0 (with a mild abuse of notation). − → − → we see that every subspace contains the vector 0 .1. u i∈I We agree that when I = ∅. u v u v It is easy to see that a subspace F of E is closed under arbitrary linear combinations of vectors from F . and all λ. a subset F of E is a linear subspace (or subspace) → → → → of E iﬀ F is nonempty and λ− + µ− ∈ F for all − . a family (−i )i∈I is linearly dependent iﬀ there is some family (λi )i∈I of scalars u in K such that → → − λi −i = 0 and λj = 0 for some j ∈ I. and that any intersection of subspaces is a subspace. Let E be a vector space. there is some family (λi )i∈I of scalars in K such that → → − λi −i = 0 and λj = 0 for some j ∈ I. We say that a family (−i )i∈I is linearly independent v u iﬀ for every family (λi )i∈I of scalars in K.3. Subspaces having such a “generating family” play an important role.1. the subset V of E consisting of the v − → → null vector 0 and of all linear combinations of (−i )i∈I is easily seen to be a subspace of v E. given a family (−i )i∈I . Deﬁnition A. and motivate the following deﬁnition.2. → → A family (−i )i∈I is linearly dependent iﬀ some −j in the family can be expressed as a u u linear combination of the others vectors in the family. Given a vector space E. u i∈I → Equivalently.

A family ( ui i∈I called a basis of V . there is some family (λ ) of → → vectors vi v i i∈I scalars in K such that − = → → λi −i . It is a standard result of linear algebra that every vector space E has a basis. for any family (λi )i∈I of scalars in K. Thus. .1. Since this → set is nonempty and ﬁnite.4. with p ∈ H. If µ = 0. i∈I i i i i∈I Note that the proof of the above lemma holds for arbitrary vector spaces. → → ing that v ui i∈I − → → → But then. I and J have the same cardinality. but the proof is more sophisticated for vector spaces that do not have a ﬁnite set of generators (it uses Zorn’s lemma).1. LINEAR ALGEBRA → Deﬁnition A. Indeed.5. and since the family (− ) is linearly independent. → Theorem A. showv u − is a linear combination of (− ) and contradicting the hypothesis.6. We prove the above result in the case where a vector space is generated by a ﬁnite family. we have λ − = 0 . if v ui i∈I ui i∈I k → v − to the family (− ) is linearly independent (where k ∈ I). if B does not generate E. → → by adding v ui i∈I / → → → − Proof.1. The next theorem also holds in general. a family (−i )i∈I of v − ∈ V spans V or generates V iﬀ for every − ∈ V . v v − ) . Given a vector space E and a subspace V of E. Given a linearly independent family (−i )i∈I of elements of a vector space u − ∈ E is not a linear combination of (− ) .5. the family B = ( uh h∈H∪{p} is linearly independent. We begin with a crucial lemma. Given any ﬁnite family S = (−i )i∈I generating a vector space E and any u −) → linearly independent subfamily L = ( uj j∈J of S (where J ⊆ I). say B = (−h )h∈H . and thus we have − = − i∈I (µ−1 λi )−i . v u → → then µ has an inverse (because K is a ﬁeld). We claim that u → B generates E. and the integer n is called the dimension of the vector space E. then there is some −p ∈ S that is not u a linear combination of vectors in B (since S generates E). if E u v has a ﬁnite basis of n elements. → Lemma A. Assume that µ− + i∈I λi −i = 0 . Consider the set of linearly independent families B such that L ⊆ B ⊆ S. we say → → or generated by ( vi i∈I vi i∈I − ) that spans V and is linearly independent is → that V is ﬁnitely generated . v v i∈I → → We also say that the elements of (−i )i∈I are generators of V and that V is spanned by (−i )i∈I . In particular.428 APPENDIX A. this contradicts the maximality of B. µ = 0. and that → → for any two bases (−i )i∈I and (−j )j∈J . Thus. Then. If a subspace V of E is generated by a ﬁnite family (− ) . Thus. and since L ⊆ B ⊂ B ′ ⊆ S. it has some maximal element. we u u have λi = 0 for all i ∈ I. there is a basis B of E such that L ⊆ B ⊆ S. not only for ﬁnitely generated vector spaces. Proof. by lemma / −) → ′ A. every basis of E has n elements. we only prove the theorem for ﬁnitely generated vector spaces. then the family (− ) ∪ (− ) obtained → → → E.1. B is a basis of E such that L ⊆ B ⊆ S.

the problem is to garantee the existence of a maximal linearly independent family B such that L ⊆ B ⊆ S.6 also holds for vector spaces that are not ﬁnitely generated. In this case. m ≤ n.1. Then. Given a vector space E. If p ∈ L. and the families (−i )i∈(I−{p}) ∪(−→)l∈L and (−j )j∈J generate the same subspace u vρ(l) v ′ of E. → Proof.A. §5 (pp. The following replacement lemma shows the relationship between ﬁnite linearly independent families and ﬁnite families of generators of a vector space.1. 139-140).1. we can always assume that L ∩ I = ∅. and replace ρ by the injection ρ′ which agrees with ρ on L − {p} and such that ρ′ (p′ ) = ρ(p). Consider → the linearly independent family (−i )i∈(I−{p}) .8. Readers who want to know more about Zorn’s lemma and the proof of theorem A. → Lemma A. We proceed by induction on |I| = m. The existence of such a maximal family can be shown using Zorn’s lemma. or Artin [1]. 878-884) and Chapter III. where p is any member of I. we have i∈(I−{p}) → → u → − u λi −i − −p = 0 . Appendix §1 (pp. and u the lemma holds trivially with L = J (ρ is the identity). where |I| = m. By the induction u hypothesis. The following lemma giving useful properties characterizing a basis is an immediate consequence of theorem A. Appendix 2. → Lemma A. there exists a set L and an injection ρ : L → J such that L ∩ (I − {p}) = ∅. In particular.6 should consult either Lang [47]. 588-589). Since −p is a linear combination of (−j )j∈J and u v −) → −→) −) → → the families ( ui i∈(I−{p}) ∪ (vρ(l) l∈L and ( vj j∈J generate the same subspace of E. the v following properties are equivalent: (1) B is a basis of E. (2) B is a maximal linearly independent family of E. Given a vector space E. → → Thus. → → |L| = n−m. and let ( vj j∈J be any ﬁnite family such that every −i is a linear u − ) . −p is a u → linear combination of (−i )i∈(I−{p}) ∪ (−→)l∈L . where |J| = n. .1.6. the family (−i )i∈I is empty. there exists a set L and an injection ρ : L → J → combination of ( vj j∈J → → such that L ∩ I = ∅. When m = 0. |L| = n − m. for any family B = (−i )i∈I of vectors of E. (3) B is a minimal generating family of E.1. let (−i )i∈I be any ﬁnite linearly independent family u −) → → in E. VECTOR SPACES 429 Theorem A. and the families (−i )i∈I ∪ (−→)l∈L and (−j )j∈J generate u vρ(l) v the same subspace of E.1. §2 (pp. Assume |I| = m + 1.7. we can replace L by (L − {p}) ∪ {p } where p′ does not belong to I ∪ L. Let u vρ(l) − = → up i∈(I−{p}) → λi −i + u l∈L λl −→ vρ(l) (1) If λl = 0 for all l ∈ L.

1. by vρ(l) ρ(q) −→ is a linear combination of (− ) ∪ (−→) − → (1). Putting theorem A. i i∈I j j∈J When |I| is inﬁnite.8 implies that |I| ≤ |J|. this would contradict the fact that ( → u i i∈I is linearly independent. vi = 0}. LINEAR ALGEBRA → contradicting the fact that (−i )i∈I is linearly independent. for every two bases → → (− ) and (− ) u v of E. Let E be a ﬁnitely generated vector space. since L ∩ I = ∅ and |L| = n − m imply that (L − {q}) ∩ I = ∅ and |L − {q}| = n − (m + 1). Actually. Remark: Theorem A. the dimension |I| being a cardinal number which depends only on the vector space E. i i∈I j j∈J Proof. Furthermore. and vice-versa.1. This → → can be shown as follows. The dimension of a vector space . Let (−i )i∈I be a basis of E. let (−j )j∈J be a generating family of u v E.6 and lemma A. Since λq = 0. Indeed.1.1. λl = 0 for some l ∈ L. say u l = q. lemma A.1. For every j ∈ J. → Theorem A. and thus. since otherwise. we must have I = L.1. one can prove that lemma A. Since (−i )i∈I is a basis of E. Assume that (−i )i∈I and (−j )j∈J are bases of E. Furthermore. since otherwise (−i )i∈L u u −) would be another basis of E. If (−j )j∈J is also a basis. by (2). we have −→ = v− ρ(q) → → (−λ−1 λi )−i + λ−1 −p + u q q u i∈(I−{p}) l∈(L−{q}) (−λ−1 λl )−→ vρ(l) q (2) → → We claim that the families (−i )i∈(I−{p}) ∪ (−→)l∈L and (−i )i∈I ∪ (−→)l∈(L−{q}) generate u vρ(l) u vρ(l) the same subset of E. Since (−i )i∈I is linearly u u v u −) → independent and ( vj j∈J spans E. we obtain the following fundamental theorem. let Lj ⊆ I be the ﬁnite set → Lj = {i ∈ I | −j = v Let L = j∈J → vi −i .6 with L = ∅ and → → → → S = (−i )i∈I . the second family is obtained from the ﬁrst by replacing −→ by − .1. and − is a linear combination of (− ) → → → v− up up ui i∈(I−{p}) ∪ (−→)l∈L . |I| = |J| for any two bases (− ) and (− ) u v of E.1. Any family (−i )i∈I generating u −) → E contains a subfamily ( uj j∈J which is a basis of E.5.430 APPENDIX A. |I| ≤ |J|.9 also holds for vector spaces that are not ﬁnitely generated.8 together. I would be ﬁnite. The ﬁrst part follows immediately by applying theorem A. and vρ(q) ui i∈I vρ(l) l∈(L−{q}) .6 when the vector space if ﬁnitely generated. because the Lj are ﬁnite.9. the families − ) ∪ (−→) → −) → ( ui i∈I vρ(l) l∈(L−{q}) and ( vj j∈J generate the same subspace of E. by a symmetric argument.1. Thus. we say that E is of inﬁnite dimension. But then. we have |I| = |J| = n. A symmetric argument yields |J| ≤ |I|.8 implies theorem A. and by lemma A. Thus. by a → standard result of set theory. J must be inﬁnite. and the lemma holds for L − {q} and the restriction of the injection ρ : L → J to L − {q}. since I = j∈J Lj with J inﬁnite and the Lj ﬁnite. v → → we obtain |J| ≤ |I|. and assume that I is inﬁnite. u i∈I → → Lj .

u with λj = λj +µj since µj = 0. λi = µi for all i ∈ I. First. For any vector − ∈ E. if the ﬁeld K itself is viewed as a vector space. that u → is. The converse is shown by contradiction. if (vi )i∈I is the unique u v family of scalars in K such that − = → → v vi −i . Let u − ∈ E. → Lemma A. we can form a vector space K (I) which. contradicting the assumption that (λi )i∈I is the unique family → → such that − = i∈I λi −i .A.1. Given a vector space E. for any vector − ∈ E. → → Let (−i )i∈I be a basis of a vector space E. If (µi )i∈I is another family of u − = → − → scalars in K such that v i∈I µi ui . → ( ui i∈I Given a ﬁeld K and any (nonempty) set I. But then. the family (λ ) → v v i i∈I of scalars such that i∈I λi ui − = → − is unique iﬀ (− ) is linearly independent. let (−i )i∈I be a family of vectors in E. Then. If (−i )i∈I was linearly u dependent. since the family u v − ) generates E. VECTOR SPACES 431 E is denoted as dim(E). u i∈I → and since (−i )i∈I is linearly independent. there would be a family (µi )i∈I of scalars not all null such that → → − µi −i = 0 u i∈I and µj = 0 for some j ∈ I. is the standard vector space of dimension |I|. in some sense. we must have λi − µi = 0 for all i ∈ I.1. assume that (−i )i∈I is linearly independent. Thus dim(K) = 1. − = → v i∈I → → − λi −i + 0 = u i∈I → λi −i + u i∈I → µi −i = u i∈I → (λi + µi )−i . and assume that − = → → − . → → v ui i∈I i∈I λi ui → Proof.10. v u → → If (−i )i∈I is a basis of a vector space E. there is a family (λ ) of scalars K such that → (u i i∈I i i∈I − = → v i∈I → λi −i . u A very important fact is that the family (λi )i∈I is unique. Clearly. u i∈I → each vi is called the component (or coordinate) of index i of − with respect to the basis v −) . . then we have → → − (λi − µi )−i = 0 . then every family (a) where a ∈ K and a = 0 is a basis.

x y → for all λ ∈ K. x − → − → − → → → Setting − = − = 0 in the ﬁrst identity. The → function ι : I → K (I) . we get f ( 0 ) = 0 . Further−→ − −→ − → → more. 2 Where K I denotes the set of all functions from I to K. When I = {1. let K (I) be the subset of the cartesian product K I consisting of families (λi )i∈I with ﬁnite support of scalars in K. dim(K (I) ) = |I|. Given two vector spaces E and F .2.2. A. the family (− ) of vectors − deﬁned such that (e ) = 0 if j = i and (e ) = 1. Given a → family (−i )i∈I of vectors in E. − ∈ E. Deﬁnition A. In fact. . we denote K (I) as K n . and λ · (µi )i∈I = (λµi )i∈I . such that ι(i) = −i for every i ∈ I. u → u The above identity is shown by induction on the size of the support of the family (λi −i )i∈I . The basic property of x y linear maps is that they transform linear combinations into linear combinations. Thus. K (I) is a vector space.1. .2 Linear Maps A function between two vector spaces that preserves the vector space structure is called a homomorphism of vector spaces. is clearly an injection. It is immediately veriﬁed that. but this is false when I is inﬁnite. a linear map between E and F is a function f : E → F satisfying the following two conditions: → → → → f (− + − ) = f (− ) + f (− ) x y x y − ) = λf (− ) → → f (λ x x → → for all − . we have u f( i∈I → λi −i ) = u i∈I → λi f (−i ). K (I) = K I . Given a ﬁeld K and any (nonempty) set I.1. given any family (λi )i∈I of scalars in K. addition and multiplication by a scalar are well deﬁned. is e e i i∈I i i j i i clearly a basis of the vector space K (I) . − ∈ E. using the properties of deﬁnition A. . n}.2 We deﬁne addition and multiplication by a scalar as follows: (λi )i∈I + (µi )i∈I = (λi + µi )i∈I .11. but dim(K I ) is strictly greater when I is inﬁnite.432 APPENDIX A. e When I is a ﬁnite set. Linear maps formalize the concept of linearity of a function. . LINEAR ALGEBRA Deﬁnition A. . because families with ﬁnite support are considered.1. or linear map.

for some − ∈ E}. since (−i )i∈I is a basis of E. as the set → → → → Im f = {− ∈ F | f (− ) = − . f is injective iﬀ Ker f = 0. The linear map f : E → F is injective iﬀ Ker f = 0 (where 0 is − → the trivial subspace { 0 }).2. as shown in the following lemma. Furthermore. x y x y → → − ) = − and f (− ) = − . u and by linearity. given any basis (−i )i∈I of E.3. the set Im f is a subspace of F and the set Ker f is a subspace of E. → → → → → → Proof. → → we have f ( x 0 y 0 − → → → → → f (λ− + µ− ) = λf (− ) + µf (− ) = 0 . we have → → y v → → → → → → f (λ− + µ− ) = λf (− ) + µf (− ) = λ− + µ− . and thus. If such a linear map f : E → F exists. µ ∈ K. x x Lemma A.A. Thus. given u − ) in F . every vector u − ∈ E can written uniquely as a linear combination → x − = → x i∈I → xi −i . we deﬁne its image (or range) Im f = f (E). and u v v − ) generates F . there is a unique linear map f : E → F such that → any other family of vectors ( vi i∈I → → → f (−i ) = −i for all i ∈ I. λ− +µ− ∈ Im f . v . − ∈ Im f . x y x y → → → → that is. Given any − . − ∈ Ker f . λ− + µ− ∈ Ker f . showing that Im f is a subspace of F . → f is surjective iﬀ ( vi i∈I → Proof.2. Given a linear map f : E → F . as the set − → → → Ker f = {− ∈ E | f (− ) = 0 }. showing that Ker f is a subspace of E.2. LINEAR MAPS 433 Given a linear map f : E → F .2. u v u v x y → → → → and thus. we must have → f (− ) = x i∈I → xi f (−i ) = u i∈I → xi −i . and for all λ. − ∈ E such that − = f (− ) and x y u v x u − = f (− ). f is injective iﬀ (−i )i∈I is linearly independent. Given any − . → → iﬀ f ( x y 0 A fundamental property of bases in a vector space is that they allow the deﬁnition of linear maps as unique homomorphic extensions. Note that f (− ) = f (− ) x y x y → − − − ) = − . → Lemma A. there are some − . y x y x − → and its Kernel (or nullspace) Ker f = f −1 ( 0 ). Given any two vector spaces E and F .

Also.11 has a universal property which amounts to saying that K (I) is the vector space freely generated by I.3. when E and F have the same ﬁnite dimension n. we have v u f( i∈I → λi −i ) = u i∈I → λi f (−i ) = u i∈I → → − λi −i = 0 . u i∈I then i∈I → λi −i = v i∈I → λi f (−i ) = f ( u → → and λi = 0 for all i ∈ I. an injective linear map f : E → F sends a basis −) → → ( ui i∈I to a linearly independent family (f (−i ))i∈I of F . Let (λi )i∈I be any family of scalars. Since (−i )i∈I is a basis of E. by letting → f (− ) = x i∈I APPENDIX A. u v Now. (−i )i∈I is a basis of E. It is easy to verify that f is indeed linear. e . we have λi = 0 for all i ∈ I. u v − ) is linearly independent. is an injection from I to K (I) . and assume that → → − λi −i = 0 .2. → f : E → F is injective. The part where f is surjective is left as a simple exercise. assume that f is injective. and (−i )i∈I is linearly independent. then (f ( ui i∈I We can now show that the vector space K (I) of deﬁnition A. If → Conversely. f (−i ) = −i . and u − )) is a basis of F (by lemma A. u i∈I → → and since (−i )i∈I is a basis. since (−i )i∈I is linearly independent. which is also a basis when f is u → bijective. and f is injective. we have → → − λi −i = 0 .1.7). LINEAR ALGEBRA → xi −i v → → for every − = i∈I xi −i . v i∈I → → Since −i = f (−i ) for every i ∈ I.1. By the second part of lemma A. Recall that → ι : I → K (I) . it is unique by the x u → → previous reasoning. assume that ( vi i∈I f( i∈I − → → λi −i ) = 0 u − → → λi −i ) = 0 . v u we just showed that Ker f = 0.434 Deﬁne the function f : E → F . such that ι(i) = −i for every i ∈ I. and obviously. v Since f is injective iﬀ Ker f = 0.

If such a linear map f : K (I) → F exists. Conversely. Since F is nontrivial.5. → → there is some linear map f : E → F such that f ( ui vi → xi −i . The following simple lemma will be needed later when we study spline curves.3. there is at u v − ) = − for all i ∈ I. there is some some vector y y 0 ui i∈I − ∈ E which is not in the subspace generated → does not generate E. and (f (i))i∈I is a family e of vectors in F .2. such that f = f ◦ ι. (1) If there is any linear map f : E → F such that f (−i ) = −i for all i ∈ I. there is a unique linear map f : K (I) → F such that → f (−i ) = f (i) for every i ∈ I. every vector − ∈ E can written as some linear combination → → ( ui i∈I x − = → x i∈I → → (2) The family (−i )i∈I is linearly independent iﬀ for every family of vectors (−i )i∈I in F . LINEAR MAPS 435 Lemma A. Given any two vector spaces E and F . we must have → e f (i) = f (ι(i)) = f (−i ). and by lemma A. u and by linearity. with F nontrivial. v → This shows that f is unique if it exists. which proves the existence and uniqueness of a linear map f e such that f = f ◦ ι. since u v − ) generates E. Since (− ) → → → → E.A. there is a unique linear map f : K (I) → F .2. there is some vector w . → → most one linear map f : E → F such that f ( ui vi ι → → Proof.2.2. as in the following diagram: I CC / K (I) CC CC f C f C! C F Proof. assume that (−i )i∈I does not generate u − ∈ F such that − = − . Given any set I. we must have → f (− ) = x i∈I → xi f (−i ) = u i∈I → xi −i . given any family → (−i )i∈I of vectors in E. since f = f ◦ ι.4. → for every i ∈ I. However. the following properties hold: u → → (1) The family (−i )i∈I generates E iﬀ for every family of vectors (−i )i∈I in F . for any vector space F . Lemma A. and for any function f : I → F . the family (−i )i∈I is a basis of K (I) . u v − ) = − for all i ∈ I.

we have. there is some family i i∈I (λi )i∈I of scalars (not all zero) such that → → − λi −i = 0 . this contradicts the fact that there is at most one such map. LINEAR ALGEBRA → → → by (−i )i∈I . and u v u v u v v .2. we have a linear map such that f (−i ) = 0 for all i ∈ I. − ∈ E. for all i ∈ I0 .6 again. By lemma u − → → → → A. Conversely.3. u y → → − → and since − = 0 . Letting (−i )i∈I be the e u w ej v → − = − for all i ∈ I. for every i ∈ I. and let M be any subspace of E.3.436 APPENDIX A. for some j0 ∈ J. A.3 Quotient Spaces Let E be a vector space. then the conclusion follows by lemma u → A. for every i ∈ I. such that fi (−i ) = u → − . and they are needed to deﬁne tensor products. deﬁned as follows: For all − .6. the relation ≡M is an equivalence relation with the following two congruential properties: → → → → → u → → → 1. → → → → u v u v M We have the following simple lemma. → → → → → such that −i = −i . u i∈I → By the assumption. and − = −0 . If −1 ≡M −1 and −2 ≡M −2 .2. there is a basis ( ej j∈I0∪J of E. Then. and g(−j ) = 0 . and f (− ) = − . and by lemma A.3. g(−i ) = 0 for all e u i ∈ I. Given any vector space E and any subspace M of E. and since f = g. there is some linear map fi : E → F . which are useful to provide nice conceptual proofs of certain properties of splines. for j ∈ I − {i}. Lemma A. By deﬁnition of the basis (−j )j∈I0 ∪J of E. this implies λi = 0.1. there is a linearly independent subfamily (−i )i∈I0 of (−i )i∈I u u u −) → generating the same subspace. → (2) if the family (−i )i∈I is linearly independent. The subspace M induces a relation → → ≡M on E. assume that (− ) u is linearly dependent. (−i )i∈I is linearly independent. The next section may be omitted until needed. for all w y e − → → → j ∈ (I0 ∪ J) − {j0 }. we will not have many occasions to use quotient spaces. u v − ≡ − iﬀ − − − ∈ M. they are fundamental in algebra. Then.1. there is a unique linear map g : E → F such that g(− ) = − . Thus. y u Although in this course. we would get → → y u 0 i j − → 0 = fi ( i∈I → λi −i ) = u i∈I → → λi fi (−i ) = λi − . then −1 + −2 ≡M −1 + −2 . By lemma A.1. deﬁning f : E → F to be the constant linear → family in F such that vi 0 − → − → → map with value 0 .

It is obvious that ≡M is an equivalence relation. It is possible to do so by considering the direct sum of a family (Ei )i∈{1. The vector space E/M is called the quotient space of E by the subspace M. Given any linear map f : E → F .2. If w u v v − − − = − . with − . The function π : E → E/F . and thus λ− ≡M λ− . and thus.3. [− ] ∈ E/M. we don’t quite get the right notion because elements of E × F are ordered pairs. u v w → → → and λ− ∈ M. Given any vector space E and any subspace M of E. and more generally of a family (Ei )i∈I . if − ≡M − .A. u v u v − ] = [λ− ]. u v u v 437 → → → → Proof. It is also immediate to verify that E/M is a u v → → → vector space. since M is a subspace of E. u v v w → w → → u → → → and −1 + −2 ∈ M. we have → → → → [− ] + [− ] = [− + − ]. with − ∈ M. Deﬁnition A. we want to think of the elements of E ⊕ F as multisets of two elements. then → → → → u v w w → → → λ− − λ− = λ− .4. Note that −1 ≡M −1 and −2 ≡M −2 u v u v − − − = − and − − − = − . .3. the above operations do not depend on the speciﬁc choice of representatives → → in the equivalence classes [− ].3. we deﬁne the notion of direct sum and prove some simple lemmas. u u u is a surjective linear map called the natural projection of E onto E/F . − ∈ M. There is a subtle point.1. 2}. → → λ[ u u By lemma A. we have −1 + −2 ≡M −1 + −2 . DIRECT SUMS → → → → 2. since M is a subspace of E. Thus. then λ− ≡M λ− . → → w → → → w → → w → are equivalent to u1 v1 u2 v2 w1 2 1 2 → u → → → → w → (−1 + −2 ) − (−1 + −2 ) = −1 + −2 . which is that if we attempt to deﬁne the direct sum E ⊕ F of two vector spaces using the cartesian product E × F . we deﬁne the following operations of addition and multiplication by a scalar on the set E/M of equivalence → → classes of the equivalence relation ≡M as follows: for any two equivalence classes [− ]. Thus.2} . but we want E ⊕ F = F ⊕ E.4 Direct Sums Before considering linear forms and hyperplanes. deﬁned such that π(− ) = [− ] for every − ∈ E. A. w u v Lemma A.1 shows that we can deﬁne addition and multiplication by a scalar on the set E/M of equivalence classes of the equivalence relation ≡M . we know that Ker f is a subspace of E. [− ] ∈ u v E/M. For simplicity. and it is immediately veriﬁed that Im f is isomorphic to the quotient space E/Ker f . we begin by considering the case where I = {1.

that is.2} Ei and E1 × E2 . − . The following property holds. we deﬁne the (external) direct sum E1 ⊕ E2 of E1 and E2 . 2. as the set → → → → E1 ⊕ E2 = {{ 1. 2.438 APPENDIX A. − → → → in (− ) = { 1. but as we just saw. − ∈ E1 } = E1 ⊕ E2 . u v u v with addition → → → → → u → → → { 1. − }. → → sisiting of the two vectors u v Remark: In fact. −1 + −2 . where − ∈ E1 . λ− . − . This is not to be confused with the cartesian product E1 × E2 . we can deﬁne E1 × · · · × En for any number of vector spaces.− = − + − . Given two vector spaces E1 and E2 . and when E1 = . 2. every member { 1. 0 }. v u v u → → Thus. −1 . u v1 u v u v v and scalar multiplication → → → → λ{ 1. . −1 + −2 }. u v u v There is a bijection between i∈{1. u u 1 and − → → → in2 (− ) = { 1.− + − . − .− + − . − . 2. − = λ− . 2. 2. − } | − ∈ E1 . − ∈ E2 }.2} Ei of the family (Ei )i∈{1. as a multiset consisting of two elements. The vector space E1 × E2 → → → → is the set of all ordered pairs − . 2. − . v v Note that → → → → E2 ⊕ E1 = {{ 2. u v u v We deﬁne the injections in1 : E1 → E1 ⊕ E2 and in2 : E2 → E1 ⊕ E2 as the linear maps deﬁned such that. −2 .1. 1. − . − } = { 1. E1 ⊕ E2 is just the product i∈{1. 2. 0 .4. λ− }. − } of E1 ⊕ E2 can be viewed as an unordered pair conu v − and − . and − ∈ E2 . − } + { 1. we denote this product as E n . 2. with addition and u v u v multiplication by a scalar deﬁned such that − .2} . − } | − ∈ E2 . → v → v → → v u1 → u2 → u1 u2 → → v2 1 2 1 → → → → λ − . −2 } = { 1. = En .2} Ei are unordered pairs! i∈{1. LINEAR ALGEBRA Deﬁnition A. . λ− . elements of Of course. .

3. − }) = f (− ) + g(− ). f (− ) . such that π1 ◦ (f × g) = f . Lemma A. Given two vector spaces E1 and E2 . such that → → → π1 ({ 1. We already noted that E1 ⊕ E2 is in bijection with E1 × E2 . Deﬁne → → for every − ∈ E1 and − ∈ E2 . such that (f + g) ◦ in1 = f . and (f + g) ◦ in2 = g.4. If we deﬁne the projections π1 : E1 ⊕ E2 → E1 and π2 : E1 ⊕ E2 → E2 . DIRECT SUMS 439 Lemma A. u v v D E2 Proof.2. − . It is immediately veriﬁed that f + g is the unique linear u v map with the required properties.4. It is immediately veriﬁed that f × g is the unique linear map with the w required properties.4. Deﬁne → for every − ∈ D. − }) = − . as in the following diagram: PPP f PPP PPP PPP P( f +g / E1 ⊕ E2 O nn6 nnn nn in2 nnn nnn g nnn in1 E1 PPP G E2 Proof. E1 ⊕E2 is a vector space. g(− ) }. → → → (f × g)(− ) = { 1.A. w w w . there is a unique linear map f × g : D → E1 ⊕ E2 . 2. and π2 ◦ (f × g) = g. u v u and we have the following lemma. Given two vector spaces E1 and E2 . − . For every pair of linear maps f : E1 → G and g : E2 → G. 2. for every pair of linear maps f : D → E1 and g : D → E2 . u v u v → → → π2 ({ 1. there is a unique linear map f + g : E1 ⊕E2 → G. − }) = − . 2. 2. as in the following diagram: E nn6 O 1 nnn nnn π1 nnn nnn f ×g nn / E1 ⊕ E2 PPP PPP PPP π2 P g PPPP PP( f → → → → (f + g)({ 1. − .

let U. Given a vector space E. → → Proof. dim(E) = dim(U) + dim(V ). with a slight abuse of notation! . Lemma A. (2) E = U + V and U ∩ V = 0. 3 Again. ( ui i∈I vj j∈J is a basis of E. u′ ∈ U and − . The following two simple lemmas holds. this is no longer true for products and sums of inﬁnite families. V are subspaces of a vector space E. Since U ∩ V = 0. If − ∈ U ∩ V and − = 0 . letting i1 : U → E and i2 : V → E be the inclusion maps. Lemma A. such that − = − + − . U + V = V + U. for some − ∈ U and some − ∈ V }. x u v x u v Then. → → → x x 0 0 x → → → → → → → → − − → − → − Conversely. when U ⊕ V is isomomorphic to E under the map i1 + i2 given by lemma A.6. assume that E is the direct sum of U and V . since x x → → − can be written both as − + − and − + − . and assume that E = U ⊕ V . V be any subspaces of E. v ′ ∈ V .4. u v − ) ∪ (− ) → → Clearly. Deﬁnition A. Note that by deﬁnition. assume that − = − + − and − = u′ + v ′ .2. we must have u′ = − and v ′ = − . there exist unique vectors − ∈ U and − ∈ V .4. Let E be a vector space. LINEAR ALGEBRA It is a peculiarity of linear algebra that sums and products of ﬁnite families are isomorphic. u − → → → − → → − → → → − where v ′ − − ∈ V and − − u′ ∈ U.440 APPENDIX A.4. → → → → → → x u v x u v It is immediately veriﬁed that U + V is the least subspace of E containing U and V . where I and J are disjoint. and U ⊕ V = V ⊕ U. where − . When U. we have a contradiction. and we write E = U ⊕ V (with a slight abuse of notation. The following properties are equivalent: (1) E = U ⊕ V . Let E be a vector space. → → → − Proof. −′ − → → − − → v − v = → − u′ .4. It is also convenient to deﬁne the sum U + V of U and V .4. First. w w u v u v We say that E is the (internal) direct sum of U and V . v u u v and thus E = U ⊕ V .5. However.3 iﬀ for every − ∈ E. Thus U ∩ V = 0. Then. since E and U ⊕ V are only isomorphic). we say that E is a direct (internal) sum of U and V . We deﬁne the sum U + V of U and V as the set → → → → → → U + V = {− ∈ E | − = − + − . denoted as E = U ⊕ V . Let (−i )i∈I be a basis of U and let (−j )j∈J be a basis of V .

a linear map → → of F . It is one of the many versions of the axiom of choice.4. The direct sum i∈I Ei is a vector space.1. Let E and F be vector spaces. and fj = 0. such that r ◦ f = idE .2. ( i∈I hi ) ◦ ini = hi . let (Ei )i∈I be a family of vector spaces. Let (−i )i∈I be a basis of E. DIRECT SUMS 441 We now give the deﬁnition of a direct sum for any arbitrary nonempty index set I. when i∈I Ei as E (I) Ei = K. Deﬁnition A. we ﬁnd the vector space K of deﬁnition A. Since f : E → F is an injective linear map. If f : E → F is surjective. The (external) direct sum i∈I Ei of the family (Ei )i∈I is deﬁned as follows: i∈I Ei consists of all f ∈ i∈I Ei . (f ( ui i∈I vj j∈J − = f (− ). and let G be any vector space. Lemma A.1. First.8. then. for every i ∈ I. such that. we have the projection πi : i∈I Ei → Ei . ini (x) = (fi )i∈I . and let (Ei )i∈I be a family of vector spaces.4.2. by lemma u − )) is linearly independent in F . (I) Remark: When Ei = E. The following lemma is an obvious generalization of lemma A. and where vi ui − ) = − .6. and let f : E → F be a linear map. and addition and multiplication by a scalar are deﬁned as follows: (fi )i∈I + (gi )i∈I = (fi + gi )i∈I .3. we denote . there is an injective linear map s : F → E called a section. In particular. then i∈I Ei = ∅.4. → Proof. i∈I Ei . is the set of all functions f : I → i∈I Ei . which have ﬁnite support. for every i ∈ I. . for all j ∈ (I − {i}). such that f ◦ s = idF .9. and r(− ) = − for all → → → → r : F → E can be deﬁned such that r( vi ui vj w Lemma A. for all i ∈ I. deﬁned such that. πi ((fi )i∈I ) = fi . let us recall the notion of the product of a family (Ei )i∈I .2. its product i∈I Ei . if Ei = ∅ for every i ∈ I.4. Let I be any nonempty set. f (i) ∈ Ei . If f : E → F is injective. there is a basis (− ) → → A. where I ⊆ J. We now deﬁne direct sums.4. Given a family of sets (Ei )i∈I . For every i ∈ I. We also have injection maps ini : Ei → where fi = x. λ(fi )i∈I = (λfi )i∈I . there is a surjective linear map r : F → E called a retraction. deﬁned such that. for all i ∈ I. A member f ∈ i∈I Ei . there is a unique linear map hi : i∈I i∈I Ei → G. We also have the following basic lemma about injective or surjective linear maps. By lemma A. By theorem A.A.11. for all i ∈ I. for all i ∈ I. then. is often denoted as (fi )i∈I . Let I be any nonempty set. and for every family (hi )i∈I of linear maps hi : Ei → G. that.3. such that.7.

for every vj uj uj vj vj j∈J is −)=−.4. → → a basis of F . The existence of a retraction r : F → E of f follows from lemma A.9. and the linear map f + s : E ⊕ G → F is an isomorphism. we have g ◦ s = idG . say − = 0 . F and G. Given a sequence of linear maps E −→ F −→ G. u − → → → → → → → g(− − s(g(− ))) = g(− ) − g(s(g(− ))) = g(− ) − g(− ) = 0 .4.2. u u u u u u → → Thus. we have the following result. On the other hand. where − is any given vector in E. and we have F = Ker g + Im s. by lemma A. when Im f = Ker g.9. we must have f ◦ s = id .4. We now have the following fundamental lemma. The property of a short exact sequence given by lemma A. there is some − ∈ E such that f (− ) = − .5 f g f g . → Now. there is a unique linear map s : F → E such that s( vj uj → → Also. Ker g ⊕ Im s is isomorphic to F . Thus. → u → → → → − g(− ) = g(s(− )) = − = 0 .10 is often described by saying f g that 0 −→ E −→ F −→ G −→ 0 is a (short) split exact sequence. The proof of (b) is very similar. and this is denoted as 0 −→ E −→ F −→ G −→ 0. Let E.442 APPENDIX A. we say that we have a short exact sequence. (a) For any section s : G → F of g.9 is obvious.4. 4 5 (b) For any retraction r : F → E of f . by lemma A. and so. then − = s(− ) for some − ∈ G because − ∈ Im s.2. Let (−j )j∈J be a basis of F . Lemma A. v v j j F The converse of lemma A. the following properties hold. we have r ◦ f = idE . since f and s are injective. − − s(g(− )) ∈ Ker g.2. which shows that − = s(− ) = 0 . f + s : E ⊕ G → F is an isomorphism. The existence of a section s : G → F of g follows from lemma A. LINEAR ALGEBRA → → → − → → j ∈ (J − I). g(− ) = − because → → → → → → u u v v u u 0 − ∈ Ker g. be three vector spaces. Then. Since r(f (−i )) = −i for all w w u u i ∈ I. Im f ⊕ Ker r is isomorphic to F . and u v since by assumption. But then. we have F = Im f ⊕ Im s. If in addition to being exact at F . (a) Since s : G → F is a section of g. F = Ker g ⊕ Im s.10. Since f : E → F v − ∈ F . and for every − ∈ F .4. g : F → G a surjective linear map. if u u → − ∈ Ker g ∩ Im s. u v v − → → → because g ◦ s = idG . assume that f : E → F is surjective. f is injective and g is surjective. Since (− ) → → → → → is surjective.3. Im f = Ker g. by lemma A.3. we say that the f g sequence E −→ F −→ G is exact at F . f : E → F an injective linear map. As a corollary of lemma A.3 (again). and assume that Im f = Ker g.10.4.4 → Proof. since f (s(− )) = − .

u′ ∈ U. we apply lemma A.12. f is injective. We → → → → → → → pair u v w u v w v also need to verify that f is linear.10 to any section Im f −→ E of f ′ to get an isomorphism between E and Ker f ⊕ Im f . Lemma A. The following lemma will also be useful. deﬁned such that − . such that − = − + − .4. Thus. if − − − ∈ U w w w v → → − − −′ ∈ U. Consider where Ker f −→ E is the inclusion map. If − −− =− → → → w v u and → → − where − .4. if u → where − ∈ U. and since U ⊕ W is a direct sum. − ∈ R iﬀ − − − ∈ U. and thus. and lemma A. for every − ∈ W . − ∈ U × V . Let E and F be vector spaces. then we have u → where λ− ∈ U.4. w v u − −− =− → → → w v u → → → λ− − λ− = λ− . − ∈ R (R is the graph of f ). and E −→ Im f is the surjection associated f s with E −→ F . If E = U ⊕ V and E = U ⊕ W . then. Let E be a vector space. Then. U ∩ W = 0. Similarly. w v u . that is w ′ = − . Thus.4. Since E = U ⊕ V . and f is surjective. U ∩ V = 0. then −′ − − ∈ U. we have u → → − where − + u′ ∈ U. dim(E) = dim(Ker f ) + dim(Im f ). If − − − ∈ U v w v w w v −′ − → → −′ − → → and w − v ∈ U. R is functional. E is isomorphic to Ker f ⊕ Im f .11. to get dim(E) = dim(Ker f ) + dim(Im f ).4. f is linear.6. − − − ∈ U. and − → → − → − → → → → thus w ′ − − = 0 . and → → and w v v v −′ → − →. Proof. and let f : E → F a linear map. Similarly. i Ker f −→ E −→ Im f. there exists a unique → v = v w − . Then.A. f′ i f′ → → → → − → − → − (− + w ′ ) − (− + v ′ ) = (− + u′ ). Proof. DIRECT SUMS 443 Lemma A. then there is an isomorphism f : V → W between V and W . → → → → v w w v We claim that R is a functional relation that deﬁnes a linear isomorphism f : V → W → → → → → → between V and W . Thus. where f (− ) = − iﬀ − . u −′ −′ → → − → w − v = u′ . Let R be the relation between V and W . then w − w ∈ U. Then. and since U ⊕ V is a direct sum.

. . The notion of rank of a linear map or of a matrix is often needed.4. Since by lemma A. (ii) rk(f ) + dim(Ker f ) = dim(E). since Im f is a subspace of F . Deﬁnition A. and (−1 . . we have rk(f ) = rk(M(f )). .1. . f (−n )). the rank rk(A) of the matrix A is the maximum number of linearly independent columns of A (viewed as vectors in K m ). and since rk(f ) + dim(Ker f ) = dim(E). Given two vector spaces E and F and a linear map f : E → F . since U is a → / → → such that x x x . . dim(F )). −n ) be u u → → a basis of E. Clearly. which is generated by (f (−1 ). . If U is a hyperplane. dim(E) = dim(Ker f )+dim(Im f ). f (−n )). the rank rk(f ) of f is the dimension dim(Im f ) of the image subspace Im f of F .14. we have rk(f ) = codim(Ker f ). Given a linear map f : E → F . . The rank of a matrix is deﬁned as follows. . .t. . rk(f ) = dim(Im f ). we have rk(f ) ≤ dim(F ). Thus. Conversely. . .7. In view of lemma A. Proof. − ). the rank of f is the maximum u u → → number of linearly independent vectors in (f (−1 ). . . a → subspace V of dimension 1 is generated by any nonzero vector − ∈ V . Let E and F be two vector spaces. We have the following simple lemma. and by deﬁnition. − ∈ U. (ii) follows from dim(E) = dim(Ker f ) + dim(Im f ). Since the rank rk(f ) of f is the u u v vm → → dimension of Im f . However.r. since F and K m are isomorphic. − ) a basis of F .444 APPENDIX A.11. A subspace U of codimension 1 is called a hyperplane. Deﬁnition A.15. . (iii) rk(f ) ≤ min(dim(E). . then E = U ⊕ V for some subspace V of dimension 1. . Indeed.4. As for (iii). and thus we denote v − . Lemma A. . let − ∈ E be a vector → → →/ → V as K v v v x − → − ∈ U (and thus. and let (−1 . .4. . .4. . which is equal to the number u u of linearly independent columns of M(f ). for every matrix representing f .4. lemma A. LINEAR ALGEBRA Given a vector space E and any subspace U of E.12 shows that the dimension of any subspace V such that E = U ⊕V depends only on U. Given a m × n-matrix A = (ai j ) over the ﬁeld K. the bases (−1 . we have rk(f ) ≤ dim(E). . Since rk(f ) = dim(Im f ). the rank of a matrix A is the dimension of the subspace of K m → → generated by the columns of A. and we write E = U ⊕ K − . We call dim(V ) the codimension of U. We claim that E = U ⊕ K − .13. and let M(f ) v vm → → → → be its matrix w. the following properties hold: (i) rk(f ) = codim(Ker f ). −n ) and (−1 . Let f : E → F be a linear map. − = 0 ). It can be shown using duality that the rank of a matrix A is also equal to the maximal number of linearly independent rows of A. and we denote it as codim(U).

Since E = U ⊕ K − . since f (−0 ) = 0. Thus.5. and denoted as E ∗ . we shall see that hyperplanes are precisely the Kernels of nonnull linear maps f : E → K. v v v v − .5. → → → written in a unique way as v h v0 and . this shows that E = U + K − . The following properties hold: (a) Given any nonnull linear form f ∈ E ∗ . → → → → → λ = 0. and thus E = U ⊕ K − . we have U ∩ K − = 0.5 Hyperplanes and Linear Forms Given a vector space E over a ﬁeld K. we have → H = Ker f . HYPERPLANES AND LINEAR FORMS 445 → → →/ → − → hyperplane. its kernel H = Ker f is a hyperplane. we must have → → → → →/ written in a unique way as x u v u x − = −λ−1 − + λ−1 − . This argument shows that a x x x hyperplane is a maximal proper subspace H of E. Then. We now prove that hyperplanes are precisely the Kernels of nonnull linear forms. Then. there is a (nonnull) linear form f ∈ E ∗ such that H = Ker f . called linear forms. every − ∈ E can be v v v − = − + λ− . → → → v h → v0 f (−0 ) v − → → − = − + f( v )− . Thus. → f(v 0 − → − − f ( v ) − = − ∈ H. → E = H ⊕ K v0 → → / → (b) If H is a hyperplane. The set of all linear forms f : E → K is a vector space called the dual space of E. H = Ker g iﬀ g = λf for some λ = 0 in K. − ∈ E can be v v v x − = − + λ− . Let v v − ∈ E. and since − ∈ U. there is a well deﬁned function f : E → K. For every v f Thus. (a) If f ∈ E ∗ is nonnull. A. E = H + K −0 . In the next section. we have −0 ∈ H. (b) For any hyperplane H in E. (c) Given any hyperplane H in E and any (nonnull) linear form f ∈ E ∗ such that H = Ker f . H ∩ K −0 = 0.A. Let E be a vector space. and H is a hyperplane. and thus. v u x v x →/ → → Since − ∈ U. → → Proof. we have E = U ⊕ K − for some − ∈ U (with − = 0 ). − → − − f( v )− → → v − ) v0 → f ( v0 → = f (− ) − v → f (− ) − v → − → − → − ) f ( v0 ) = f ( v ) − f ( v ) = 0. E = H ⊕ K −0 for some −0 ∈ H. for every linear form g ∈ E ∗ . Also. there is some vector −0 ∈ E such that f (−0 ) = 0.1. a linear map f : E → K is called a linear form. → → v h − ) v0 → f ( v0 → → →/ → that is. Lemma A. where − ∈ U. that is.

Ker f = H. is the intersection of all hyperplanes that contain V . 1 ≤ i ≤ n. if g = λf for some λ = 0.446 APPENDIX A. v is a linear form which vanishes on H. Thus. for every − = x1 −1 + · · · + xn −n ∈ E. x → → → where λi = f (−i ) ∈ K. for some −0 v v − ) = 0 and g(− ) = 0. We leave as a simple exercise the veriﬁcation v v v − ) = 1. for every i. it → that f is a linear form. . for any linear u u → → → form f ∈ E ∗ . . observe that → → such that f ( v0 v0 → g(−0 ) v g− − f f ( →) v 0 → → → − → such that. Conversely. u u u → → f (− ) is a linear combination of the coordinates of − . with respect to the basis (−1 . g = λf . . we have x u u → f (− ) = λ1 x1 + · · · + λn xn . Thus. Then. From (a). f ( →) v 0 → → If E is a vector space of ﬁnite dimension n and (−1 . x x We leave as an exercise the fact that every subspace V = E of a vector space E. and let f ∈ E ∗ be any (nonnull) linear form such that H = Ker f . . . Since f ( v0 → is clear that λ = 0 iﬀ − ∈ H. assume that → → H = Ker g for some nonnull linear form g. . . −n ). by deﬁnition. then H = Ker g. the linear form f is nonnull. LINEAR ALGEBRA (c) Let H be a hyperplane in E. we have E = H ⊕ K −0 . but also vanishes on → K −0 . Clearly. −n ) is a basis of E. . as expected. that is. with v → g(−0 ) v λ= − . . for every − = h + λ−0 . f (− ) = λ. Also. since both f and g vanish on H.

we get aa. We claim that the map deﬁned such that −− − − − − − − −→ f (v) = f (a)f (a + v) − → − → − → for every v ∈ E is a linear map f : E → E ′ . Indeed. − → − → Lemma 2. λi ai is the barycenter of a family ((ai .7. −− − − −→ −− − − −→ → since a + u + v = a + a(a + u) + a(a + v) − − Since f preserves barycenters.1 Aﬃne and Multiaﬃne Maps This section provides missing proofs of various results stated earlier.2 Given an aﬃne map f : E → E ′ . we can write −− − − −→ → since a + λv = a + λa(a + v) + (1 − λ)− and also aa. f (a + λv) = λf (a + v) + (1 − λ)f (a). a + λv = λ(a + v) + (1 − λ)a. such that f (a + v) = f (a) + f (v). − → for every a ∈ E and every v ∈ E Proof.7. λi ))i∈I of weighted points → − bx = i∈I − → λi bai for every b ∈ E.2. If we recall that x = (with i∈I λi = 1) iﬀ i∈I a + u + v = (a + u) + (a + v) − a. Let a ∈ E be any point in E.Appendix B Complements of Aﬃne Geometry B. there is a unique linear map f : E → E ′ . We begin with Lemma 2. 447 .

am + − ) = f (a1 .. showing that f (λv) = λf (v). . k=|S| S={i1 . . am ) ∈ E m . . f (a + u + v) = f (a + u) + f (a + v) − f (a). . since −− − − −→ → − − → → b + v = a + ab + v = a + a(a + v) − − + ab. let fi : E → F be the map ai → f (a1 . where h(a) = bf (a) for every a = (a1 . COMPLEMENTS OF AFFINE GEOMETRY −− − − −→ −−−−− −− − − − − − − −→ −−− −−→ −− − − − − − − −→ f (a)f (a + λv) = λf (a)f (a + v) + (1 − λ)f (a)f (a) = λf (a)f (a + v). Pick any b ∈ F .. .. S = ∅. m}. . . . ai+1 . ai−1 .448 we get APPENDIX B. . f is a linear map. v vm Proof. . f (b)f (b + v) = f (a)f (a + v).. which implies that −− − −→ −− − −→ −− − −−−− −−−− − −→ −− − − −→ f (b)f (b + v) = f (b)f (a + v) − f (b)f (a) + f (b)f (b). . ai . and since f preserves barycenters. am ∈ E. k≥1 → → fS (−1 . where S ⊆ {1.. . We also have from which we get −− − − − −→ −− − − − −−−−−− − − − − → −− − − − − − − −→ f (a)f (a + u + v) = f (a)f (a + u) + f (a)f (a + v). for every a1 . ai−1 . . .. we show that we can restrict our attention to multiaﬃne maps f : E m → F . . −− − − − − − − −→ = f (a)f (a + v). . −−− − −→ −− − −→ −−−− = f (a)f (b) + f (b)f (a + v). Consequently. . am ∈ E. . aa b + v = (a + v) − a + b..1. . . 1 ≤ i ≤ m.ik }. . − ∈ E . . . am ). . . . For any other point b ∈ E. −− −→ − → where F is a vector space. such that → → f (a1 + −1 . so that f (a) = b + h(a). . showing that f (u + v) = f (u) + f (v). am ) + v vm S⊆{1. . we get f (b + v) = f (a + v) − f (a) + f (b). vi vi → → → − for all a1 . . −k ). . and all −1 . k = |S|. ai+1 . . . . and deﬁne h : E m → F . . . . The fact that f is unique is obvious: we must have f (v) = −− − − − − − − −→ f (a)f (a + v). . which shows that the deﬁnition of f does not depend on the choice of a ∈ E. Lemma 4. . For every i. . . −− − −→ −−−− −− − − − − − − −→ Thus.. . We claim that h is multiaﬃne. . there are 2m − 1 unique multilinear − → − → maps fS : E k → F . . First. .3 For every m-aﬃne map f : E m → F .m}.

am ). . am ). . . . . am ) − f (a1 . . . ai+1 . am ) − f (a1 . a + − . . → hi (ai + u fi u bf (a) fi → u 449 − → where a = (a1 . . . . . . . aik + −k . . . Since f is m-aﬃne. . . which shows that − → hi is an aﬃne map with associated linear map fi . am . . . and generally. . leaving (2) as an easy exercise. and where fi is the linear map associated with fi . ∆vk+1 ∆vk · · · ∆v1 f (a) = ∆vk · · · ∆v1 f (a1 .. am ). . . . . we have −− − − − −→ −−−−−− −→ → → → − ) = b(f (a) + − (− )) = − − + − (− ). Given an m-aﬃne map f : E m → F . . Thus. a2 . am ) − f (a1 . . 1 ≤ i ≤ m. . . . We prove (1). Since f is multiaﬃne. . vi vi Properties (1) and (2) are proved by induction on k. . . . . a2 . . − and (m − k)-aﬃne in ak+1 . and since it is the diﬀerence of two multiaﬃne maps in a2 . it v is (m − 1)-aﬃne in a2 . . . . Thus. . . .1. . a v vi 1 i−1 i i → ∆v1 f (a) = f (a1 + −1 . . am . . . and so. .<ik ≤m → → f (a1 . . . a . . . ak+1 + −→. . it is aﬃne in its ﬁrst argument. . . . AFFINE AND MULTIAFFINE MAPS − → and let hi : E → F be the map ai → h(a1 . . . v i+1 . . . . . . am ) − ∆vk · · · ∆v1 f (a). . . . am ) ∈ E m . ai . . am . am ) → is a linear map in −1 . a2 . a2 .B. for − → → → every (−1 . we deﬁne v vm ∆vm ∆vm−1 · · · ∆v1 f inductively as follows: for every a = (a1 . we now assume that F is a vector space. . v vk (2) We have m ∆vm · · · ∆v1 f (a) = (−1)m−k k=0 1≤i1 <. . . . ai−1 . . v− k+1 We claim that the following properties hold: → → (1) Each ∆vk · · · ∆v1 f (a) is k-linear in −1 . . . → v ∆v1 f (a) = f (a1 + −1 . .. a2 . we have where 1 ≤ k ≤ m − 1. am ). . . ai1 + −1 . am ). . . . . . for all i. . − ) ∈ E m . . . . → ∆ f (a) = f (a .

. . . aik + −k . . . . . a ) + v v f (− .m} . . k=|S| S={i1 . a + − ) = v v 1 1 m m m−1 ∆vm · · · ∆v1 f (a) + and since every (−1)m−k−1 k=0 1≤i1 <. which proves the existence of multilinear maps fS such that → → → → f (a + − . . am . . .. . k=|S| S={i1 . . . .. and a = (a1 . jn } ⊆ {1. ai1 + −1 .. . . . .. where {j1 . − ). . that can be shown by induction on m: if → → → → v v v f (− . . . . . . . . and conclude the uniqueness of all the fS . am ∈ E. a + −→. . . and it is a sum of the above form. − . − and (m − k)-aﬃne in ak+1 . since it is aﬃne in ak+1 ... m}. n}. .. and of 2m − 1 terms of the form (−1)m−k−1 f (a1 . we can apply the induction v hypothesis. am ∈ E. . ai1 + −1 . . . COMPLEMENTS OF AFFINE GEOMETRY → → Assuming that ∆vk · · · ∆v1 f (a) is k-linear in −1 ..m} is also m-aﬃne. . . . . − ∈ E . . . which gives us sums of k-linear maps. . Then. .m}. . . . . ... . −→. As a consequence of (1). .. But g − f{1.. . . . . .450 APPENDIX B. . it is (m − k − 1)-aﬃne in ak+2 . We claim the following slightly stronger property. . ∆vm · · · ∆v1 f is a m-linear map. . .. . . . am ). .m}. . ... . . . . . We can now show the uniqueness of the fS . . . . . . .. by induction. . S = ∅. − ). we get ∆vm · · · ∆v1 f = f{1. . .. . . − . .jn } (−1 . . .. . . a + − ) = f (a . am ) vi vi → → vm in the above sum contains at most m − 1 of the −1 . from above. where n = m − 1. . v We still have to prove the uniqueness of the linear maps in the sum. . . and all −1 . j1 < . and since it is the diﬀerence of two k-linear maps in −1 . for 1 ≤ k ≤ m − 1. Indeed.. . . then v → → vj vj ∆vjn · · · ∆vj1 g(a) = f{j1 . . where S ⊆ {1. . . < jn .. am ). v vk am . . . . . we can write → → f (a + − . This can be done using the ∆vm · · · ∆v1 f . aik + −k . . . . . . . . .ik }.. . am ). v v 1 1 m m 1 m S i1 ik S⊆{1. ∆ ∆ · · · ∆ f (a) = ∆ · · · ∆ f (a . . . . k≥1 → → → − vm for all a1 .. . . This concludes the induction... .. g(a + − .. . . in view of (2).. k≥1 → → → − vm for all a1 . . .<ik ≤m → → f (a1 . a ) − ∆ · · · ∆ f (a) v− vk+1 vk v1 vk v1 1 k+1 k+1 m vk v1 → → is linear in − →. . .. . a + − ) = f (a . . . . . am . . am ). it is v− v vk k+1 → (k + 1)-linear in −1 . . a ) + v 1 1 m m 1 m S i1 ik S⊆{1. so we can apply the induction hypothesis. and since it is the diﬀerence of two (m − k − 1)-aﬃne maps in v v− k+1 ak+2 . . and all −1 . vi vi → → f (a1 . . −n ). . .ik }. .. .. which all cancel out except for a single f (a1 . − ∈ E . .

. m}.m} k=|H|. . be the set of characteristic functions of all nonempty subsets of {1.. . k≥1 i∈H f (a1 . Then.. 1 ≤ i ≤ m}. m} → {0.m}m η(i1 ) · · · η(im )f (ai1 .1.... . . .im )∈{1. . . the expression i∈H ai E= (−1)k k m h k H⊆{1.. Let C = {η : {1.. the polar form f : E m → F of h is unique.1 Given two aﬃne spaces E and F .. η(1) + · · · + η(m) η(1) + · · · + η(m) = (i1 . we have (η(1) + · · · + η(m))m h η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) η(1)a1 + · · · + η(m)am η(1)a1 + · · · + η(m)am = (η(1) + · · · + η(m))m f ..m} k=|H|. ... . .. .. η(1) + · · · + η(m) η(1) + · · · + η(m) ... and is given by the following expression: 1 m! (−1)m−k k m h H⊆{1. k Proof. 1} | η(i) = 0 for some i. . since f is multiaﬃne... .. . η(1) + · · · + η(m) η(1) + · · · + η(m) and h η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) =f η(1)a1 + · · · + η(m)am η(1)a1 + · · · + η(m)am . . aim )... am ) = ai . for any polynomial function h of degree m. . . Since η(m) η(1) +···+ = 1.B. AFFINE AND MULTIAFFINE MAPS 451 Lemma 4..4... k≥1 can be written as E= η∈C (−1)η(1)+···+η(m) (η(1) + · · · + η(m))m h η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) .

. .. . aim ). let η ∗ be deﬁned such that. .. .. . and for every η ∈ J. . . . .. .. . .. . . . aim ) = f (a1 . im ) is a permutation of (1. .. . . . .. m} such that j = i1 . .im )∈{1. m). .. im . . . (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) = η∈J η∈C (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) + (−1)η η∈J ∗ (1)+···+η ∗ (m) η ∗ (i1 ) · · · η ∗ (im ). . am ). .. . η(i1 ) · · · η(im )f (ai1 .. Then. m}. and η ∗ (j) = 1. Since f is symmetric. . . m). then η(i1 ) · · · η(im ) = 0 iﬀ η(i) = 1 for every i ∈ {1. . . η ∗ (i) = η(i). . . COMPLEMENTS OF AFFINE GEOMETRY (−1)η(1)+···+η(m) (η(1) + · · · + η(m))m h = η∈C (−1)η(1)+···+η(m) η∈C η(1)a1 + · · · + η(m)am η(1) + · · · + η(m) (i1 . for every i = j.452 Thus. im ) is not a permutation of (1. . (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) = 0.. we have E= η∈C APPENDIX B. in this case f (ai1 . aim ) If (i1 . Note that η ∗ (1) + · · · + η ∗ (m) = η(1) + · · · + η(m) + 1.m}m = (i1 . .m}m (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) f (ai1 . . there is some j ∈ {1. . .im )∈{1. . . .. . in which case η∈C (−1)η(1)+···+η(m) η(i1 ) · · · η(im ) = (−1)m . .. . Let J = {η ∈ C | η(j) = 0}. . and since (−1)η ∗ (1)+···+η ∗ (m) η ∗ (i1 ) · · · η ∗ (im ) = (−1)η(1)+···+η(m)+1 η(i1 ) · · · η(im ) = −(−1)η(1)+···+η(m) η(i1 ) · · · η(im ). we get η∈C If (i1 ..

..ik }. am ) = fS (−1 . . for λi = 0. . . k≥1 which concludes the proof.4. . . . −k ). . .. k≥1 j∈{1. λm ∈ R. and all −1 .. 1 ≤ k ≤ m. . . .2 Homogenizing Multiaﬃne Maps This section contains the proof of Lemma 10. all −1 . Let us assume that f exists. .. and all λ1 . .. . k=|S| S={i1 . k=|S| S={i1 . k≥1 → → fS (−1 . k≥1 453 (−1)k k m h i∈H ai k . . m). am ∈ E. ..2.. . . ...m} k=|H|... . for any m-aﬃne − → − → map f : E m → F . such that. . . am ) = 1 m! (−1)m−k k m h i∈H H⊆{1. . if → → f (a1 + −1 . the above identity implies that f (a1 . . ... −k ). . − + λm am ) v vm = λ1 · · · λm f (a1 .m} j ∈S / → → → − for all a1 . . We ﬁrst prove by induction on k. . am + − ) = f (a1 . . then → → f (−1 + λ1 a1 . am ) = H⊆{1.. . and (−1)m+k = (−1)m−k . ..m}. . .m} k=|H|. am ∈ E. . . v vm 1 ≤ i ≤ m. − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 ... .B. there is a unique m-linear map f : (E)m → F extending f . k B. . . . HOMOGENIZING MULTIAFFINE MAPS and since there are m! permutations of (1. vi vi S⊆{1. .. . where the fS are uniquely determined v vm multilinear maps (by lemma 4. .1 Given any aﬃne space E and any vector space F . − ∈ E . vi vi − → → → for all a1 . .1.. −k ).1. . . . − → Lemma 10. . . . Furthermore. . we have → → → → f (−1 + λ1 a1 .. . . . ... that → → → → f (a1 . am ) + → → λj fS (−1 ..ik }. − ∈ E .. . . . am ) + v vm S⊆{1. . v vm 1 v m vm Proof. . . . . we get (−1)m m!f (a1 . Since (−1)m (−1)m = 1.4. . ai . am + λ−1 − )... . . .m}. . . . . −1 . . . .. .. . . .3). −k . vi vi vi vi .

. for any a ∈ E. . . . v v 1 m For k = 1. . we also have → → → → v− v− vi f (a1 . . . . am ) + f{1} (−1 ). am ) + f (a1 . . v + T j1 jl T ={j1 . .. . . . . a + −k+1 . v v v and using the expression of f in terms of the fS . . − ∈ E .. . a. . v v Thus. am ) = f (a1 . . . . . .. v v but since f extends f .. a2 . ik+1 }. a + −1 . . . . . . am ) = f (a1 . am ) i → → f (a . . . . am ) vi i → → = f (a1 . . . . −1 . . . . a + −1 . a2 . a2 . am ) = f (a1 . . . . . . . . a + −k+1 . 1 ≤ l ≤ k. 1≤l≤k → → f (a1 . . . . . . . − . . for all a1 . jl }. . . . . . . we get → → v− f (a1 . . . . −1 . . am ). . am ) = f{1} (−1 ) v v Assume that the induction hypothesis holds for all l < k + 1. . . am ). . . we have → → f (a1 + −1 . . am ). . a + −k+1 . a2 . we have → → − for all −1 ∈ E . . am ) = fT (−1 . . . . . −k+1 . . and let S = {i1 . .jl } T ⊆S. a. . . . . . . . v v + 1 j1 jl m T ={j1 . . . and since f extends f . . . am ) vi v− i → → v f (− . . .454 APPENDIX B. . . . m}. . am ) = f (a1 + −1 . . . a + −1 . . . . . by the induction hypothesis. . . . a + −k+1 . ik } and k = |S|. . a2 . for any a1 ∈ E. . . . since f is m-linear. we have → → v− vi = f (a1 . . . . . am ) + f (a1 . a2 . . . . a2 . . am ) + f (−1 . . 1≤l≤k Since f extends f . . v → → f (−1 . am ) = f (a1 . a2 . . . . . . . a2 . . − . . . . .jl } T ⊆S. am ) vi v− i However. . . − ). . . such that S = {i1 . . and → → → − all − . . vj vj vj vj for every T = {j1 . .. we have → → → → f (a1 . . we have → → → f (a1 + −1 . a2 . . we also have → → f (a1 + −1 . . . . . . . a. . . −1 . . . . COMPLEMENTS OF AFFINE GEOMETRY for every S ⊆ {1. . . vi i i . . . . . −l ). . . a + −1 . . . am ∈ E. −l . am ) + f (−1 . . . . . . . . . . .. . . .. . . . a ). . .. . . . . . . . . . . . . . Since f is multilinear. . . . with k + 1 = |S|. . assuming for simplicity of notation that i1 = 1. . a. −k+1 .

. −k+1 . ...B. . . . .. .. . . . . . . k≥1 j∈{1. . .. . we get 455 → → → → f (a1 .. . . am + λ−1 − ). . . . i1 ik and thus. am ) = f (a1 . . .. the lemma is proved. . . . −k ). . . am ) = fS (−1 .. . −k ). . λm (am + λ−1 − )) = λ1 · · · λm f (a1 + λ−1 −1 . am + λ−1 − ) = f (a1 . . k=|S| S={i1 . am ) + fS (−1 . . − + λm am ) v = λ1 · · · λm f (a1 . . assume that λi = 0. a.m} j ∈S / This expression agrees with the previous one when λi = 0 for some of the λi . − + λm am ) = λ1 · · · λm f (a1 + λ−1 −1 . . . . k≥1 → → vi vi λ−1 · · · λ−1 fS (−1 . .. . λm (am + λ−1 − )). . −k+1 ). + T j1 jl T ={j1 . . .ik }. a. we conclude that → → → → f (a1 . Thus. . . . .2.m}.. .... . the above deﬁnes a multilinear map. S⊆{1. We get → → → → vm f (−1 + λ1 a1 . v 1 v m vm and since f is m-linear. . and clearly. . . . . . . . . .jl } T ⊆S. . . . . . . . . v vm 1 v m vm We can expand the right-hand side using the fS . . . 1 ≤ i ≤ m.. Clearly. . −1 . − ). . ... . we get → → → → f (−1 + λ1 a1 . . . . . . the above expression deﬁnes an m-linear map.. . vi v− vi v− i i − → This shows that f is uniquely deﬁned on E . am ) + → → vi vi λj fS (−1 . . we get → → → → f (λ1 (a1 + λ−1 −1 ). HOMOGENIZING MULTIAFFINE MAPS and by expanding this expression in terms of the fT . .. am + λ−1 − ). . − + λm am ) = f (λ1 (a1 + λ−1 −1 ). . . −k+1 ) vi v− vi v− i i → → v v f (− . . . we get → → vm f (−1 + λ1 a1 .ik }. a + −k+1 . . . . am ) + 1 v m vm S⊆{1. 1≤l≤k Thus. . and this shows that f is uniquely deﬁned. 1 ≤ i ≤ m.. . ..m}. Now. a + −1 . . ... 1 v m vm 1 v m vm Since f extends f . and we get → → f (a1 + λ−1 −1 . k=|S| S={i1 . . . .. . . .

1. → − → Since M = {− | x ∈ M} and N = { by | y ∈ N}.2. − − → → − → and M ∩ N = { 0 }.10 and lemma A. which means that f + g is injective. It is obvious that i − j is surjective and that f + g is injective. Lemma B. if M ∩ N = ∅. there are several interesting linear maps. for any c ∈ M ∩ N. As a consequence. and g : M ∩N → M ⊕N.456 APPENDIX B. we need a result of linear algebra.6. (1) Pick any a ∈ M and any b ∈ N. injections f : M ∩N → M ⊕N.4. The second part of the lemma follows from lemma A. as desired. Im (f + g) = Ker (i − j). with the deﬁnitions above. and at the notion of direct sum of aﬃne spaces which will be needed in the section on diﬀerentiation. where u ∈ M. we have the maps f + g : M ∩ N → M ⊕ N. → − (3) If S is the least aﬃne subspace containing M and N. COMPLEMENTS OF AFFINE GEOMETRY B. we ax → → − − → → − → − → have ab = − − bc. i − j is surjective. the canonical injections in1 : M → M ⊕N and in2 : N → M ⊕N. Given a vector space E and any two subspaces M and N. which is possible since M and N are nonempty. and v ∈ N. such that.3. and that Im (f + g) = Ker (i − j). Given a vector space E and any two subspaces M and N. Assume that (i − j)(u + v) = 0. the following facts hold: → − (1) M ∩ N = ∅ iﬀ ab ∈ M + N for some a ∈ M and some b ∈ N. Proof.3. i(u) = j(v) = w ∈ M ∩ N. We have the canonical injections i : M → M +N and j : N → M +N. assume ac ac . with − ∈ M and bc ∈ N.4. then S = M + N + R ab. First. we take a closer look at the intersection of aﬃne subspaces. and thus. Lemma B. We now prove a simple lemma about the intersection of aﬃne subspaces. ab ∈ M + N. and i − j : M ⊕ N → M + N. and thus. and thus. Conversely. By deﬁnition of f and g. and v = g(w). we have the Grassmann relation: dim(M) + dim(N) = dim(M + N) + dim (M ∩ N). for any two nonempty aﬃne subspaces M and N. Proof.3 Intersection and Direct Sums of Aﬃne Spaces In this section. the following is a short exact sequence: 0 −→ M ∩ N −→ M ⊕ N −→ M + N −→ 0. Then. u = f (w). f +g i−j → − (2) M ∩ N consists of a single point iﬀ ab ∈ M + N for some a ∈ M and some b ∈ N. where f is the composition of the inclusion map from M ∩ N to M with in1 . Given any aﬃne space E. by deﬁnition of i and j. and g is the composition of the inclusion map from M ∩ N to N with in2 . Then. i(u) = j(v). and thus. there is some w ∈ M ∩ N.

and M ∩ N = ∅. because → − → − → − − − → → −−→ −− M ∩ N = { ab | a. then M ∩ N consists of a single point. But we also have → − − → xy − → → ab = ax + − + yb. that is. and since − = 2 yb.3. → → → − → − − → and thus. (2) Note that in general.3. then the following properties hold: . −−→ −− Since M ∩ N = c + M ∩ N for any c ∈ M ∩ N. since N being an aﬃne subspace. Thus x also belongs to N. b is the middle of the segment xy xy → − → [x. it is closed under barycenters. if M ∩ N = ∅. then M∩N consists of a single point iﬀ M ∩ N = { 0 }. 2) and yx (y. x = 2b − y is the barycenter of the weighted points (b.2 shows that if M ∩ N = ∅ then ab ∈ M + N for all a ∈ M and all b ∈ N. b ∈ N} = M ∩ N . for some x ∈ M ax and some y ∈ N. if S is the least aﬃne subspace containing M and N. we have − − → → M ∩ N = c + M ∩ N for any c ∈ M ∩ N.3. b ∈ M} ∩ { ab | a. we get 0 = − + yb − by. it follows that if M∩N = ∅.2 implies that for any two nonempty aﬃne subspaces M and N. − = 2 by. Remarks: → − (1) The proof of Lemma B. x ∈ M ∩ N. (3) It is left as an easy exercise. ab = − + by. Then. then ab ∈ E − → − → − → for all a ∈ M and all b ∈ N. Given an aﬃne space E and any two nonempty aﬃne subspaces M and N. This fact together with what we proved in (1) proves (2). We can now state the following lemma Lemma B.B. Thus. b ∈ M ∩ N} = { ab | a. Indeed. the result follows from part (2) of the lemma. INTERSECTION AND DIRECT SUMS OF AFFINE SPACES 457 → − → → − − → that ab ∈ M + N for some a ∈ M and some b ∈ N. (2) Lemma B. and since M ∩ N = { 0 }.3.3. y]. then −−→ − − −− → → M ∩N = M ∩ N. Thus. −1). if E = M ⊕ N. − − → → − → From this. if E = → → − − M ⊕ N.

because axiom (AF3) may not hold. Ei | xi = ai for ﬁnitely many i ∈ I}. let ai be some chosen point in Ei . Thus. then dim(S) = dim(M) + dim(N) − dim(M ∩ N). When I is inﬁnite. COMPLEMENTS OF AFFINE GEOMETRY dim(M) + dim(N) < dim(E) + dim(M + N). pa ((xi )i∈I ) = xi . ai ) of the family (Ei )i∈I relative to a. as the − → following aﬃne space Ea . Given an indexed family (Ei )i∈I of aﬃne spaces (where I is nonempty). → (xi )i∈I + (−i )i∈I = (xi + ui )i∈I . for all j ∈ I − {i}. the same aﬃne space is obtained no matter which points are chosen. and dim(S) = dim(M) + dim(N) + 1 − dim(M ∩ N). − → Deﬁnition B.458 (1) If M ∩ N = ∅.1.2 and lemma B.3. ina (y) = (xi )i∈I . We now consider direct sums of aﬃne spaces. we deﬁne an aﬃne space E whose associated vector space − → − → is the direct sum i∈I Ei of the family ( E i )i∈I . i . +a : Ea = {(xi )i∈I ∈ − → E = i∈I i∈I − → Ei . where each Ei is − → really an aﬃne space Ei . u We deﬁne the injections ina : Ei → i∈I (Ei . then APPENDIX B. i i a and xj = aj .3. We deﬁne the direct sum i∈I (Ei . However. where pi is the restriction to i∈I (Ei . but we leave it as an exercise.3. When I is ﬁnite. we deﬁne the direct sum of the family (Ei )i∈I of aﬃne spaces. ai ) such that. E . we get isomorphic aﬃne spaces. where each Ei is nonempty. and let a = (ai )i∈I . i and we also call pa a projection. where xi = y. (2) If M ∩ N = ∅. using lemma B. We also have functions pa : i i∈I (Ei . − → +a : Ea × E → Ea is deﬁned such that. Thus. ai ) of the projection πi : i∈I Ei → Ei . ai ) → Ei . +i . Proof. For each i ∈ I. Ei . relative to a ﬁxed choice of points (one point in each Ei ).4. +i i∈I be a family of aﬃne spaces (where I is nonempty). Ei . there is a diﬃculty if we take E to be the direct product i∈I Ei . It is not diﬃcult. Let Ei .

am ) is irrelevant. ai ). a1 ) ⊕· · ·⊕(Em . . . . . am ) are isomorphic. y ∈ i∈I (Ei . ai ) is an aﬃne space. . bm ). um ) = (a1 + u1 . and wi = 0. +i . . instead of the unordered concept of the ﬁnite direct sum of aﬃne spaces (E1 . we deﬁne the aﬃne space E. Ei . by deﬁnition of i∈I (Ei . . and that designated origins are picked in each Ei . E .B. and yi = ai on a ﬁnite subset I ′′ of I. . Ea and +a do not depend on the choice of a. Then. am ) + (u1. letting fi = pi ◦ f . . .8 for a direct sum of aﬃne spaces and aﬃne maps.3. Remark: Observe that the intersection of the aﬃne subspaces ina (Ei ) reduces to the single i point a. Given − → − → any m aﬃne spaces Ei . for i ∈ I ′ ∪ I ′′ . except that the order of the factors in (E1 . E = E1 × · · · × Em . INTERSECTION AND DIRECT SUMS OF AFFINE SPACES 459 It is easy to verify that i∈I (Ei . we write i∈I (Ei . fm (a)). This is because for every y ∈ Ei . The veriﬁcation that this is an aﬃne space is obvious. This is consistent with the corollary of lemma B. . Ei . . we have x = (xi )i∈I and y = (yi )i∈I . We leave as an exercise to prove the analog of lemma A. m}. When I = {1. i − → − → → a we have ini (y) = a + ini (−y). b1 ) ⊕ · · · ⊕ (Fm . Let us check (AF3). . xm ). . . and thus. . ai ) are aﬃne maps. . The order of the factors (Ei . . Given any two points x. ai ). +i . but the injections ina do. is deﬁned such that (a1 . for all i ∈ I − (I ′ ∪ I ′′ ). a1 ) ⊕ · · · ⊕ (Em . . . . . . Clearly. and we denote each (xi )i∈I as (x1 . as follows: E = E1 × · · · × Em . The ﬁnite product of the aﬃne spaces − → Ei . In i this case. m ≥ 1. . we write f = in1 ◦ f1 + · · · + inm ◦ fm . we see immediately that f (a) = (f1 (a). . . where xi = ai on a ﬁnite subset I ′ of I. ai ) as (E1 . it is − → → − w xi yi clear that the only vector w ∈ i∈I Ei such that y = x + w. m}. if E is an aﬃne space and F1 . where ini : Ei → ai i∈I Ei is the injection from the vector − → − → space Ei into i∈I Ei . Fm are m aﬃne spaces.4. It is also obvious that in1 ◦ π1 + · · · + inm ◦ πm = id. The injections ina : Ei → i∈I (Ei . +i is also denoted simply as E1 × · · · × Em . . E1 × · · · × Em and (E1 . + . .3. we have f (a) = in1 (f1 (a)) + · · · + inm (fm (a)). . Sometimes. . ai ) is irrelevant. If the Fi are vector spaces. for every a ∈ E. is w = (−i )i∈I .3. a1 ) ⊕ · · ·⊕(Em . . . we have use for the ﬁnite (ordered) product of aﬃne spaces. called the (ﬁnite) − → − → − → − → product of the aﬃne spaces Ei . for any function f : E → (F1 . am ). Ei . am + um ). where wi = −→. − → and + : E × E → E. When I is ﬁnite and I = {1. a1 ) ⊕ · · · ⊕ (Em . am ). .

. we have m Span(F (E)) = f⊙ Proof. given a polynomial map F : E → E of degree m. lemma 10. and a subset S of E. and thus m Span(f ((E)m )) ⊆ f⊙ E .1. Remark: We can easily prove a version of lemma B. θm ) = f⊙ (θ1 · · · θm ). .3 can also be stated as follows in terms of f⊙ . E . Since f⊙ is a linear map.1. . for every polynomial map F : E → E of degree m with polar form f : E m → E. θm ∈ E. . . its range is a vector space. m F : E → E is the polynomial map associated with f . . First. Now. we denote as Span(S) the aﬃne subspace (the ﬂat) of E generated by S. m Span(F (E)) ⊆ Span(f ((E) )) ⊆ f⊙ The ﬁrst inclusion is trivial. First.2 (conditions on polar forms for polynomial maps to agree to kth order).1 for the aﬃne symmetric tensor power of E.5.4. COMPLEMENTS OF AFFINE GEOMETRY B. . Since the tensors of the form θ1 · · · θm .4. However. . Given any two aﬃne spaces E and E. Lemma B. and f⊙ : E → E is the unique linear m map from the tensor product E associated with f . since a multilinear map is multiaﬃne.4. θm ) ∈ Span(F (E)). the proof will be complete. if we can show that f⊙ (θ1 · · · θm ) ∈ Span(F (E)). .460 APPENDIX B. . this is an immediate consequence of lemma 4. and the aﬃne blossom f⊙ of F : we have m Span(F (E)) = f⊙ E .5.4 Osculating Flats Revisited This Section contains various results on osculating ﬂats as well as a generalized version of lemma 5. Given an aﬃne space E. and since f (θ1 . we show that E . Thus. generate m E. we have f ((E)m ) ⊆ f⊙ m m E . if f : (E)m → E is the homogenized version of f . we just have to show that f (θ1 . . we relate Span(F (E)) to f⊙ m E . . where θ1 . .

4. . Given an aﬃne polynomial function F : E → E of polar degree m. and where κ : E→ deﬁned as follows: since the tensors k E is a bijective weight-preserving linear map i i δ11 · · · δnn ak−i . since on one hand. k for all θ ∈ k E. where i = i1 + · · · + in . . we have ∂ ∂x1 i1 ∂ ··· ∂xn i i Gk (a) = k i g⊙ (δ11 · · · δnn ak−i ). OSCULATING FLATS REVISITED 461 Lemma B. is determined such that a g⊙ (θ) = f⊙ (κ(θ) am−k ). we get ∂ ∂x1 i1 in i i F (a) = mi f⊙ (δ11 · · · δnn am−i ). κ is the unique linear map such that mi i1 i δ · · · δnn ak−i . . .2. Given an aﬃne polynomial function F : E → E of polar degree m. δn ) is a basis of − → E . j and thus. Duk F (a) = mk f⊙ (am−k −1 · · · −k ). Dujk F (a) = mk f⊙ (am−k − 1 · · · − k ). . ki 1 i i κ(δ11 · · · δnn ak−i ) = Proof. Letting b = a + h1 δ1 + · · · + hn δn . where E and E are normed aﬃne spaces. where → → E and E are normed aﬃne spaces. . the polar form g : E k → E of the polynomial map Gk : E → E that osculates F to kth order at a. u u k We can now ﬁx the problem encountered in relating the polar form ga of the polynomial k map Ga osculating F to kth order at a. .2. with 0 ≤ k ≤ m. for any a ∈ E. and on the other hand.4. if E is of ﬁnite dimension n and (δ1 . form a basis of k E. we have Gk (b) = F (a) + a 1≤i1 +···+in hi1 · · · hin 1 n i1 ! · · · in ! ≤k in ∂ ∂x1 i1 ··· ∂ ∂xn in F (a).4. . . Duk F (a) can be computed from the homogenized polar form f of F as follows: → → Du1 . . where 1 ≤ k ≤ m. . −k . . we have → u → uj Duj1 . for any k nonzero vectors −1 .3. Lemma B. By lemma B. . for any k. a .4. with the polar form f of F . ∂ ··· ∂xn where i1 + · · · + in = i.B. . u u the k-th directional derivative Du1 .

we get E . bk ). Since κ is weight-preserving and since Osck F (a) = Span(G(E)).4. .4. with 0 ≤ k ≤ m. k for all θ ∈ k E. we conclude that i i i i k i g⊙ (δ11 · · · δnn ak−i ) = mi f⊙ (δ11 · · · δnn am−i ). . and for any a ∈ E.462 APPENDIX B. we have g⊙ (θ) = f⊙ (κ(θ) am−k ). At last. where E and E are normed aﬃne spaces. ki 1 k and thus. From lemma B. a. and E is of ﬁnite dimension n. b1 . .4. ki 1 we have g⊙ (θ) = f⊙ (κ(θ) am−k ). . bk ) → f (a. and where κ : E → k E is a bijective weight-preserving linear map. . κ is weight-preserving. Thus. . Lemma B. . . for any k. m−k is the osculating ﬂat Osck F (a).1. the aﬃne subspace spanned by the range of the multiaﬃne map (b1 . . such that mi i1 i δ · · · δnn ak−i .4. for all θ ∈ k E.3. i i g⊙ (δ11 · · · δnn ak−i ) = f⊙ mi i1 i δ · · · δnn ak−i am−k . . . Span(G(E)) = {g⊙ (θ) | θ is an aﬃne combination of simple k-tensors of points in E} k = g⊙ E . we conclude that Osck F (a) = {f⊙ (θ am−k ) | θ is an aﬃne combination of simple k-tensors of points in E}. deﬁning the bijective linear map κ : i i κ(δ11 · · · δnn ak−i ) = E→ k E. From lemma B. COMPLEMENTS OF AFFINE GEOMETRY where i1 + · · · + in = i. we know that k Span(G(E)) = g⊙ where g is the polar form of G. Clearly. Proof. . that is. we obtain the relationship between osculating ﬂats and polar forms stated without proof in section 5.4. Let G be the polynomial map osculating F to kth order at a. . Given an aﬃne polynomial function F : E → E of polar degree m.

. . iﬀ their polar forms f : E m → E and g : E m → E u u agree on all multisets of points that contain at least m − k copies of a. Lemma B. for all u1 . .4. uk ∈ E. Dui G(a). . . a. . OSCULATING FLATS REVISITED 463 However. . . we have f⊙ (θ am−k ) = g⊙ (θ am−k ).e. By lemma B. . . a. . .5. . a. . uk ∈ E. . and thus. where 0 ≤ i ≤ k. bk ). . . → → by letting θ = ak−i −1 · · · −i in u u f⊙ (θ am−k ) = g⊙ (θ am−k ). . . . bk ) → f (a. Dui F (a) = Du1 . . . . . . . m−k m−k for all u1 . b1 . uk . a) = g(u1. → → → − for all −1 . . We have shown that these tensors generate k E. for every k ≤ m. . . where u1 . −i ∈ E . k for all simple k-tensors θ ∈ E of the form u1 · · · uk . where E is of ﬁnite dimension. . for all k-tensors θ ∈ k E. . . . i. .4. iﬀ f (u1.4. . Assume that the polar forms agree as stated. This can be restated as f⊙ (θ am−k ) = g⊙ (θ am−k ). that is. . Dui G(a) = mi g⊙ (am−i −1 · · · −i ). the aﬃne subspace spanned by the range of the multiaﬃne map (b1 . a). since f agrees with f on E m . Given any two aﬃne spaces E and E. . We can also give a short proof of a generalized version of lemma 5. .2.5.2. . Dui F (a) = mi f⊙ (am−i −1 · · · −i ) u u and → → u u Du1 . Proof. . since → → Du1 . iﬀ f⊙ (u1 · · · uk am−k ) = g⊙ (u1 · · · uk am−k ). . Du1 . . . two polynomial maps F : E → E and G : E → E of polar degree m agree to kth order at a. . uk . . . . . . for every a ∈ E. uk ∈ E. . m−k is the osculating ﬂat Osck F (a). . . .B.

. 3. . and thus. and thus. δn ) be a basis of E . The corresponding algebra (E) plays an important role in diﬀerential . Letting θ = δ11 · · · δnn ak−i . . by lemma B. for all θ ∈ k E. . since by assumption these derivatives agree. Du1 . forms a basis of i1 + · · · + in . uk ∈ E.2. In particular. . Dui F (a) = mi f⊙ (am−i −1 · · · −i ) u u and i → → i letting −1 · · · −i = δ11 · · · δnn . . We have shown that the family of tensors i i δ11 · · · δnn ak−i . where i = i1 + · · · + in . we mention that there is a third version of the tensor product. It follows that the exterior product changes sign when two u u factors are permuted. . Dui G(a). Dui G(a) = mi g⊙ (am−i −1 · · · −i ). we mention that Ramshaw’s paper [65] m contains a fascinating study of the algebra and geometry of the tensor powers A and m A for m = 2. we have f⊙ (am−k θ) = g⊙ (am−k θ). this tensor product has the property that − ∧ ···∧ − ∧ ···∧ − ∧···∧− = − → → → → → u1 ui uj un 0 → → whenever −i = −j . COMPLEMENTS OF AFFINE GEOMETRY → → → → u u u u f⊙ (am−i −1 · · · −i ) = g⊙ (am−i −1 · · · −i ). for i = j. we have shown that − → Conversely. assume that F and G agree to kth order at a.464 we have APPENDIX B. and since u u i → → i am−k θ = δ11 · · · δnn am−i = −1 · · · −i am−i . . u u → → u u Du1 . . for all basis tensors θ of k E. the exterior (or alternating) tensor product (or Grassmann algebra). Roughly speaking. since k i i E. and thus. . For those readers who got hooked on tensors. The M¨bius strip even manages to show its tail! o To close this chapter. . Dui F (a) = Du1 . . Let (δ1 . . and much more. where u1 . this is true for k-tensors of the form θ = u1 · · · uk . . for all u1. where i = → → Du1 . . f⊙ (u1 · · · uk am−k ) = g⊙ (u1 · · · uk am−k ).4. . uk ∈ E. . . . .

B. Determinants can also be deﬁned in an intrinsic manner. For an extensive treatment (in fact. of the form − ⊗ − (this requires deﬁning a multiplication operation u u (⊗) on T(E)). The exterior algebra (E) can also be obtained as the quotient of T(E). . tensor algebras. very extensive!) of tensors. by the subspace of T(E) generated by → → all vectors in T(E). OSCULATING FLATS REVISITED 465 geometry. and [15]. Chapter IV).4. the reader is urged to consult Bourbaki ([14] Chapter III. etc.

466 APPENDIX B. COMPLEMENTS OF AFFINE GEOMETRY .

A metric space is a set E together with a function d : E × E → R+ . (D3) d(x. y ∈ E. and the Analysis Courses Analyse I-IV. Undergraduate Analysis.1. by Munkres [54].1. x). z). and their basic properties are stated. |x| = −x if x < 0. We begin with metric spaces. z).Appendix C Topology C. 71. assigning a nonnegative real number d(x. called a metric. z ∈ E: (D1) d(x. We recommend the following texts for a thorough treatment of topology and analysis: Topology. and we ﬁrst review these notions. a First Course. and d(x. y) = d(y. Next. (D2) d(x. by Schwartz [70. z) ≤ d(x. y) + d(y. the length of any side is bounded by the sum of the lengths of the other two sides. y) = 0 iﬀ x = y. or distance. Closed and open sets are deﬁned.1 Metric Spaces and Normed Vector Spaces This appendix contains a review of basic topological concepts. by Lang [48]. and satisfying the following conditions for all x. y) − d(y. and for a complex √ number x = a + ib. From (D3). Recall that R+ = {x ∈ R | x ≥ 0}. normed vector spaces are deﬁned. Recall that the absolute value |x| of a real number x ∈ R is deﬁned such that |x| = x if x ≥ 0. metric spaces are deﬁned. y. 467 . First. Most spaces considered in this book have a topological structure given by a metric or a norm. as |x| = a2 + b2 . condition (D3) expresses the fact that in a triangle with vertices x. we immediately get |d(x. y. 73]. 72. Let us give some examples of metric spaces. (symmetry) (positivity) (triangular inequality) Geometrically. The chapter ends with the deﬁnition of a normed aﬃne space. z)| ≤ d(x. y) to any two points x. z. Deﬁnition C. y) ≥ 0.

for every ρ ∈ R. open on the right) (interval open on the left. b] = {x ∈ R | a < x ≤ b}. . is called the open ball of center a and radius ρ. It should be noted that ρ is ﬁnite (i. x) = ρ} Let E = [a. Given a metric space E with metric d. Example 4: For any a. and d(x. ρ) = {x ∈ E | d(a. closed on the right) ]a. deﬁned such that d(x. y) = 1 iﬀ x = y. We will need to deﬁne the notion of proximity in order to deﬁne convergence of limits and continuity of functions. This is the so-called natural metric on R. a closed ball of center a and radius ρ < 1 consists only of its center a. we introduce some standard “small neighborhoods”. b]. . and a closed ball of center a and radius ρ ≥ 1 consists of the entire space! Clearly. ρ) ∪ S(a. b]. yn ). TOPOLOGY Example 1: Let E = R. x) = 0. ]a. For this. an open ball of center a and radius ρ is the open interval ]a − ρ. b] = {x ∈ R | a ≤ x ≤ b}. an open ball of center a and radius ρ is the set of points inside the disk of center a and radius ρ. not +∞). ρ).2. In E = R with the distance |x − y|. and the set is called the sphere of center a and radius ρ. we can deﬁne the discrete metric.1. if d is the discrete metric. (closed interval) (open interval) (interval closed on the left. [a. excluding the boundary points on the circle. the absolute value of x − y. b ∈ R such that a < b. Then.468 APPENDIX C. One should be aware that intuition can be midleading in forming a geometric image of a closed (or open) ball. . y) = |x − y|. Deﬁnition C. . xn ) and (y1 . the distance between the points (x1 . b[ = {x ∈ R | a < x < b}. ρ) = {x ∈ E | d(a. and d(x. an open ball of center a and radius ρ is the set of points inside the sphere of center a and radius ρ.e. ρ) = {x ∈ E | d(a. for every a ∈ E. a + ρ[. b[ = {x ∈ R | a ≤ x < b}. In E = R2 with the Euclidean metric. y) = |x1 − y1 |2 + · · · + |xn − yn |2 1 2 . excluding the boundary points on the sphere. the set B(a. and d(x. . the set B0 (a. . x) < ρ} S(a. ρ). ([a. . In E = R3 with the Euclidean metric. ρ) such that X ⊆ B(a. x) ≤ ρ} is called the closed ball of center a and radius ρ. with ρ > 0. B(a. . y) = |x − y|. Example 3: For every set E. Example 2: Let E = Rn (or E = Cn ). We have the Euclidean metric d2 (x. d) is a metric space. . we deﬁne the following sets: [a. A subset X of a metric space E is bounded if there is a closed ball B(a. For example. ρ) = B0 (a.

3. x x → → − +− ≤ − + − . we have the norm − . x y it is easily seen that d is a metric. Example 5: Let E = R. A vector space E together with a norm From (N3). Given a normed vector space E. For every → (x1 . − ∈ E: x y z (N1) (N2) (N3) → → → − ≥ 0. Note that the metric associated with a norm is invariant under translation. − + − ) = d(− .1. is in fact the interval [a. → → → → → → d(− + − . and x = |x|. deﬁned such that. the absolute value of x. Let E be a vector space over a ﬁeld K. . as in example 1. ρ). we easily get → → → → x y y x | − − − |≤ − −− . a + ρ[. an open ball B0 (a. Let us give some examples of normed vector spaces. every normed vector space is immediately a metric space. → x 0 x x → → λ− = |λ| − . − ) = − − − . xn ) ∈ E. which is closed on the left. Thus. x 1 − → x 1 = |x1 | + · · · + |xn |. . → → assigning a nonnegative real number − to any vector − ∈ E. y) = |x − y|. . or the ﬁeld C of complex numbers. METRIC SPACES AND NORMED VECTOR SPACES 469 If E = [a. Deﬁnition C. A norm on E is a function : E → R+ . . where K is either the ﬁeld R of reals. x u y u x y − → For this reason. Example 6: Let E = Rn (or E = Cn ). . and satisfying the following u u → → → conditions for all − . if we deﬁne d such that → → → → x y d(− . − ). We now consider a very important special case of metric spaces. as in example 4. There are three standard norms. and d(x. The associated metric is |x − y|. with ρ < b − a. − . → → y x x y (positivity) (scaling) (convexity inequality) is called a normed vector space.1. b]. that is. normed vector spaces.C. we can restrict ourselves to open or closed balls of center 0 . and − = 0 iﬀ − = − .

x 2 APPENDIX C. A subset U ⊆ E is an open set in E iﬀ either U = ∅. . The following lemma is easy to show. but this can be found in any standard text. ρ) such that. xn ) ∈ E | ai ≤ xi ≤ bi .1. it is easy to show that the open n-cube {(x1 . . since for every a ∈ E.5. . . The set E itself is open. deﬁned such that. or for every a ∈ U. In E = Rn . .1 A subset F ⊆ E is a closed set in E iﬀ its complement E − F is open in E. bi ]. Note that the Euclidean distance is the distance associated with the Euclidean norm. we can deﬁne the closed n-cube {(x1 .1. x ≤n − ∞ √ − ≤ n → . . The following inequalities hold for all − ∈ Rn (or − ∈ Cn ): x x − → x − → x − → x ∞ ∞ 2 → ≤ − x → x ≤ − → x ≤ − 1 2 1 → . deﬁned such that. it is possible to ﬁnd a metric for which such open n-cubes are open balls! Similarly. given n intervals [ai . ≤ n x 2 In a normed vector space. 1 ≤ i ≤ n} is an open set. . we deﬁne a closed ball or an open ball of radius ρ as a closed − → ball or an open ball of center 0 . ρ) ⊆ U. → → Lemma C. We will now deﬁne the crucial notions of open sets and closed sets. . 1 ≤ i ≤ n}. Let E be a metric space with metric d. 1 Recall that ρ > 0. Deﬁnition C. . . In fact. The open sets satisfy some important properties that lead to the deﬁnition of a topological space. x ∞ √ − → . which is a closed set. TOPOLOGY − → x → and the sup-norm − x ∞ 2 = |x1 |2 + · · · + |xn |2 1 2 . and of a topological space.470 → we have the Euclidean norm − . We may use the notation B(ρ) and B0 (ρ). there is some open ball B0 (a. − → x = max{|xi | | 1 ≤ i ≤ n}. xn ) ∈ E | ai < xi < bi . ∞ Some work is required to show the convexity inequality for the Euclidean norm.4. B0 (a. every open ball of center a is contained in E. with ai < bi .

xn ) 1 2 ∞ i∈I Ui ∈ O.C. b)/3 (in fact ρ = d(a. xn ) (x1 . f is continuous at a iﬀ for every ǫ > 0. for every x ∈ E. ∅ and E belong to O. The above lemma leads to the very general concept of a topological space. the family O of open sets deﬁned in deﬁnition C. each Un is open.1. Limits If E and F are metric spaces deﬁned by metrics d1 and d2 . One should be careful that in general. For example.e. xn n }. (O2) For every arbitrary family (Ui )i∈I of sets Ui ∈ O. there exist two open sets Ua and Ub such that. we can pick Ua = B0 (a. we have under arbitrary unions.2 Continuous Functions. a ∈ Ua . (O3) ∅ ∈ O. . . .5 satisﬁes the following properties: (O1) For every ﬁnite family (Ui )1≤i≤n of sets Ui ∈ O. One can also verify that when Ei = R. . that is. LIMITS 471 Lemma C.1. there are three natural norms that can be deﬁned on E1 × · · · × En : (x1 . the family of open sets is not closed under inﬁnite intersections. . with the standard topology induced by |x − y|. the same set of open sets. i.2. O is closed = x1 = 1 + · · · + xn 2 1 n . . there is some η > 0. By the triangle inequality. xn ) (x1 . Furthermore. letting ρ = d(a. . If each (Ei . . which is not open. then d2 (f (a). i ) is a normed vector space. i. letting Un =] − 1/n. . we have U1 ∩ · · · ∩ Un ∈ O. It is straightforward.6. such that. and Ua ∩ Ub = ∅. . .e. ρ). O is closed under ﬁnite intersections. CONTINUOUS FUNCTIONS. . The reader is referred to standard texts on topology.e. in R under the metric |x − y|. x) ≤ η. . For the last point. we must have Ua ∩ Ub = ∅. such as Munkres [54]. . = max{ x1 . but n Un = {0}. . i. for any two distinct points a = b in E. if d1 (a. and E ∈ O. It is easy to show that they all deﬁne the same topology. b)/2 works too). . the topology product on Rn is the standard topology induced by the Euclidean norm. f (x)) ≤ ǫ. Given a metric space E with metric d. b ∈ Ub . C. . +1/n[. ρ) and Ub = B0 (b. Proof. 2 n 1 2 x1 + · · · + xn 1 . which is the product topology.

for all n ≥ n0 . we consider normed aﬃne spaces. a sequence (xn )n∈N converges to some a ∈ E iﬀ When E is a normed vector space with norm a ∈ E iﬀ Finally. b). a) ≤ ǫ. then f + g. E ) where the associated − → space of translations E is a vector space equipped with a norm. E ) is a normed aﬃne space iﬀ E is a normed vector space with norm . If E is a topological space. u u .3 Normed Aﬃne Spaces − → For geometric applications. are continuous at a. and (R. for every − ∈ E. −n − − ≤ ǫ. for any a ∈ E. Lemma C. When E is a metric space with metric d.3. such that. |x − y|) the reals under the standard topology. λf . for all n ≥ n0 . such that. there is a natural metric on E itself. Observe that this metric is invariant under translation.472 APPENDIX C. we can show easily that every real polynomial function is continuous. − → − → Deﬁnition C. if E and F are normed vector spaces deﬁned by norms → continuous at − iﬀ a → for every ǫ > 0. there is some n0 ≥ 0. Given a normed aﬃne space. if f and g are continuous at a. deﬁned such that → − d(a.2. . The following lemma is useful for showing that real-valued functions are continuous. we say that (E.1. for any two functions f : E → R and g : E → R. d(xn . such that. f is ≤ η. b) = ab . Left as an exercise. f · g. for every ǫ > 0. b + − ) = d(a. Given an aﬃne space (E. Proof.1. that is → → d(a + − . Using lemma C. where the space of translations E is a − → − → vector space over R or C. E ). then → → f (− ) − f (− ) x a 2 ≤ ǫ. a sequence (xn )n∈N converges to some → → for every ǫ > 0. for any λ ∈ R. and f /g is continuous at a if g(a) = 0.2. x if − −− → → x a 1 and 2.1. x a C. TOPOLOGY 1 Similarly. we will need to consider aﬃne spaces (E. there is some η > 0. there is some n0 ≥ 0.

.C. for every ﬁxed a ∈ E and λ > 0. and it is also complete. This will lead to tangent spaces to curves and surfaces (in normed aﬃne spaces). . h(y)) = λd(x. In fact. we make (E1 . by giving it the norm (x1 . the map − → a + − is a homeomorphism from E u u u to Ea .3. is we consider the map h : E → E. . Similarly. under the same norm. y). → h(x) = a + λ− ax. and similarly for the map − → − → → → → a → a + − from E × E to E. then d(h(x). We are now ready to deﬁne the derivative (or diﬀerential) of a map between two normed aﬃne spaces. . am ) into a normed aﬃne space. . xn n ). NORMED AFFINE SPACES 473 Also. → − − → Note that the map (a. . and each Ei is also a normed aﬃne space with norm i . xn ) = max( x1 1 . a1 ) ⊕ · · · ⊕ (Em . Rn is a normed aﬃne space under the Euclidean metric. a1 ) ⊕ · · · ⊕ (Em . deﬁned such that. . . Of course. . am ). If an aﬃne space E is a ﬁnite direct sum (E1 . the ﬁnite product E1 × · · · × Em is made into a normed aﬃne space. b) → ab from E × E to E is continuous.

474 APPENDIX C. TOPOLOGY .

In this case. and Avez [2]. Schwartz [71]. We ﬁrst review the notion of derivative of a realvalued function whose domain is an open subset of R. Lang [48]. The main idea behind the concept of the derivative of f at a. We show how derivatives are represented by Jacobian matrices. the derivative of f at a ∈ A is the limit (if it exists) f (a + h) − f (a) lim . and consider any a ∈ A. Next. Let A be any nonempty open subset of R. This limit is denoted as f ′ (a). including the chain rule. where A is a nonempty open subset of R. or Df (a). dx If f ′ (a) exists for every a ∈ A. the function f is approximated linearly by the map Part of the diﬃculty in extending this idea to more complex spaces. Total Derivatives This appendix contains a review of basic notions of diﬀerential calculus. denoted as f ′ (a). h→0.1. First. is that locally around a (that is. in some small open set U ⊆ A containing a). we deﬁne directional derivatives and the total derivative of a function f : E → F between normed aﬃne spaces. For any function f : A → R. Deﬁnition D. or Df . we review the deﬁnition of the derivative of a function f : R → R. h = 0}. is to give an adequate notion of linear approximation.Appendix D Diﬀerential Calculus D. h∈U h df (a). we say that f is diﬀerentiable on A. . Cartan [16]. Basic properties of derivatives are shown. A thorough treatment of diﬀerential calculus can be found in Munkres [55]. we will use linear maps! Let us now review the formal deﬁnition of the derivative of a real-valued function.1 Directional Derivatives. Let f : A → R. and let a ∈ A. dx where U = {h ∈ R | a + h ∈ A. Of course. the map df a → f ′ (a) is denoted as f ′ . or . or 475 x → f (a) + f ′ (a)(x − a).1.

DIFFERENTIAL CALCULUS Note that since A is assumed to be open. then it is continuous at a. If a function f as in deﬁnition D. h < 0}. A − {a} is also open. h∈U h where U = {h ∈ R | a + h ∈ A. in the → − rest of this chapter. Remark: We can also deﬁne the notion of derivative of f at a on the left. The ﬁrst diﬃculty is to make sense of the quotient f (a + h) − f (a) . If f is diﬀerentiable on A. if it exists. then f is continuous on A. − → Since F is a normed aﬃne space. and that the vector space associated − → with F is denoted as F . and A is some nonempty open subset of E. how do we deﬁne the quotient by a vector? Well. U is indeed open and the deﬁnition makes sense. But now. Remark: A function f has a derivative f ′ (a) at a iﬀ the derivative of f on the left at a and the derivative of f on the right at a exist. Also. For example. We would like to extend the notion of derivative to functions f : A → F . the vector ab will be denoted as b − a. f (a + h) − f (a) lim . and if they are equal. and h→0.476 APPENDIX D. we say that the derivative of f at a on the left. whenever a + h ∈ A. it will be notationally convenient to assume that − → the vector space associated with E is denoted as E . and derivative of f at a on the right.1 has a derivative f ′ (a) at a. then f is continuous on the left at a (and similarly on the right). that this quantity is a vector and not a point. h→0. such that. −− − − −→ −−−−− − → − → it is notationally more pleasant to denote f (a)f (a + h ) as f (a + h ) − f (a). h If E and F are normed aﬃne spaces. f (a + h) = f (a) + f ′ (a) · h + ǫ(h)h.1. is the limit f ′ (a− ). where E and F are normed aﬃne spaces. We can also deﬁne f ′ (a) as follows: there is some function ǫ(h). we don’t! . making sense of f (a + h ) − f (a) is easy: we can deﬁne −− − − −→ −−−−− − → − → this as f (a)f (a + h ). in deﬁning derivatives. Nevertheless. the unique vector translating f (a) to f (a + h ). and since the function h → a + h is continuous and U is the inverse image of A − {a} under this function. h∈U lim ǫ(h) = 0. Thus. We should note however. The composition of diﬀerentiable functions is diﬀerentiable. if the derivative of f on the left at a exists. where ǫ(h) is deﬁned for all h such that a + h ∈ A.

it is immediately veriﬁed that D1 f (a) = f ′ (a).1. a small → curve segment on f (A)). the derivative D1 f (a). Thus.r. s] to F ). and yet their composition may not. where t ∈ R (or t ∈ C). let A be a nonempty open subset of E. provides a suitable generalization of the notion of derivative. The idea is that in E.1. Let E and F be two normed aﬃne spaces. and let f : A → F be any function. As u a consequence. and we let − = 1 (i. deﬁnes the direction of the tangent line at a to this curve. The directional derivative is sometimes called the Gˆteaux derivative. When E = R (or E = C) and F is any normed vector space.2. in the sense of deﬁnition D.1. Let E and F be two normed aﬃne spaces. This leads us to the following deﬁnition. the points → of the form a + t− form a line segment).1. and yet not be continuous at a. We can consider the vector f (a + t− ) − f (a). Two functions may have all directional derivatives in some open sets. the inverse image U u of A − {a} under the above map is open.1. Now. there is no reason to believe → that the directional derivatives w. This curve (segment) is deﬁned by the map t → f (a + t− ). as long as they are equivalent norms. and the directional derivative Du f (a). For any a ∈ A. t∈U lim → f (a + t− ) − f (a) u . DIRECTIONAL DERIVATIVES.t. Indeed. from u R to F (more exactly from [r. u viewed as a vector). also denoted as f ′ (a). curve which lies on the image f (E) of E under the map f : E → F (more exactly. the points of the form a + t− form a line.2 makes sense.3. However. for any − = 0 in E . let A be a nonempty open − → − → → subset of E. a function can have all directional derivatives at a. u → f (a + t− ) − f (a) u t → makes sense. TOTAL DERIVATIVES 477 → → − A ﬁrst possibility is to consider the directional derivative with respect to a vector − = 0 u − → → in E .1. a → → − In the special case where E = R and F = R.D. Deﬁnition D. all nonnull vectors − share something in common. directional derivatives present a serious problem. and the deﬁnition of the limit in deﬁnition D. denoted as D f (a). t = 0} (or U = {t ∈ C | a + t− ∈ A. and let f : A → F be any function. we introduce a more uniform notion. t → → where U = {t ∈ R | a + t− ∈ A. is the limit (if it u u exists) t→0. we say that f is diﬀerentiable . Since the notion of limit is purely topological. for t in some small closed interval [r. where t ∈ R u (or C) (more exactly. u → the directional derivative of f at a w. t = 0}). the real number 1. the existence and value of a directional derivative is independent of the choice of norms in E and F . For any a ∈ A.e. and since A − {a} is open. s] in A containing a. when E has dimension ≥ 2. the vector − .r. Deﬁnition D. and that the image of this line deﬁnes a curve in u F . u u → Since the map t → a + t− is continuous. which is that their deﬁnition is not suﬃciently uniform.t.

as long as they are equivalent norms. the existence and value of a derivative is independent of the choice of norms in E and F . or Dfa . and f has a directional derivative D f (a) for every − = 0 in E . − → − → − → Since the map h → a + h from E to E is continuous. of f at a. For any a ∈ A. if it exists. it does no harm to − → − → assume that ǫ( 0 ) = 0 . or f ′ (a). The linear map L is denoted as Df (a). → Du f (a) = Df (a)(− ). h∈U lim − → − → ǫ( h ) = 0 . if Df (a) is deﬁned. DIFFERENTIAL CALCULUS − → − → − → at a ∈ A iﬀ there is a linear continuous map L : E → F and a function ǫ( h ). Since the notion of limit is purely topological.4. h∈U − → − → − → → − Note that for every h ∈ U. and we will assume this from now on. the next lemma implies this as a corollary. and since A is open in E. and it is called the Fr´chet derivative. since h = 0 . However. Note that the continuous linear map L is unique. u . or df (a). such that − → − → − − → → f (a + h ) = f (a) + L( h ) + ǫ( h ) h − → − → − → − → for every a + h ∈ A. the − → inverse image U of A − {a} under the above map is open in E . and it makes sense to say that − → − → lim ǫ( h ) = 0 . then f is − → − → → continuous at a. where ǫ( h ) is deﬁned for every h such that a + h ∈ A and h→0. or derivative. ǫ( h ) is uniquely determined since − → − → − → f (a + h ) − f (a) − L( h ) ǫ( h ) = .1. In fact. − → h − → and that the value ǫ( 0 ) plays absolutely no role in this deﬁnition. let A be a nonempty open subset of E. or total diﬀerential . and u u furthermore. Lemma D. or diﬀerential . and let f : A → F be any function. when a + h ∈ A. − → − − → − → − → → where U = { h ∈ E | a + h ∈ A. h→0. Let E and F be two normed aﬃne spaces.478 APPENDIX D. The following lemma shows that our new deﬁnition is consistent with the deﬁnition of the directional derivative. Again. we note that the derivative Df (a) of f at a provides an aﬃne approximation of f . or total e derivative. h = 0 }. The condition for f to be diﬀerentiable at a amounts to the fact that the right-hand side of the above expression − → − − → − → → − → approaches 0 as h = 0 approaches 0 . locally around a. or dfa .

and letting h = t− . . . . if they exist. −n )). . ∂j f (a). −n )) of E. . if f : E → F is a constant function.1. although customary and going back to ∂xj Leibnitz. we get a map Df : A → L( E . DIRECTIONAL DERIVATIVES. we have u u → → → → f (a + t− ) = f (a) + tL(− ) + ǫ(t− )|t| − . for every a ∈ E. (−1 . we obtain the u u 1 n and for t = 0. then − → Df (a) = f . ǫ( h ) h approaches 0 . u u t t and the limit when t = 0 approaches 0 is indeed Du f (a). u u u u → f (a + t− ) − f (a) u |t| → → → u = L(− ) + ǫ(t− ) − . . Given two normed aﬃne spaces E and F . as follows. and this assumption is then redundant. deﬁnition of partial derivatives. . If f : E → F is a continuous aﬃne map. for every function f : E → F . Lemma D. f is continuous at a. . .D. If Df (a) exists for every a ∈ A. . (−1 . we have a + t− ∈ A. for every frame (a0 .1. .1. when E is of ﬁnite dimension. It is important to note that the derivative Df (a) of f at a is a continuous linear map − → − → from the vector space E to the vector space F . for every a ∈ E. and → → − → − thus.4. This way. . it is easily shown that every linear map is continuous. Deﬁnition D. . then Df (a) = 0. . . . u u the directional derivatives Duj f (a). since L is continuous. Indeed. for |t| ∈ R small enough (where t ∈ R or u − → → → t ∈ C). we can deﬁne the directional derivatives with respect to the vectors in the → → basis (− . −n )) for E. . For any two normed aﬃne spaces E and F . −n ) u u u u − → is a basis of E . This is just another of these situations where tradition is just too hard to overthrow! The notation We now consider a number of standard results about derivatives. For any − = 0 in E . for any frame (a0 . F ). . we can also do it for an inﬁnite frame). If h = 0 approaches 0 . (−1 . the variable xj really has nothing to do with the formal deﬁnition. is a “logical obscenity”. Also.5. and not a function from the aﬃne space E − − → → to the aﬃne space F . for every a ∈ E. The partial derivative Duj f (a) is also denoted as u u ∂f (a). − ) (actually. TOTAL DERIVATIVES 479 − → − − → → − → − → − → Proof. called the derivative of f on A. . . are called the partial derivatives of f with → → respect to the frame (a0 . and also denoted as df .6. or ∂xj ∂f (a) for a partial derivative. the linear map associated with f .1. if E is of ﬁnite dimension → → n. . The uniqueness of L follows from lemma D. where (−1 . → → → → When E is of ﬁnite dimension n.

9 has many interesting consequences. g Lemma D.7. and G.1.10. F . Straightforward.1. and D(g ◦ f )(a) = Dg(f (a)) ◦ Df (a).1. . b )(− .1.8.1. let f : A → B be a bijection from A to B. and → D(g ◦ f )(a) = − ◦ Df (a). D(λf )(a) = λDf (a). Lemma D. Proof.1. Given three normed aﬃne spaces E. − ). Given two normed aﬃne spaces E and F . Lemma D. and D(f + g)(a) = Df (a) + Dg(a). b ) exists. for any open subset A in E. Straightforward. Lemma D. b ) ∈ E1 ×E2 . F . It is not diﬃcult. if Df (a) exists and Dg(f (a)) exists. and G. − ) = f (− . APPENDIX D. let f : A → F such that Df (a) exists.11. D(g ◦ f )(a) exists. if Df (a) and Dg(a) exists. then D(g ◦ f )(a) exists. g → where − is the linear map associated with the aﬃne map g. for every a ∈ E. Given three normed vector spaces E1 . For any functions f : A → F and g : B → G. for any continuous bilinear → → → − → − → map f : E1 ×E2 → F . Given a normed aﬃne space E and a normed vector space F .9. DIFFERENTIAL CALCULUS Lemma D. such that f (A) ⊆ B. b ) + f (− . → and v 2 → → → − → → → − → → Df (− . Then. Df −1 (f (a)) = (Df (a))−1 . for any a ∈ A. for every (− . and let g : F → G be a continuous aﬃne map. Proof. for any a ∈ A. We mention two corollaries. and for every − ∈ E1 a a u − ∈E . then D(f + g)(a) and D(λf )(a) exists. let A be some open subset in E. a u v u a v Proof. for any two functions f : E → F . and F . but more involved than the previous two. E2 . let B some open subset in F . Straightforward.480 Proof. Then. let A be an open set in E. and let B an open set in F . Lemma D. for every a ∈ A. We now state the very useful chain rule. and assume that Df exists on A and that Df −1 exists on B. Df (− . Given three normed aﬃne spaces E.

as far as dealing with derivatives. . . where fi : E → K (where K = R or K = C). a local property.D. . for every a ∈ E. 0). we note that F is isomorphic to the direct sum F = (K. . . . . − → − → Proof. For any two normed aﬃne spaces E and F . . xm ) ∈ K m . that the two vector spaces E and F have the same dimension. fm ).1. In the special case where F is a normed aﬃne space of ﬁnite dimension m. − ) is a basis of F . . 0) ⊕ · · · ⊕ (K. . − )) of F . Lemma D. . and Df (a) = in1 ◦ Df1 (a) + · · · + inm ◦ Dfm (a). .9. v vm v vm a function f : E → F is diﬀerentiable at a iﬀ each fi is diﬀerentiable at a. and → → f (x) = b0 + f1 (x)−1 + · · · + fm (x)− . bm ). Given normed aﬃne spaces E and F = (F1 . implies a global property. . the existence of a bijection f between an open set A of E and an open set B of F . . − ) is a basis of F . Df (a) is equal to Dfb (a). . . we can work with the vector − → space F instead of the aﬃne space F . where fb : E → F is deﬁned such that.1. . such that f is diﬀerentiable on A and − → − → f −1 is diﬀerentiable on B. . . Lemma D. − )) of F . v vm for every x ∈ E. . where (− . . bm ). fm ). bm ). letting Fi be the standard normed aﬃne space K with its natural structure. letting f = (f1 . v vm . (− . Df (a) exists iﬀ every Dfi (a) exists. . . u → → x = b0 + x1 −1 + · · · + xm − .12. . . for any a ∈ A. − → and thus. The following lemma is an immediate corollary of lemma D. Observe that f (a + h ) − f (a) = (f (a + h ) − b) − (f (a) − b). where b = (b1 . . . if F is of ﬁnite dimension m. . . . b1 ) ⊕ · · · ⊕ (Fm .11 has the remarkable consequence that the two vector spaces E and F have the same dimension. . for every x ∈ E.12. In other words. . − )) (where K = R v vm or K = C). where (−1 . fb (x) = f (x) − b. every point x ∈ F can be v v v v 0 1 m 1 m expressed uniquely as → → where (x1 . The lemma is then a simple application of lemma D. .13.1. for any − → → → → → frame (b . .1.1. TOTAL DERIVATIVES 481 − → − → Lemma D. Then. the coordinates of x in the frame (b0 . . − → → → → → for any frame (b0 .1. every function f : E → F is represented by m functions (f1 . Thus. Thus. We now consider the situation where the normed aﬃne space F is a ﬁnite direct sum F = (F1 . . (−1 . for any function f : A → F . given any open subset A of E. b1 ) ⊕ · · · ⊕ (Fm . and → → → →v Df (a)(− ) = Df1 (a)(− )−1 + · · · + Dfm (a)(− )− . (−1 . u u v u → m → → − for every − ∈ E . DIRECTIONAL DERIVATIVES.

(−1 . Although perhaps confusing. a1 ) ⊕ · · · ⊕ (En .482 APPENDIX D. every function f : E → F is determined by m functions fi : E → R v vm (or fi : E → C). and → → → → Df (c)(−1 . Note that Dj f (c) ∈ L(Ej . v vm . u u u − → and thus. an ). for every − ∈ E . . we have functions f ◦ ic : Ej → F . . .14. and a normed aﬃne space F . u u u u → → − for every −i ∈ Ei . a1 ) ⊕ · · · ⊕ (En .if Df (c) exists. We will use freely the notation ∂j f (c) instead of Dj f (c). and then → Dj f (c)(λ−j ) = λ∂j f (c). −n )) and F has a u u → → frame (b0 . If D(f ◦ic )(cj ) exists. (−1 . then each Dj f (c) exists. we identify the two notions. . we call it the partial derivative of f w. deﬁning − → → → → → − fa : E → F such that. In fact. u u for some obvious (Ej . we can work with the function fa whose domain is the vector space E . which j j contains cj . . .r. we can write E = (E1 . . D. DIFFERENTIAL CALCULUS We now consider the situation where E is a ﬁnite direct sum. .t. whereas Dj f (c) is the corresponding linear map. . we deﬁne the continuous functions ic : Ej → E.2 Jacobian Matrices → → If both E and F are of ﬁnite dimension. The following lemma holds. for any function f : A → F .1. (−1 .9.1. x. . j ic (x) = (c1 . where a = (a1 . such that. j − − → → at c. The same result holds for the ﬁnite product E1 × · · · × En . . for any c = (c1 . for every c ∈ A. −n )) has been chosen. . and E has a frame (a0 . .1. . aj ) (as explained just after lemma lemma D. deﬁned on (ic )−1 (A). j For any function f : A → F . a1 ) ⊕ · · · ⊕ (En . . Since every c ∈ E can be written as c = a + c − a.5 is really that of the vector derivative. . . .1.5. an ). clearly. . We also denote this derivative as Dj f (c). cn ) ∈ A. The notion ∂j f (c) introduced in deﬁnition D. where → → f (x) = b0 + f1 (x)−1 + · · · + fm (x)− . The deﬁnition of ic and of Dj f (c) also makes sense for j a ﬁnite product E1 × · · · × En of aﬃne spaces Ei . → → and a frame (a0 . u and the two notions are consistent. . 1 ≤ i ≤ n. − )). . −n ) = D1 f (c)(−1 ) + · · · + Dn f (c)(−n ). cj+1 . . . F ). . when E is of dimension n. Given a normed aﬃne space E = (E1 . . given any open subset A of E. u Proof. . This notion is a generalization of the notion deﬁned in deﬁnition D. . its jth argument. given any open subset A of E. . Given a normed aﬃne space E = (E1 . fa (− ) = f (a + − ). an ) and a normed aﬃne space F . Lemma D. Df (c) = Dfa (c − a). cj−1. . an ).12). The lemma is then a simple application of lemma D. cn ).1. . . .

. From a previous remark. . f (r.1. ∂n f2 (a) . the linear map Df (a) is determined by the m × n-matrix J(f )(a) = v vm ∂fi (a))): (∂j fi (a)). We simply treat the function fi : Rn → R as a function of its j-th partial derivatives ∂xj argument.. From lemma D. ∂f1 (a) ∂xn ∂f2 (a) ∂xn . . − ). . ∂n fm (a) . . the bases (−1 . . . . Its determinant det(J(f )(a)) is called the Jacobian of Df (a). When E = Rn and F = Rm . . and compute the derivative as in deﬁnition D. θ) = (r cos θ. we know that this determinant in fact only depends on Df (a). . r sin θ).1. .. . it is easy to compute the ∂fi (a). is equal to the components of the vector Df (a)(−j ) over v vm u → → the basis (−1 .r. . ∂1 fm (a) ∂2 fm (a) . leaving the others ﬁxed. .. . (or J(f )(a) = ( ∂xj ∂1 f1 (a) ∂1 f2 (a) J(f )(a) = . . that is. . . However. . .2. ∂fm (a) ∂xn or ∂f1 ∂f1 ∂x1 (a) ∂x2 (a) ∂f2 ∂f2 ∂x (a) ∂x (a) 2 J(f )(a) = 1 . . ∂2 f1 (a) . ..1. we have → → v → v → → Df (a)(−j ) = Df1 (a)(−j )−1 + · · · + Dfi (a)(−j )−i + · · · + Dfm (a)(−j )− .. This matrix is called the Jacobian matrix of Df at a. u u → u → u vm that is. and not on speciﬁc bases.. . the usual derivative. we have → Df (a)(−j ) = Duj f (a) = ∂j f (a). u v v vm 483 → → Since the j-th column of the m × n-matrix J(f )(a) w. . −n ) and u u → → → (−1 . deﬁned such that.13. . . . . . . partial derivatives give a means for computing it.t. For example.. . for any function f : Rn → Rm . . . ∂fm ∂fm (a) (a) ∂x1 ∂x2 . consider the function f : R2 → R2 . . . − ) representing Df (a). . ∂n f1 (a) ∂2 f2 (a) . → → → → Df (a)(−j ) = ∂j f1 (a)−1 + · · · + ∂j fi (a)−i + · · · + ∂j fm (a)− . u and from lemma D.D.1. JACOBIAN MATRICES for every x ∈ E.. . .4.

which is the column vector corresponding to D1 f (a).2. g. f3 ). we have J(f )(r. f2 . and F = R3 . Df (a)(λ) = λD1 f (a). b] ⊆ R to a normed aﬃne space F . as in the case of a real-valued function. θ)) = r. b] is not open. this column vector is just D1 f (a). θ) = APPENDIX D. we also let Df (a) denote the vector Df (a)( 1 ) = D1 f (a). 1] → R3 deﬁnes a (parametric) curve in R3 . a function f : [0. b]. we deﬁne the right derivative D1 f (a+ ) at a. and the vector D1 f (a) is the velocity of the moving particle f (t) at t = a. and F = R3 . its Jacobian matrix at a ∈ R is ∂f1 ∂t (a) ∂f2 J(f )(a) = ∂t (a) ∂f 3 (a) ∂t When E = R2 . and we assume their existence. or velocity vector (in the real case) at a. DIFFERENTIAL CALCULUS cos θ −r sin θ sin θ r cos θ and the Jacobian (determinant) has value det(J(f )(r. It is often useful to consider functions f : [a. 1].1. When E = R. h). b] → F from a closed interval [a. and the left derivative D1 f (b− ) at b. We usually identify Df (a) with its Jacobian matrix D1 f (a). for any function f : R → F (or f : C → F ).484 Then. In the case where E = R (or E = C). even though [a. Deﬁnition D. for every λ ∈ R (or λ ∈ C). − → By abuse of notation. and its derivative Df (a) on [a. In this case. This case is suﬃciently important to warrant a deﬁnition. when E = [0. Letting ϕ = (f. the physical interpretation is that f deﬁnes a (parametric) curve which is the trajectory of some particle moving in Rm as a function of time. For example. Given a function f : R → F (or f : C → F ). a function ϕ : R2 → R3 deﬁnes a parametric surface. Then. the vector Df (a)(1) = D1 f (a) is called the vector derivative. its Jacobian matrix at a ∈ R2 is ∂f ∂f ∂u (a) ∂v (a) ∂g (a) ∂g (a) J(ϕ)(a) = ∂v ∂u ∂h ∂h (a) (a) ∂u ∂v . In fact. the Jacobian matrix of Df (a) is a column vector. Letting f = (f1 . where F is a normed aﬃne space.

. . .t the bases (−1 . . . . we have the familiar formula ∂f1 (a) ∂xp ∂f2 (a) ∂xp . v → → When E. . .r. by lemma D. . ∂x ∂y ∂z More generally. . . ∂1 fn (a) ∂2 fn (a) . and (c0 . . . . ∂yk ∂xj . .. . (−1 . and F = R. if A is an open subset of E. .r. and G have ﬁnite dimensions. . . . . such that f (A) ⊆ B. −m )) is an aﬃne frame for v vn w w G. ∂p f2 (a) J(h)(a) = . . . . when f : Rn → R. . ∂x2 . (b0 . the Jacobian matrix at a ∈ R3 is J(f )(a) = ∂f ∂f ∂f (a) (a) (a) .. note that v ∂f ∂f → → Df (a)(− ) = v (a) v1 + · · · + (a) vn = gradf (a) · − . . ∂p fn (a) ∂1 gm (b) ∂2 gm (b) . . . . . . .9.t the bases (−1 . . ∂x2 ∂f2 (a) . . ∂fn (a) . for a function f : R3 → R. . . . and (a0 . − ) and (−1 . . − ): v vn ∂1 f1 (a) ∂2 f1 (a) .. F . . . −p )) is an aﬃne frame for u u → → → → E. . . . . . . . . (−1 . . . . . . for any functions f : A → F and g : B → G. for any a ∈ A. → Then. ∂gm ∂gm (b) (b) ∂y1 ∂y2 . (−1 . − )) is an aﬃne frame for F . and J(f )(a) w. . ∂p f1 (a) ∂1 g1 (b) ∂2 g1 (b) . . and h = g ◦ f . . . . . ∂f1 (a) . the Jacobian matrix at a ∈ Rn is the row vector J(f )(a) = ∂f ∂f (a) · · · (a) . . . ∂fn (a) ∂xp ∂hi (a) = ∂xj k=1 ∂gi ∂fk (b) (a).1.t the bases (−1 . .. .. . −m ). . . . . .. . ∂x2 Thus. . letting b = f (a).D. . ∂x1 ∂xn Its transpose is a column vector called the gradient of f at a. . if Df (a) exists and Dg(b) exists. v ∂x1 ∂xn → the scalar product of gradf (a) and − . . denoted as gradf (a) or ∇f (a). . . . . −p ) and v vn w w u u → → (−1 . −m ) is the product of the Jacobian matrices J(g)(b) u u w → → → → → → w. . JACOBIAN MATRICES 485 When E = R3 . . . the Jacobian matrix J(h)(a) = J(g ◦ f )(a) → → → → w w. ∂n gm (b) or ∂g1 ∂g1 (b) (b) ∂y1 ∂y2 ∂g2 ∂g2 ∂y (b) ∂y (b) 2 J(h)(a) = 1 . . ∂gm ∂fn (a) (b) ∂x1 ∂yn k=n . ... . −p ) and (−1 . . .. . ∂n g1 (b) ∂1 g2 (b) ∂2 g2 (b) . . B is an open subset of F .2. . . given any − ∈ Rn .. ∂f1 ∂g1 (a) (b) ∂yn ∂x1 ∂g2 ∂f2 (a) (b) ∂yn ∂x1 . . ∂n g2 (b) ∂1 f2 (a) ∂2 f2 (a) . . .r. .

we have For any − = 0 . where 0 < λ < 1. let A be an open subset of E. Let E and F be two normed aﬃne spaces. then f deﬁnes a − − → → function Df : A → L( E . It turns out that the continuity of the partial derivatives on A is a necessary and suﬃcient condition for Df to exist and to be continuous on A.2. − → → Thus. One should be warned that the converse is false. f (0. and not even continuous at a. There are functions such that all the partial derivatives exist at some a ∈ A. consider the function f : R2 → R. but yet. and when we approach the origin on this parabola. a + h ] is contained in A. on the parabola y = x2 . Given any a ∈ A and any h = 0 in − → − → E . a + h [. it would be u a linear map Df (0) : R2 → R represented by a row matrix (α β). We ﬁrst state a lemma which plays an important role in the proof of several major results of diﬀerential calculus. However. λ ∈ R. then its Jacobian matrix is well deﬁned. On the other hand. namely continuity of the partial derivatives. and we would have → Du f (0) = Df (0)(− ) = αh + βk. y) = (0. deﬁned such that. and the open segment ]a. the limit is 1 . 0) = 0. Du f (0) exists for all − = 0 . λ ∈ R. the function f is not continuous at (0. b] is the set of all points a + λ(b − a). given any two points a. the closed segment [a. the function is not diﬀerentiable at a. If E is an aﬃne space (over R or C).a+h[ max Df (x) ≤ M. f (0. letting − = u u k − → − → → h2 k f ( 0 + t− ) − f ( 0 ) u = 2 4 . then − → − → f (a + h ) − f (a) ≤ M h . − → − → and let f : A → F be a continuous function on A. if f : A → F is diﬀerentiable at every − → point of the open segment ]a. where 0 ≤ λ ≤ 1. x + y2 → h → − → . 0). As a u matter of fact. given an open subset A of E. and x∈]a. but the explicit formula for Du f (0) is not linear. y) = 4 if (x. . 0). y) = 1 . and x2 y f (x. For example. DIFFERENTIAL CALCULUS Given two normed aﬃne spaces E and F of ﬁnite dimension. if Df (0) existed. t t h + k2 so that Du f (0) = 0 h2 k if k = 0 if k = 0. For example.486 APPENDIX D. Lemma D. if the closed segment [a. b[ is the set of all points a + λ(b − a). If f is diﬀerentiable on A. when 2 2 in fact. for some M ≥ 0. b ∈ E. there are suﬃcient conditions on the partial derivatives for Df (a) to exist. if a function f : A → F is diﬀerentiable at a ∈ A. f (x. F ).2. 0) = 0.

Lemma D. Since the existence of the derivative on an open set implies continuity.2. For a complete treatment of higherorder derivatives and of various versions of the Taylor formula.3 gives a necessary and suﬃcient condition for a function f to be a C 1 -function (when E is of ﬁnite dimension). (−1 . 487 The above lemma is sometimes called the “mean-value theorem”. iﬀ f is continuous on A. j. where E is of ﬁnite dimension → → n. 1 ≤ j ≤ n. Given two normed aﬃne spaces E and F . for all i.3 gives a necessary and suﬃcient condition for the existence and continuity of the derivative of a function on an open set. It is also possible to deﬁne higher-order derivatives. 1 ≤ j ≤ n. It should be noted that a more general version of lemma D. . .2. 1 ≤ i ≤ m.3 holds. and where (a0 . Deﬁnition D. see Lang [48]. where M = maxx∈]a. . ∂xj Lemma D.D.2 can be used to show the following important result.14. a1 ) ⊕ · · · ⊕ (En . or a C 0 -function on A. and (b0 . we say that a function f : A → F is of class C 0 on A. .2.2.2. the derivative Df : A → L( E . assuming that E = (E1 . JACOBIAN MATRICES − → − → As a corollary. F ) is deﬁned and continuous on A iﬀ ∂f every partial derivative ∂j f (or ) is deﬁned and continuous on A. −n )) is a frame of E.3. Lemma D. .1.2.2. Given two normed aﬃne spaces E and F . if L : E → F is a continuous linear map. Lemma D. . or E = E1 × · · · × En . an ). and an open subset A of E. for all j. (−1 . or a C 1 -function on A. a C 1 -function is of course a C 0 -function. given any u u − − → → function f : A → F .a+h[ Df (x) − L . It is easy to show that the composition of C 1 -functions (on appropriate open sets) is a C 1 -function. F ) is deﬁned and continuous on A iﬀ every partial derivative ∂fi ∂j fi (or ) is deﬁned and continuous on A. iﬀ Df exists and is continuous on A. and using the more general partial derivatives Dj f introduced before lemma D. . We say that f : A → F is of class C 1 on A.4. − )) is a frame of F . the v vm − − → → derivative Df : A → L( E . then − → − → − → f (a + h ) − f (a) − L( h ) ≤ M h . if F is of ﬁnite dimension m. . given any open subset A of E. ∂xj → → As a corollary. .

DIFFERENTIAL CALCULUS .488 APPENDIX D.

Farin. 1994. Computer Aided Geometric Design. Barsky. Prentice Hall. 115. and surfaces. Alg`bre lin´aire et g´om´trie classique. [8] J. GTM No. 15:345–352. Subdividing multivariate splines. Bertin. ﬁrst edition. Geometric Concepts for Geometric Design. Computer Aided Design. 1:1–60. second edition. ﬁrst edition. [2] A. 1992. Universitext. Ball and D. 1987. e [3] A. Springer Verlag. 7(2):83–102. ﬁrst edition. Boehm and H. 1990. Calcul Diﬀ´rentiel. [7] Marcel Berger and Bernard Gostiaux. Masson. e [10] W. Storry. Collection Math´matiques. o 1983. An Introduction to Splines for Use in Computer Graphics and Geometric Modelling. G´om´trie diﬀ´rentielle: vari´t´s.T. Algebra. 1984. John C. [5] Marcel Berger. e e Springer Verlag.Bibliography [1] Michael Artin. Bartels.E. English edition: Diﬀerential e geometry. [12] Wolfgang B¨hm. English edition: Geometry 2. Farin. Boehm. 1988. ACM Transactions on Computer Graphics. 1983. [4] Richard H. English edition: Geometry 1. Concerning subdivison of B´zier triangles. 1981. G´om´trie 1.A. Morgan Kaufmann. manifolds. courbes et sure e e ee faces. Nathan. Boehm and G. G´om´trie 2. Kahman. 1990. Letter to the editor. Nathan. 1991. and J. Prautzsch. and Brian A. [11] W. Masson. G. Puf. Computer Aided Design. Avez.J. [6] Marcel Berger. 15(5):260–261. ﬁrst edition. 1991. e e Springer Verlag. 489 . Conditions for tangent plane continuity over recursively generated B-spline surfaces. curves. ﬁrst edition. Universitext. Beatty. AK Peters. A survey of curve and surface methods in CAGD. e e e e [9] W.

10(6):350–355. 1978. Cohen. Collection M´thodes. T. [21] Philip J. Prentice Hall. second edition. Computer Graphics and Image Processing. Bologna. [20] E. IEEE. Alg`bre Lin´aire et G´om´trie El´mentaire. second edition.490 BIBLIOGRAPHY [13] J. Computer Aided Design. Hermann. Discrete B-splines and subdivision techniques in computer aided geometric design and computer graphics. Hermes. Ediscience International. Cambridge University Press. Circulant Matrices. e e [17] E. Oxbridge.-D. 1990. Sabin. 3:346–349. 1986. e e e [16] Henri Cartan. 1976. Chapitres 1-3. Boissonnat and M. [28] D. A recursive subdivision algorithm for ﬁtting quadratic surfaces to irregular polyhedrons. An algorithm for high-speed curve generation. [29] D. 1981. In Computer Graphics (SIGGRAPH ’98 Proceedings). Behavior of recursive division surfaces near extraordinary points. Introduction to Numerical Matrix Analysis and Optimization. ﬁrst edition. Italy. ﬁrst edition. 1978. [18] G. Lyche. [27] D. 1995. 1978. Chaikin. 10(6):356–360. Clark. e e e [15] Nicolas Bourbaki. Yvinec. and R. Alg`bre. [22] Carl de Boor. Doo and M. do Carmo. Shape Mathematics and CAD. A practical Guide to Splines. . ACM. Riesenfeld. Chapitres 4-7. Catmull and J. Ciarlet. 1980. IEEE Computer Graphics and Image Processing. 1978.G. 1978. 1994. Dissertation. [23] Paul de Faget de Casteljau. pages 157–165. Diﬀerential Geometry of Curves and Surfaces.H. Recursively generated B-spline surfaces on arbitrary topological meshes. Doo. 1998. Doo. French edition: Masson.M. Michael Kass. Hermann. El´ments de Math´matiques. In Proceedings on Interactive Techniques in computer aided design. G´om´trie Algorithmique. England. Brunel University. AMS Chelsea Publishing. Masson. El´ments de Math´matiques.W. e e e e e e 1965. Springer Verlag. PhD thesis. Alg`bre. 14(2):87–111. [25] Jean Dieudonn´. Hermann. [26] Manfredo P. Davis. 1974. ﬁrst edition. Cours de Calcul Diﬀ´rentiel. e e ﬁrst edition. A subdivision algorithm for smoothing down irregularly shaped polyhedrons. [14] Nicolas Bourbaki. 1994. Computer Aided Design. [19] P. 1989. 1970. [24] Tony DeRose. Subdivision surfaces in character animation. pages 85–94. and Tien Truong.

Prentice Hall. H. 1989. Hoﬀman. . and W. second edition. Schweitzer. In Computer Graphics (SIGGRAPH ’94 Proceedings). Lasser. fourth edition. [43] Christoph M. [32] Gerald Farin. Filip. Duchamp. Jeannin. 1993. Addison Wesley. pages 295–302. Jin. Computer Aided Geometric Design. [41] Joe Harris. Computer e Aided Design. CRC Press. ﬁrst edition.-C. second edition.J. ﬁrst edition. ACM. NURB Curves and Surfaces. [37] William Fulton. the MIT Press. 1994. A geometric Viewpoint. [40] Donald T. Courbes et Surfaces Rationelles.BIBLIOGRAPHY 491 [30] G. Springer Verlag. ﬁrst edition. Halstead. Masson. RMA 12. Adapative subdivision algorithms for a set of B´zier triangles. T. 1986. from Projective Geometry to practical use. 1983. Subdivision algorithms for B´zier triangles. Masson. Fiorot and P. [44] H. Modern Diﬀerential Geometry of Curves and Surfaces. [46] Jan J. Jeannin. Stuetzle.-C. 1992. RMA 24. Farin. [36] J. Hilbert and S.. 1988. AK Peters. [42] D. [39] A. 18:74–78. Computer Aided Design. Algebraic Geometry. 1992. ﬁrst edition. Fiorot and P. MIT Press. ﬁrst edition. Computer Aided Geometric Design. 1952. M. GTM No. DeRose. J. [35] J. e 3:83–127. ﬁrst edition. Triangular Bernstein-B´zier patches. e 15:159–166. ﬁrst edition. Three-Dimensional Computer Vision. 1989. Gray. Principles of Dynamics. Curves and Surfaces for CAGD. Solid Shape. Courbes Splines Rationelles. 133. Greenwood. Advanced Book Classics. AK Peters. Piecewise smooth surface reconstruction. Hoppe. [45] J. Morgan Kaufmann. 1995. J. 1989. ﬁrst edition. [34] D. 1986. 1990. Goldman. Geometry and the Imagination. [31] Gerald Farin. N. Chelsea Publishing Co. [33] Olivier Faugeras. McDonald. 1997. Academic Press. Hoschek and D. 1996. 1998. A ﬁrst course. Cohn-Vossen. Geometric and Solid Modeling. Algebraic Curves. ﬁrst edition. [38] R. Koenderink. T.

[57] Walter Noll. Monograph in Visual Communications. 1995. ﬁrst edition. 1993. ﬁrst edition. ACM. Algebra.H. 1997. ﬁrst edition. [54] James R. Peter Schroder.P. 1991. SIAM Journal of Numerical Analysis. 1975. Utah. Polyhedral subdivision methods for free-form surfaces. Munkres. Department of Mathematics. ACM Transactions on Graphics. Reif. 1997. Finite-Dimensional Spaces. 35(2). Peters and U. Addison Wesley. [61] J. [63] Helmut Prautzsch. 11:303–330. PhD thesis. 1997. Cambridge University Press. Physics-Based Deformable Models. Macmillan. 1998. Salt Lake City. UTM. [64] F. Undergraduate Analysis. Addison Wesley. 16(4). Dover. ﬁrst edition. ACM Transactions on Computer Graphics. [52] Saunders Mac Lane and Garrett Birkhoﬀ. 1987.I. PhD thesis. a First Course.492 [47] Serge Lang. A comprehensive course. ﬁrst edition. Shamos. . Braunschweig. Nasri. [49] Aaron Lee. Munkres. The NURBS Book. Kluwer Academic Publishers Group. pages 95–104. [51] Charles Loop. Metaxas. Kluwer Academic Publishers. [62] Les Piegl and Wayne Tiller. BIBLIOGRAPHY [48] Serge Lang. Preparata and M. Peters and U. Algebra. 1984. University of Utah. 1988. 1987. Computer Aided Geometric Design. 1988. second edition. Lawrence Cowsar. Computational Geometry in C. and David Dobkin. Unterteilungsalgorithmen f¨r multivariate splines. 1987. [56] A. ﬁrst edition. 6(1):29–73. Dissertation. Reif. Analysis on Manifolds. Masters’s thesis. 1967. Analysis of generalized B-spline subdivision algorithms. The simplest subdivision scheme for smothing polyhedra. ﬁrst edition. Wim Sweldens. Smooth Subdivision Surfaces based on triangles. TU u Braunschweig. 1994. Springer Verlag. Computational Geometry: An Introduction. Geometry. 1997. In Computer Graphics (SIGGRAPH ’98 Proceedings). [50] Charles Loop. [53] Dimitris N. [59] Dan Pedoe. Topology. Springer Verlag. Germany. A G1 triangular spline surface of arbitrary topological type. Springer Verlag. third edition. [60] J. Prentice Hall. ﬁrst edition. [55] James R. 1994. [58] Joseph O’Rourke. MAPS: Multiresolution adaptive parameterization of surfaces.

1998. 1988. Introduction to Applied Mathematics. [69] Pierre Samuel. Salesin. In Tom Lyche and Larry e Schumaker. 1996. Blossoming: A connect-the-dots approach to splines. In Computer Graphics (SIGGRAPH ’98 Proceedings). [73] Laurent Schwartz. Dover.-C. 1992. Analyse II.P. Analyse IV. Computed Aided Geometric Design. DeRose. [67] R. Exact evaluation of Catmull-Clark subdivision surfaces at arbitrary parameter values. Wellesley-Cambridge Press. Hermann. Technical report. Applications ` la Th´orie de la Mesure. Tony D. Calcul Int´gral. Collection a e Enseignement des Sciences. Risler.-J. pages 573–581. Jianmin Zheng. 1998. e e [77] Ernst Snapper and Troyer Robert J. [80] Gilbert Strang. Academic Press. Calcul Diﬀ´rentiel et Equations Diﬀ´rentielles. [79] Eric J. 1991. ﬁrst edition. Collection Enseignement des Sciences. 19. Undergraduate Texts in Mathematics.BIBLIOGRAPHY 493 [65] Lyle Ramshaw. [71] Laurent Schwartz. InterEditions. Palo Alto. ﬁrst edition. Hermann. pages 395–404. Report No. [78] Jos Stam. [74] Thomas Sederberg. Projective Geometry. 1986. Analyse III. [72] Laurent Schwartz. 1993. 1993. and David H. 1975. [66] U. Mathematical Methods for CAD. Morgan Kaufmann. e Hermann. Springer Verlag. A general subdivision theorem for B´zier triangles. Mass. Masson. ﬁrst edition. A uniﬁed appproach to subdivision algorithms near extraordinary vertices. Th´orie des Ensembles et Topologie. ACM. . 1993. [76] J. Non-uniform recursive subdivision surfaces. G´om´trie Projective. CA 94301. David Sewell. [68] J. Seidel. Wavelets for Computer Graphics Theory and Applications. Riesenfeld. [70] Laurent Schwartz. ﬁrst edition. Digital SRC. Collection e e Enseignement des Sciences. ACM. On Chaikin’s algorithm. 1987. Mathematical Methods in Computer Aided Geometric Design. Hermann. pages 387–394. IEEE Computer Graphics and Image Processing. 4:304–310. 1989. 12. Collection Enseignee ment des Sciences. Reif. and Malcom Sabin. ﬁrst edition. [75] H. In Computer Graphics (SIGGRAPH ’98 Proceedings).F. 1989. Analyse I. Boston. Metric Aﬃne Geometry. Sidler. 1995. Stollnitz. 1992. editors. ﬁrst edition.

Projective Geometry. 1997. pages 189– 192. Vol. Projective Geometry. and W. Hermann. 1938. Schroder. Veblen and J. 1. Algebra. California.494 BIBLIOGRAPHY [81] Gilbert Strang. [82] Gilbert Strang and Nguyen Truong. ﬁrst edition. 1. Wavelets and Filter Banks. W. 1997. Vol. Veblen and J. [88] D. [83] Claude Tisseron. Wellesley-Cambridge Press. Interpolation subdivision for meshes with arbitrary topology. W. Vol. Zorin. Princeton University Press. [86] O. Van Der Waerden. Sweldens. Pasadena. [85] O. et euclidiennes. Ginn. projectives. Caltech. 1996. G´om´tries aﬃnes. P. second edition. seventh edition. 1. e e 1994. Ginn. ACM. Princeton mathmetical Series. Young. 1988. third edition. In Computer Graphics (SIGGRAPH ’96 Proceedings). Their Invariants and Representations. PhD thesis. 1973. Dissertation. 1946. ﬁrst edition. Saunders HBJ. 2. Linear Algebra and its Applications. Ungar. [89] Denis Zorin. Young. . [87] Hermann Weyl. No. [84] B.L. second printing edition. 1946. Subdivision and Multiresolution surface representation. The Classical Groups. second edition.