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

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

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

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

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

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

6 CONTENTS .

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

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

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

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

Part I Basics of Aﬃne Geometry 11 .

12 .

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

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

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

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

− . In order to salvage the notion of linear combination of points. . 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). By this. unless λ + µ = 1. Since − → translations can be composed. λa2 + µb2 − ω2 . The eﬀect − → of applying a force (free vector) u ∈ E to a point a ∈ E is a translation. v → which can be thought of as the result of translating a to b using the vector − . 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. it is natural that E is a vector space. 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. We duplicate R3 into two copies. λa3 + µb3 − (λ + µ)ω3 ) which are diﬀerent from (λa1 + µb1 − ω1 . although trivial in the case of R3 . where E is a set of points (with no structure) and − → E is a vector space (of free vectors) acting on the set E. where we forget the vector space structure. the ﬁrst copy corresponding to points. v2 . v3 ). where the vector space structure is important. but the notion of linear combination of points is frame dependent. λa3 + µb3 − ω3 ). AFFINE SPACES → → → of λa + µb with respect to the frame (Ω. We can v − is placed such that its origin coincides with a and that its tip coincides with → imagine that v b. −3 )) are e e2 e (λa1 + µb1 − (λ + µ)ω1 .2. 17 Thus. a2 + v2 . It turns out that the above properties. u v u v → − and for any two points a. considered as physical particles. b. v we obtain the point → a + − = (a1 + v1 . Intuitively. a3 ) and any vector − = (v1 . → → → → (a + − ) + − = a + (− + − ). − → a + 0 = a. there is a unique free vector ab such that → − b = a + ab. we can think of the − → elements of E as forces moving the points in E. some restriction is needed: the scalar coeﬃcients must add up to 1.1. For example. we mean − → that for every force u ∈ E . 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. This action + : R3 × R3 → R3 satisﬁes some crucial properties. a3 + v3 ). a2 . The basic idea is − → to consider two (distinct) sets E and E . λa2 + µb2 − (λ + µ)ω2. Furthermore. (−1 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c′ . b.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 ). It is a “shear” followed by a translation. i∈I As a more concrete example. The eﬀect of this shear on the square (a. The map x1 x2 → 1 1 1 3 x1 x2 + 3 0 . c. Let us consider one more example. d′ ).38 CHAPTER 2. b′ . The image of the square (a.12. BASICS OF AFFINE GEOMETRY d′ c′ d c a′ a b′ b Figure 2. d) is the parallelogram (a′ . Note that the condition 2. c.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 ). b.4. the map x1 x2 → 1 2 0 1 x1 x2 + 3 1 deﬁnes an aﬃne map in A2 . d) is shown in ﬁgure 2. 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 ).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BASICS OF AFFINE GEOMETRY .60 CHAPTER 2.

Part II Polynomial Curves and Spline Curves 61 .

62 .

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

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

