## Are you sure?

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

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

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

ii

iii

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

iv

Contents

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

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

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

11

13 13 20 22 22 27 32 37 44 46 48

**Part II Polynomial Curves and Spline Curves
**

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

61

63 63 74 77 81 86 93 98 101 106 116

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**Part III Polynomial Surfaces and Spline Surfaces
**

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

259

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Part IV Appendices

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

423

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

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

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

viii

CONTENTS

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

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

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

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

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

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

6 CONTENTS .

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

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

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

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

Part I Basics of Aﬃne Geometry 11 .

12 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60 CHAPTER 2. BASICS OF AFFINE GEOMETRY .

Part II Polynomial Curves and Spline Curves 61 .

62 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. EXAMPLES OF CUBICS DEFINED BY CONTROL POINTS 113 Figure 3.24: Bezier Cubic 5 .9.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MULTIAFFINE MAPS AND POLAR FORMS .142 CHAPTER 4.

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

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

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

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

j−1 m−i−j+1 i f (t r s) f (tj−1r m−i−j si+1 ) f (tm−1 r) . used during the computation: bi..j = bi if j = 0.j . .. The point f (tj r m−i−j si ) is obtained at step i of phase j. 0 ≤ i ≤ m.j−1 + t−r s−r bi+1. let us deﬁne the following points bi.... 0 ≤ i ≤ m − j.. 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) ...1. f (tj r m−i−j si ) if 1 ≤ j ≤ m. Then. where i + j + k = m.. f (tm−1 s) m−j f (tm ) rs ) f (tj sm−j ) f (tj−1 sm−j+1 ) . f (tj−1 r m−j s) . 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 ) ... .j−1 . m−1 m 1 f (tr m−1 ) 2 . 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 ). 0 ≤ i ≤ m − j..j = s−t s−r bi.. f (tj r m−i−j si ) . .5. for 1 ≤ j ≤ m.... THE DE CASTELJAU ALGORITHM 147 as f (ti r j sk ).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. 3 iterations .2.7: Subdivision. SUBDIVISION ALGORITHMS FOR POLYNOMIAL CURVES 163 Figure 5.

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11. 5. . .2.3.. . 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. and some of its B´zier control points e . .6.3: Part of a cubic spline with knot sequence . 8. . . 15. INFINITE KNOT SEQUENCES. 2.6. 1.14.9.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. 1. 5. 6 . 6.1. 3.4. 6. B-SPLINE CURVES 123 456 566 112 666 111 234 345 Figure 6.212 CHAPTER 6.10: A cubic spline with knot sequence 1. 1.6.

FINITE KNOT SEQUENCES. 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.6. 1. 3.1.6.4.3. 5. 6. 6 .6.2.11: Construction of a cubic spline with knot sequence 1.

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

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

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. 1. 7. 7. 7 . 0. 5.216 CHAPTER 6. 6. 0. 3. 7. 4. 2. 0.13: Construction of a cubic spline with knot sequence 0.

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.6.4.21: Another cubic spline with cyclic knot sequence .

228 CHAPTER 6.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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

we get αi βi γi di−1 + di + di+1 . = uN − uN −2 uN − uN −2 uN − uN −2 x1 = xN −1 . βi = ui+1 − ui−2 ui+2 − ui−1 (ui − ui−1 )2 .29: Computation of xi from di−1 .1 : ui ui ui+1 di−1 : ui−2 ui−1 ui di+1 : ui ui+1 ui+2 Figure 6. ui+1 − ui−1 ui+1 − ui−1 ui+1 − ui−1 xi = with (ui+1 − ui )2 .6. di . 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.8. it is easily veriﬁed that we get α1 β1 γ1 d0 + d1 + d2 . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) + . di+1 From the above formulae.1 : ui−1 ui ui xi : ui ui ui di. CUBIC SPLINE INTERPOLATION di : ui−1 ui ui+1 247 di−1.

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

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

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

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

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

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

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

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

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

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

B-SPLINE CURVES .258 CHAPTER 6.

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

260 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Problem 16 (30 pts). bp. . b∗q . Write a computer program implementing the de Casteljau algorithm for triangular surface patches. . . and then compute bq . . . 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.294 CHAPTER 7. j . by applying the de Casteljau algorithm to the control ∗0 points b∗0 . . Problem 15 (40 pts). j . Compare the complexity of the three algorithms depending on relative values of p and q. . . with 0 ≤ j ≤ q. .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.9: Vertices of a new E-face .354CHAPTER 9.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS .422 CHAPTER 11.

Part IV Appendices 423 .

424 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

466 APPENDIX B. COMPLEMENTS OF AFFINE GEOMETRY .

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

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

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

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

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

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

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

474 APPENDIX C. TOPOLOGY .

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

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

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

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

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

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

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

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

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

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

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

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

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