F3 (t) = t3 . v) = u. 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. v) = u.3. the function F : A → A3 deﬁned such that F1 (t) = t. the function F : A2 → A3 deﬁned such that F1 (u. F2 (t) = t2 .2: A hyperbolic paraboloid For a fancier example of a space curve. v) = v. it looks like a saddle (an inﬁnite one!). Roughly speaking. represents what is known as an elliptic paraboloid . v) = v F3 (u. F2 (u. . For an example of a surface. F3 (u. F2 (u. in the 3D aﬃne space A3 . v) = u2 − v 2 . represents a curve known as a twisted cubic. represents what is known as a hyperbolic paraboloid . v) = 2u2 + v 2 .1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

to compute the two points f (r. to compute . (1 − λ1 )r + λ1 s) = (1 − λ1 ) f (r. s) Figure 3. r) f (r. s) F (r) = f (r. s). s) is computed from the two control points f (r. r) F (s) = f (s. t1 ) is computed from the two control points f (r. s) and f (t1 . s) = f ((1 − λ1 )r + λ1 s. s) 2 f (t1 . (1 − λ2 )r + λ2 s) = (1 − λ2 ) f (t1 . s). s). s). t) f (t. t2 ) = f (t1 . t1 ) = f (r. by linear interpolation. t1 ) f (r. r) + λ1 f (r.84 f (r. s) and f (s. s) CHAPTER 3. r) and f (r. r) + λ2 f (t1 . we use the scalar λ2 such that t2 = (1 − λ2 )r + λ2 s. s) + λ1 f (s. we use the scalar λ1 such that t1 = (1 − λ1 )r + λ1 s. s) = (1 − λ1 ) f (r. the ratio of interpolation being t1 − r . λ1 = s−r f (t1 . and f (t1 . s) f (s. s) f (t1 . During the ﬁrst stage. INTRODUCTION TO POLYNOMIAL CURVES f (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. where f (r. During the second stage. t) f (t.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

the polar form f of F is given by the formula f (t1 . s) f (r. t) f (t. r. s) 1 f (r. r. 3. r = s). f (r.8. s) f (t. t. Given any t ∈ [r. s. t) 2 3 f (t. t. s. s) = b2 . s ∈ A. s) = c. r) = b0 . 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. s) = b3 (where r. f (r. s) f (t. s.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. s]. r < s). f (r. s) = b. t. r) f (r. s. s) . the computation of F (t) can be arranged in a triangular array. s) = d (where r. s) f (s. consisting of three stages: 0 f (r. SECOND ENCOUNTER WITH THE DE CASTELJAU ALGORITHM 101 a. s. f (r. s. s ∈ A. r. t2 . and f (s. r) f (r.3. s. and f (s. It is easy to generalize the de Casteljau algorithm to polynomial cubic curves. r. r. Furthermore. as shown below. s) = b1 . r. t.

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

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

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

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

f2 (t1 .0 b1 = b1. The de Casteljau algorithm enjoys many nice properties that will be studied in chapter 5 (section 5.2 b1. t3 ) = 3t1 t2 t3 − (t1 + t2 + t3 ). . We have f (t1 .3 . INTRODUCTION TO POLYNOMIAL CURVES 0 b0 = b0. Thus.0 1 b0. 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). t3 ) = b0.0 We also have the following inductive formula for computing bi.2 b2. Example 1.9 Examples of Cubics Deﬁned by Control Points We begin with example of plane cubics.3 b1.1 b0.0 b3 = b3. Consider the plane cubic deﬁned as follows: F1 (t) = 3t. t2 . t3 ) = t1 + t2 + t3 .j−1 . t2 .106 CHAPTER 3.j : bi.j = s − tj s−r bi. F2 (t) = 3t3 − 3t.1 b2 = b2. Let us give a few examples of the computation of polar forms associated with parametric representation of cubics.j−1 + tj − r s−r bi+1.1 2 3 b0. and computations of the coordinates of control points. where 1 ≤ j ≤ 3. and 0 ≤ i ≤ 3 − j. t2 . 3. The polar forms of F1 (t) and F2 (t) are: f1 (t1 .

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

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

= (15. The axis of symmetry is y = 2x. 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. 10) = (3.9. where b2 ≥ 3d > 0. s = 1: b′0 b′1 b′2 b′3 = (15. 0) = (7. 0) = (11. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 109 Figure 3.22: Bezier Cubic 3 With respect to the aﬃne frame r = 0.3. s = 2. It is interesting to see which control points are obtained with respect to the aﬃne frame r = 0. 6). 4) = (3. We leave as an exercise to verify that this cubic corresponds to case 2. 5) = (8. . 6). 6) = (6.

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

9. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 111 Figure 3.23: Bezier Cubic 4 .3.

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

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

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

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

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

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

Use the representation in polar coordinates. (iii) What is the locus of the center of gravity of this triangle. Prove that H1 . You can check that you are right if you ﬁnd that the cubic is deﬁned by: x(θ) = 3p + 6p cos θ . Problem 10 (20 pts). You may want to use Mathematica to play around with these curves. H3 belong to the parabola of equation y 2 = 4px. let ω be the intersection of the normal at M to the parabola with the mediatrix of the line segment F M. y(t) = 9pt(3t2 − 1). 1]. Hint. 1 − cos θ sin θ(1 − 2 cos θ) y(θ) = 2p . . Plot the Bernstein polynomials Bi3 (t). (1 − cos θ)2 (ii) Prove that the tangents to the cubic at N1 . 0). 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. N3 . Problem 11 (80 pts) Challenge. 0 ≤ i ≤ 3. N varies on the cubic.118 CHAPTER 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. N2 . N3 intersect in three points forming an equilateral triangle. where p is any scalar. It is best to use polar coordinates (with pole F = (p. and that MN is tangent to the cubic at N. Any line D through F intersects the cubic in three points N1 . 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 following construction: for every point M on the parabola y 2 = 4px. deﬁned by the equations: x(t) = 27pt2 . and let N be the symmetric of F with respect to ω. Consider the cubic of problem 3 (except that a new origin is chosen). Let F be the point of coordinates (p. Hint. N2 . H2 . over [0. (i) Let Hi be the foot of the perpendicular from F to the tangent to the cubic at Ni . Show that when M varies on the parabola. 0)).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

142 CHAPTER 4. MULTIAFFINE MAPS AND POLAR FORMS .

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

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

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

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

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

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

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

j. res}. j}. t]]. {i. bb[[i+1]]. (m = Length[bb] . If[i > 1. b = {}. res := Append[lseg. s_.1. s. b[[i]]}]] . bb = b. bb[[i+1]]. m} ]. bb[[1]]]. bb = b. (m = Length[bb] . (* computes the point F(t) and the line segments involved in computing F(t) using the de Casteljau algorithm *) decas[{cpoly__}. b = {}.150 ´ CHAPTER 5. lerp[bb[[i]]. ready for display. m} ]. {j. Do[ Do[ b = Append[b. i. m. b = {}. 1. t]]. lseg = {}. {b[[i . r. lseg = Append[lseg. . {i.j + 1} ]. b = {}. Do[ Do[ b = Append[b. {j. m. m . r_. res ) ]. 1. t_] := Block[ {bb = {cpoly}. 1. 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__}. lerp[bb[[i]]. t_] := Block[ {bb = {cpoly}. s_.1]]. s. m . r_. 1. bb[[1]] ) ]. The following function pdecas creates a list consisting of Mathematica line segments and of the point of the curve.1. r.j + 1} ].

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

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

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

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

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

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

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

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

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

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

5. 1 iteration . SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 161 Figure 5.2.5: Subdivision.

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

SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 163 Figure 5.7: Subdivision. 3 iterations .2.5.

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

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

POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.166 ´ CHAPTER 5.10: Subdivision. 6 iterations .

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

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

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

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) f (p. These de Casteljau diagrams are represented in bold. j with i + j ≤ k ≤ m. r j . q) f (p. r j .180 ´ CHAPTER 5.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. q m−i−j ) for all i. q.. q. q 3−i−j ) of the polar forms f and g. where k is the degree of continuity required. When two polynomial curves F and G of degree m join at q with C k -continuity (where 0 ≤ k ≤ m). p) g(q. r) f (p. r) g(q. r j . q. p. 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. constitute a de Casteljau diagram with k shells. q m−i−j ) = g(p i .e. q 3−i−j ) = g(p i . This is a general fact. r j . We are now ready to consider B-spline curves. where i + j ≤ k ≤ 3. 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. i. then f (p i . POLYNOMIAL CURVES AS BEZIER CURVES f = g(q. and these points form a de Casteljau diagram with k shells. r) Figure 5. q. 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. iﬀ f = g. The above examples show that the points corresponding to the common values f (p i . . p. r. r.

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

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

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

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

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

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

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

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

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

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

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

8. Thick segments are images of [6. 8]. 1.14.9. . 15.1: Part of a cubic spline with knot sequence .6.3. . . . . . 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. .192 CHAPTER 6. 5. 11.. 2.

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

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

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

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

. .. and some of its B´zier control points e . 8.3: Part of a cubic spline with knot sequence . 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. INFINITE KNOT SEQUENCES. . 1.9. .6. .6. 2.14. 15. . 5.3.2. 11.

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

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

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

6. . . 0.2. . INFINITE KNOT SEQUENCES. .6.4. 1. 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.5: Construction of part of a cubic spline with knot sequence . 3. . . 7. .2. 5.

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

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

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

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

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

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

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

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

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

5.6. 6 .10: A cubic spline with knot sequence 1. B-SPLINE CURVES 123 456 566 112 666 111 234 345 Figure 6.212 CHAPTER 6.2. 6. 1.1. 6.4. 3. 1.

4.6.11: Construction of a cubic spline with knot sequence 1.3. 1.6. 5. 1. 6. 3. FINITE KNOT SEQUENCES.6. 6 .2.1. 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.

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

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

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. 2.13: Construction of a cubic spline with knot sequence 0. 7. 0. 3. 7 . 7. 0. 7.216 CHAPTER 6. 4. 6. 5. 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

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

22: Construction of another closed cubic spline . 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.

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

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

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

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

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

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

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

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

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

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

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

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

25: The computation lattice underlying the de Boor algorithm when m = 3 .7.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.

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

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

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

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

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

1 : ui ui ui+1 di−1 : ui−2 ui−1 ui di+1 : ui ui+1 ui+2 Figure 6. we get αi βi γi di−1 + di + di+1 .29: Computation of xi from di−1 . ui+1 − ui−1 ui+1 − ui−1 ui+1 − ui−1 xi = with (ui+1 − ui )2 .6. di+1 From the above formulae. u2 − u0 u2 − u0 u2 − u0 βN −1 γN −1 αN −1 dN −2 + dN −1 + dN . γi = ui+2 − ui−1 αi = At the end points. di . βi = ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) + .8.1 : ui−1 ui ui xi : ui ui ui di. CUBIC SPLINE INTERPOLATION di : ui−1 ui ui+1 247 di−1. 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 .

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

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

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

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

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

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

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

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

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

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

258 CHAPTER 6. B-SPLINE CURVES .

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 .

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

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

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

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

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

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

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

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

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

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

. . Up . Given any aﬃne space E of dimension ≥ 3.1 is that it does not depend on the dimension of E. . E). and can be safely omitted by other readers. v. . q . . The advantage of deﬁnition 7. 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 . . v) = f (u. 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 . and with F (u. By analogy with polynomial curves.2. Let F : A × A → E be a bipolynomial surface of degree p. v. . BIPOLYNOMIAL SURFACES IN POLAR FORM 271 such that f (U1 . and symmetric in its last q-arguments. . . p q for all u. . and let f : (A)p × (A)q → E be its polar form. and with F (u. Vq ) is symmetric in its ﬁrst p-arguments. . . . . v ∈ A. . the p. v). . and symmetric in its last q-arguments. it is natural to propose the following deﬁnition. u. 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. p q for all u. v) = f (u. is a map F : A × A → E. and thus. . v). such that there is some multiaﬃne map f : (A)p × (A)q → E. which is symmetric in its ﬁrst p-arguments. Deﬁnition 7. A). u. q -symmetric. q -symmetric multilinear map.2. We also say that f is p. Let f : (A)p × (A)q → E be its homogenized p. . q in polar form. v ∈ R. . .2. .1. E). . . The trace of the surface F is the set F (A. V1 . . .7. a bipolynomial surface of degree p. Remark: This note is intended for those who are fond of tensors.

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

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

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

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

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

u. 3 . xxx. u. endfor endfor. the point f (u. y. The computation shows that the points f (u. u3 . f (u. i∗. x. endfor.0 endfor. F (u. y).3. y) have been chosen as aﬃne bases of A. It is assumed that (r. f (u. u. u. for i := 0 to p do b0 = bi∗ i∗ endfor. x) is denoted as rrs. s. bi∗ = bq . There are other interesting properties of tangent planes. 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. s) and (x. v1 v2 v3 . r. k + i∗.7. 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. x. y. x. x. u2 . x. u. u. and for simplicity of notation. v. f (r. 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. u. v 2 . THE DE CASTELJAU ALGORITHM. and f (u. RECTANGULAR SURFACE PATCHES 277 begin for i := 0 to p do for j := 0 to q do b0 j := bi. v) (shown as a round dark dot) is computed. for instance. y). v. v) := bp 0∗ end j−1 −v bj k := ss22−r2 bi∗. for j := 1 to q do for k := 0 to q − j do −u bj := ss11−r1 i∗ endfor endfor. for j := 1 to p do for i := 0 to p − j do j−1 bi∗ + v−r2 s2 −r2 j−1 bi∗. Since the ﬁgure is quite crowded. and then. not all points have been labeled. y. v 1 . using these points (shown as square dark dots) as control point. x. It is also clear that bipolynomial surfaces are closed under aﬃne maps. x. v 3 ) is denoted as u1 u2 u3 . v). The diagram shows the computation of the point F (u. u. are computed ﬁrst. y). u. that will be proved at the end of From the above algorithm. j i∗. . x). u. the polar value f (u1 .

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

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

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

t). A point F (a) on the surface m! m F can be expressed in terms of the Bernstein polynomials Bi.k (U. .. . .2. . t) = bi. j.1. . The control net N = (bi. t. . . . . r. . . . k)∈∆m m Bi. ν) f (r. . . j. . j. as F (a) = f (a. j. Furthermore. . . .m} I. s. also starting from the left lower corner. k) ∈ N3 | i + j + k = m}. there is a unique surface F : P → E of total degree 2 m.3.j. . we have already shown using polarization. and j be the column index.J.7. . A family N = (bi.k (λ. Indeed. . as in deﬁnition 7.2. j.1. f is given by the expression f (a1 .k)∈∆m . . s. .. . s. when m = 5. a) = m (i. . µ. the class of polynomial surfaces of total degree m in polar form as in deﬁnition 7.1 is a polynomial surface of total degree m in polar form as in deﬁnition 7.1. . . k) ∈ ∆m . j. . s. r. .k)∈∆m of (m+1)(m+2) points in E. starting from the left lower corner. r. i j k for all (i. 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.j. .1 is identical to the class of polynomial surfaces. i j k where a = λr + µs + νt. k . and 1 ≤ i ≤ m.K pairwise disjoint i∈I λi j∈J µj k∈K νk f (r. For the converse. For example. TOTAL DEGREE SURFACES IN POLAR FORM 281 Lemma 7.4. s.1. .j. .j. simply apply lemma 4. deﬁned by a symmetric m-aﬃne polar form f : P m → E. is called a (triangular) control 2 net. .j. Given a reference triangle ∆rst in the aﬃne plane P. t. or B´zier net. |I| |J| |K| where ai = λi r + µi s + νi t.4. k )(i. k )(i. am ) = I∪J∪K={1.k)∈∆m of (m+1)(m+2) points in E. T ) = i!j!k! U i V j T k . V. can be thought of as a triangular grid of points in P. . . . . . such that f (r. . t.4... j. . . that a polynomial surface according to deﬁnition 7. t). with λi + µi + νi = 1. .4. given any family (bi. . . Note that the points in e ∆m = {(i. We can show that when E is of ﬁnite dimension. s. with λ + µ + ν = 1. k )(i.

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

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

0. There are other interesting properties of tangent planes. u2. 0. f (r. and for simplicity of notation. 0 .2: The de Casteljau algorithm for polynomial surfaces of total degree 3 base of P. and it consists of three shells. 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. then the plane that they deﬁne is the tangent plane to the surface at the corner point bm. Also. Thus. 0 . bm−1. each one obtained via two-dimensional interpolation steps. points are all collinear). the tangent plane to the surface at F (a) is determined by the points bm−10 . 0 . 1. are not collinear. m . for example. s) is denoted as rrs. r. bm−10 . the three tangent planes at the corner points are known. Given a polynomial surface F : P → E. m. The diagram shows the computation of the point F (u). 0. 0. u3 ) is denoted as u1 u2 u3 . 1 . 0. 0. and bm−1. A similar property holds for the other corner control points b0. 0. in general. For example. 0. 0 and b0. the polar value f (u1 . 1. that will be proved at the end of this Chapter. if the control points bm. and bm−11 (unless these 1.284 ttt CHAPTER 7.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

i = i + 1. res = i . 1}. barcor2 = {0. 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 *) *) *) *) . newnet ) ]. 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. i = 1. ars = newnet[[3]]. m]. sca. barcor2}. debug].306 CHAPTER 8. res = res + i] ]. stop = 0. s. (* (* (* (* (* Subdivides into four subpatches. *) barcor1 = {-1. 1. newnet. 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. art. res = 1. (* (* (* (* Subdivides into four subpatches. debug_] := Block[ {cc = {net}. i. art = newnet[[1]]. (* Print[" calling mainsubdecas4 with netsize = ". barcor2]. newnet = nsubdecas4[art. oldm_. res ) ]. 1/2}. newnet = sdecas3[cc. res}. stop = 1. ars. m. ll. stop. and crb *) *) *) *) *) mainsubdecas4[{net__}. If[(res === ll). ars.1. (ll = Length[cc]. 1/2. s = N[Sqrt[2 * ll]]. m. While[i <= s && stop === 1. bac. m. (m = netsize[cc].

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

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

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

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

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

SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES {1. 2. and then the control net N abc over the reference triangle ∆abc. we easily get      ′ λ λ1 λ2 λ3 λ µ = µ1 µ2 µ3  µ′  ν′ ν ν1 ν2 ν3 and thus. 2}. c. {3. µ′ . µ1 . 0}}. since d = λr + µs + νt = λ′ a + µ′ b + ν ′ c and a =λ1 r + µ1 s + ν1 t. 2}. we compute the control net N cab using subdecas3ta. 2. we can compute the new control net N abc over the new reference triangle ∆abc. using transnetk. from a control net N over an original reference triangle ∆rst. ν1 ). we compute the control net N ast over the reference triangle ∆ast. 4. Given any arbitrary point d. µ3. b =λ2 r + µ2 s + ν2 t. {4. µ′ . we need to review how a change of reference triangle is performed. {5. 4. 2}. Thus. ν) with respect to ∆rst. and coordinates (λ′ . with respect to ∆rts. In the second step. 2}. Before discussing such an algorithm. ν ′ ) with respect to ∆abc. c =λ3 r + µ3 s + ν3 t. -8}. µ. by inverting a matrix. ν3 ). we compute the control net N bat using subdecas3sa. ν2 ). and (λ3 . using subdecas3ra. 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. be the barycentric coordinates of a. −1    ′  λ λ1 λ2 λ3 λ µ′  = µ1 µ2 µ3  µ ν ν1 ν2 ν3 ν′ . (λ2 . using three subdivision steps as explained below. µ. 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. {3. µ2 . and let (λ1 . this is easily done using determinants by Cramer’s formulae (see Lang [47] or Strang [81]). 6. ν ′ ) of d with respect to ∆abc can be computed from the coordinates (λ. b. Let ∆rst and ∆abc be two reference triangles. using transnetj. 2. Now. In the third step. and then the control net N abt over the reference triangle ∆abt. the coordinates (λ′ . In the ﬁrst step. given a reference triangle ∆rst and a control net N over ∆rst. {2. In this case.312 CHAPTER 8. ν) of d with respect to ∆rst. if d has coordinates (λ.

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

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

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

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

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

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

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

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

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

17: Case 2b: r ∈ ab and a ∈ rt / .322 CHAPTER 8. SUBDIVISION ALGORITHMS FOR POLYNOMIAL SURFACES s t a r b Figure 8.16: Case 2a: r ∈ ab and a ∈ rt s b t r a Figure 8.

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

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

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

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

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 ).

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

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

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

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

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

q) fA (p. r)). s)).B (p. denoting these common polar values as fA.342CHAPTER 9. In particular. fA. p.3: Control nets of cubic surfaces joining with C 2 continuity Again. q. but this is not enough to ensure C 2 continuity. r).B (·. q. q. q. q. fA. p) Figure 9. s). fA.B (p. q. note that these polar values naturally form the vertices of four diamonds. (fA.B (r. 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.B (q.B (q. p.B (q. ·).B (s. s) fA. s).B (p. r) fA.B (p. fA. the left two diamonds are (fA. r. For example.B (r. the vertices of each of these diamonds must be coplanar. p. p. . r) and fA (p. fA. p. r). s) fA. r) = fB (p. q. p. s) are not control points of the original nets.B (q. fA. q. s) = fB (p.B (s. ·. q. Note that the polar values fA (p. POLYNOMIAL SPLINE SURFACES AND SUBDIVISION SURFACES fA. p. s). r) fB (q. p. p. r). r) fA. s). p. images of the diamond (p. p.B (p. s) fA. q.B (p.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 → v u u v v v → u → Furthermore.6. −2 ) + ϕ(−1 . 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 . if ϕ is symmetric. −2 )]. .11. −2 + i−2 ) = ϕ(−1 . so is ϕC . −2 ) − ϕ(−1 . −2 ) + i[ϕ(−1 .

TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS .422 CHAPTER 11.

Part IV Appendices 423 .

424 .

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

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

→ → 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. we stipulate that − = 0 . → Given a vector space E.A. Indeed. given a family (−i )i∈I . → → − λi −i = 0 implies that λi = 0 for all i ∈ I. a subset F of E is a linear subspace (or subspace) → → → → of E iﬀ F is nonempty and λ− + µ− ∈ F for all − . VECTOR SPACES 427 → Deﬁnition A. Deﬁnition A. u − = → uj i∈(I−{j}) i∈I which implies that → −λ−1 λi −i . Let E be a vector space. The subspace { 0 } will be denoted as 0 (with a mild abuse of notation).1. − ∈ F .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. µ ∈ K. Given a vector space E. there is some family (λi )i∈I of scalars in K such that → → − λi −i = 0 and λj = 0 for some j ∈ 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 . u i∈I We agree that when I = ∅. − → − → we see that every subspace contains the vector 0 .2.3. 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 . Letting λ = µ = 0. . 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. u i∈I → Equivalently. and all λ. the family ∅ is linearly independent. and that any intersection of subspaces is a subspace. We say that a family (−i )i∈I is linearly independent v u iﬀ for every family (λi )i∈I of scalars in K. Subspaces having such a “generating family” play an important role. u → → − → When I = ∅. u j The notion of a subspace of a vector space is deﬁned as follows. and motivate the following deﬁnition.1.

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

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

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

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

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

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

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

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

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

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

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

w w w . − . − . 2. − }) = − . such that π1 ◦ (f × g) = f . and π2 ◦ (f × g) = g.4. Lemma A.3. Given two vector spaces E1 and E2 . Deﬁne → for every − ∈ D.2. there is a unique linear map f × g : D → E1 ⊕ E2 . 2. and (f + g) ◦ in2 = g. for every pair of linear maps f : D → E1 and g : D → E2 . If we deﬁne the projections π1 : E1 ⊕ E2 → E1 and π2 : E1 ⊕ E2 → E2 . Given two vector spaces E1 and E2 . We already noted that E1 ⊕ E2 is in bijection with E1 × E2 . u v u v → → → π2 ({ 1. → → → (f × g)(− ) = { 1. 2.A. For every pair of linear maps f : E1 → G and g : E2 → G. Deﬁne → → for every − ∈ E1 and − ∈ E2 . f (− ) . there is a unique linear map f + g : E1 ⊕E2 → G. DIRECT SUMS 439 Lemma A. 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. − }) = − . u v u and we have the following lemma. E1 ⊕E2 is a vector space.4. It is immediately veriﬁed that f + g is the unique linear u v map with the required properties. g(− ) }. 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. such that (f + g) ◦ in1 = f . such that → → → π1 ({ 1. − }) = f (− ) + g(− ). 2. It is immediately veriﬁed that f × g is the unique linear map with the w required properties.4. − . u v v D E2 Proof.

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

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

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

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

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

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

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

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. we can write −− − − −→ → since a + λv = a + λa(a + v) + (1 − λ)− and also aa. there is a unique linear map f : E → E ′ . λi ai is the barycenter of a family ((ai . −− − − −→ −− − − −→ → since a + u + v = a + a(a + u) + a(a + v) − − Since f preserves barycenters. λi ))i∈I of weighted points → − bx = i∈I − → λi bai for every b ∈ E.7.2 Given an aﬃne map f : E → E ′ . We begin with Lemma 2. − → for every a ∈ E and every v ∈ E Proof. such that f (a + v) = f (a) + f (v). f (a + λv) = λf (a + v) + (1 − λ)f (a). a + λv = λ(a + v) + (1 − λ)a. − → − → Lemma 2.7. 447 . 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 ′ .Appendix B Complements of Aﬃne Geometry B.2.1 Aﬃne and Multiaﬃne Maps This section provides missing proofs of various results stated earlier. Indeed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

466 APPENDIX B. COMPLEMENTS OF AFFINE GEOMETRY .

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

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

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

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

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

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

TOPOLOGY .474 APPENDIX C.

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

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

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

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

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

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

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

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

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

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

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

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

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

488 APPENDIX D. DIFFERENTIAL CALCULUS .

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

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

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

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

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

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

Sign up to vote on this title