488 APPENDIX D. DIFFERENTIAL CALCULUS .

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

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

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

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

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

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

- 31444612-Robotics
- Reynolds - Ordinary and Partial Differential Equations
- Spectral Theory
- Real Time Rendering.pdf
- Banach Spaces
- Geometric Modelling
- Computer Graphics by Foley Dam Hughes
- Functions on Metric Spaces and Continuity
- Indexing Large Metric Spaces for Similarity Search
- Metric and Topological Spaces notes
- Gpu Gems 2 - Programming Techniques for High-Performance Graphics and General-Purpose Computation
- OpenGL Game Development
- Bounded Linear Operators on a Hilbert Space
- eBook Opengl Distilled
- Fundamentals of Computer Graphics 3rd Ed. - P. Shirley, S. Marschner (CRC, 2009) WW
- Baby Rudin
- Metric Spaces
- Common Fixed Point Theorems in Ultra Metric Spaces
- Complex Analysis - George Cain (Chapter 3 - Elementary Functions)
- Convex Analysis and Optimization
- Milne - Fileds and Galois Theory
- Pricing Barrier Options Using Monte Carlo Methods
- Elementary functions
- complex analysis 3
- P-Adic Hilbert Spaces
- Analysis - Hyland
- Math 103
- METRIC SPACES and SOME BASIC TOPOLOGY
- INTRODUCTION TO METRIC SPACES
- Basic Analysis

Skip carousel

- UT Dallas Syllabus for mthe5320.081.10u taught by Thomas Butts (tbutts)
- Mikhail Gromov
- Notes and Queries, Number 34, June 22, 1850A Medium of Inter-communication for Literary Men, Artists,Antiquaries, Genealogists, etc by Various
- The Simons Foundation 2008 Annual Report
- Geometry Over Non-closed Fields
- UT Dallas Syllabus for math3321.501 06s taught by Thomas Butts (tbutts)
- tmp1022.tmp
- As 10303.207-2000 Industrial Automation Systems and Integration - Product Data Representation and Exchange AP
- UT Dallas Syllabus for math5306.081.10u taught by Thomas Butts (tbutts)
- UT Dallas Syllabus for math5305.081.09u taught by Thomas Butts (tbutts)
- Old Torrance Unified Report Card
- UT Dallas Syllabus for math3321.501 05s taught by Thomas Butts (tbutts)
- tmpA22D
- Image Watermarking using Fractal Based Neighborhood Search Method
- UT Dallas Syllabus for se7301.001.11f taught by Xiaohu Guo (xxg061000)
- UT Dallas Syllabus for math5306.0s1 06u taught by Thomas Butts (tbutts)
- UT Dallas Syllabus for math3305.502.10f taught by Phillip Kisunzu (pxk091000)
- UT Dallas Syllabus for math3305.502.09f taught by (pxk091000)
- tmpF59E.tmp
- UT Dallas Syllabus for math5320.0s1 06u taught by Thomas Butts (tbutts)
- As NZS ISO 19125.2-2004 Geographic Information - Simple Feature Access SQL Option
- UT Dallas Syllabus for math5305.081.07u taught by Thomas Butts (tbutts)
- UT Dallas Syllabus for math3321.501.11s taught by Titu Andreescu (txa051000)
- UT Dallas Syllabus for math3321.501.10s taught by Titu Andreescu (txa051000)
- The Mirror of Literature, Amusement, and Instruction Volume 10, No. 273, September 15, 1827 by Various
- Bygone Beliefs
- UT Dallas Syllabus for atec4370.501 06f taught by (gch061000)
- tmp56D
- An Elementary Course in Synthetic Projective Geometry by Lehmer, Derrick Norman, 1868-1938
- Q & A on Waldram Diagrams

- 1-beam-deflection.pdf
- Array-Based Mesh Data Structures
- equvalent nodes forces appendix I BY MARIO PAZ.pdf
- Equvalent Nodes Forces Appendix I by MARIO PAZ
- 1 20071001 Trave Continua
- Math Computational Numerical analysis 537-nts.pdf
- 02 Adjacency Data Structures
- Fixed End Moments.pdf
- FUNDAMENTALS OF Linear Algebra NB.pdf
- 02 Adjacency Data Structures
- Binary_Search & Binary_Insert A_ Into Sorted Array
- Brief Introduction to Vectors and Matrices Chapter3
- 808
- Binary_Search & Binary_Insert A_ Into Sorted Array
- 24318702-Is-808-1989-Steel-Table
- 35952760 Computer Graphics 2
- Steel Hollow Sections
- 10.1.1.55.1517

Sign up to vote on this title

UsefulNot usefulClose Dialog## Are you sure?

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

Close Dialog## This title now requires a credit

Use one of your book credits to continue reading from where you left off, or restart the preview.

Loading