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

triangulations). computer vision. In this respect. we are ﬂirting with the intuitionist’s ideal of doing mathematics from a “constructive” point of view. Many problems in the above areas require some geometric knowledge. which is a main theme of this book. we are more interested in dealing with curves and surfaces from an algorithmic point of view . mechanical engineers). This book consists of four parts. 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. just to mention some key areas.Preface This book is primarily an introduction to geometric concepts and tools needed for solving problems of a geometric nature with a computer. This ensures that readers are on ﬁrm grounds to proceed with the rest of the book. this book should be of interest to a wide audience including computer scientists (both students and professionals). We present some of the main tools used in computer aided geometric design (CAGD). Thus. This material provides the foundations for the algorithmic treatment of polynomial curves and surfaces. but our goal is not to write another text on CAGD. geometric modeling. in particular the study of curves and surfaces. books dealing with the relevant geometric material are either too theoretical. and motion planning. • Part I provides an introduction to aﬃne geometry. and engineers interested in geometric methods (for example. Readers 1 . Such a point of view if of course very relevant to computer science. but in our opinion. Although we will touch some of the topics covered in computational geometry (for example. In brief. Our main goal is to provide an introduction to the mathematical concepts needed in tackling problems arising notably in computer graphics. or else rather specialized and application-oriented. This book is an attempt to ﬁll this gap. In particular. mathematicians. we provide an introduction to aﬃne geometry. This is also useful to establish the notation and terminology. 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 II deals with an algorithmic treatment of polynomial curves (B´zier curves) and e spline curves. and differential calculus. there are excellent texts on CAGD. This is in complete agreement with de Casteljau’s original spirit. and Barsky [4]. and motion planning. As it turns out. an exciting and active area of research in geometric modeling and animation. Beatty. computer vision. we highly recommend Berger [5. geometric modeling. especially the paper by DeRose et al [24] on the animated character Geri. • Part III deals with an algorithmic treatment of polynomial surfaces (B´zier rectangular e or triangular surfaces). Fiorot and Jeannin [35. readers totally unfamiliar with this material will probably have a hard time with the rest of the book. Samuel [69]. These readers are advised do some extra reading in order to assimilate some basic knowledge of geometry.2 CONTENTS proﬁcient in geometry may omit this section. This part has been included to make the material of parts I–III self-contained. just to mention some key areas. Pedoe [59]. We also include a section on subdivision surfaces. and Tisseron [83]. and spline surfaces. Dieudonn´ [25]. we only provide a cursory coverage of CAGD methods. Similarly. we are far from giving a comprehensive treatments of these topics. and Veblen e and Young [85. 31]. analysis. 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. Tisseron [83]. and Piegl and Tiller [62]. Several sections of this book are inspired by the treatment in one of several of the above texts. “Blossoming: A connect–the–dots approach to splines” [65]. • Part IV consists of appendices consisting of basics of linear algebra. For such a treatment. although we cover aﬃne geometry in some detail. However. but as Ramshaw. This is why many pages are devoted to an algorithmic treatment of curves and surfaces. we are more explicit . 6]. Samuel [69]. and we are happy to thank the authors for providing such inspiration. Our main goal is to provide an introduction to the concepts needed in tackling problems arising in computer graphics. from the short movie Geri’s game. Boehm and Prautzsch [11]. including Bartels. 86]. or use it by need . 6]. we highly recommend Berger [5. Our advice is to use it by need ! Our goal is not to write a text on the many specialized and practical CAGD methods. Pedoe [59]. do Carmo [26]. Sidler [76]. 36]. Hoschek and Lasser [45]. a tool extensively used in CAGD. Hilbert and Cohn-Vossen [42]. Berger and Gostiaux [7]. one of the most spectacular application of these concepts is the treatment of curves and surfaces in terms of control points. Riesler [68]. complements of aﬃne geometry. Lyle Ramshaw’s remarkably elegant and inspirational DEC-SRC Report. For example. Luckily. certain technical proofs that were omitted earlier. as attested by several papers in SIGGRAPH’98. radically changed our perspective on polynomial curves and surfaces. Farin [32. a great classic. On the other hand.

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

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

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

6 CONTENTS .

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

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

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

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

Part I Basics of Aﬃne Geometry 11 .

12 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60 CHAPTER 2. BASICS OF AFFINE GEOMETRY .

Part II Polynomial Curves and Spline Curves 61 .

62 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MULTIAFFINE MAPS AND POLAR FORMS .142 CHAPTER 4.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

POLYNOMIAL CURVES AS BEZIER CURVES Figure 5.164 ´ CHAPTER 5. 4 iterations .8: Subdivision.

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

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

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

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

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

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

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

f (t1 , u4, u5 )

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

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

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

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

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

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

171

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

= =

= =

um+1 um+2

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

j m−j

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

m

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

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

172 case, is shown below:

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

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

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

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

bi,j =

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

bi,j−1 +

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

bi+1,j−1 .

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

5.3. THE PROGRESSIVE VERSION OF THE DE CASTELJAU ALGORITHM

173

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

u4 − t1 u4 − u2

f (u2, u3 )

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

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

174

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

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

5.4

Derivatives of Polynomial Curves

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

5.4. DERIVATIVES OF POLYNOMIAL CURVES

175

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

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

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

i=k

i=0

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

m−i i

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

i=0

176

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

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

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

m−1 m−1

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

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

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

5.5

Joining Aﬃne Polynomial Functions

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

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

5.5. JOINING AFFINE POLYNOMIAL FUNCTIONS

177

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

m−k m−k

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

m−k m−k

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

m m

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

j i=j

i=0

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

m−i i

178 Similarly, we have

´ CHAPTER 5. POLYNOMIAL CURVES AS BEZIER CURVES

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

j

i=j

i=0

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

m−i i

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

m−i i m−i i

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

m m

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

m−i i

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

m−i k i

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

m−i i m−i i

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

m−j m−j

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

i=j

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

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

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

i m−i

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

i=j

179

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

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

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

i m−i

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

i m−i i m−i

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

m−j m−j

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

m m

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

m

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

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

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

r. q) f = g(q. You may use Mathematica. r) f = g(p. q) f = g(p. q. q. r. 0). = (0. Problem 2 (10 pts). POLYNOMIAL CURVES AS BEZIER CURVES f = g(p. r) f = g(q.182 f = g(p. 6). r. or any other available software in which graphics primitives are available. 0). q) f = g(q. −1). = (6. q. q. r) Figure 5. p. Consider (in the plane) the curve F deﬁned by the following 5 control . Test your program extensively. p) f = g(r. it is assumed that r = 0 and s = 1. over some interval [r. = (0.15: Cubic curves joining at q with C 3 -continuity 5. p.6 Problems Problem 1 (60 pts). = (6. r) f = g(p. r) ´ CHAPTER 5. 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. 6). Consider (in the plane) the curve F deﬁned by the following 5 control points: b0 b1 b2 b3 b4 = (6. s]. p. r) f = g(p. In the next three problems. 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).

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

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

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

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

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

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

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

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

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

9.192 CHAPTER 6. 8. . 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. . 2.1: Part of a cubic spline with knot sequence . 5. .. . . 15. .14. 11.6.3. 8]. Thick segments are images of [6. . 1.

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

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

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

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

2. INFINITE KNOT SEQUENCES. . 2.6. 15..9. . . 5. 11. 8. .14. .6. .3: Part of a cubic spline with knot sequence . and some of its B´zier control points e . 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.3. 1.

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

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

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

INFINITE KNOT SEQUENCES.6. 7. 0. 5. 1.6. 3. .2.5: Construction of part of a cubic spline with knot sequence .2. . . . 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. . .4. .

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

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

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

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

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

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

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

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

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

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

1. 6 . 6. 3.4.6. B-SPLINE CURVES 123 456 566 112 666 111 234 345 Figure 6.2.10: A cubic spline with knot sequence 1. 6.1. 5.212 CHAPTER 6. 1.

FINITE KNOT SEQUENCES.3.6.4. 6 . 1. 1. 3.1. 5.6. 6.11: Construction of a cubic spline with knot sequence 1.2.6. FINITE B-SPLINE CURVES 213 123 456 556 566 122 222 112 223 455 555 233 333 444 445 666 111 234 334 344 345 Figure 6.

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

γi = ui+2 − ui−1 αi = At the end points. di . = 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 . ui+1 − ui−2 (ui+1 − ui )(ui − ui−2 ) (ui − ui−1)(ui+2 − ui ) + . di+1 From the above formulae. it is easily veriﬁed that we get α1 β1 γ1 d0 + d1 + d2 . u2 − u0 u2 − u0 u2 − u0 βN −1 γN −1 αN −1 dN −2 + dN −1 + dN . CUBIC SPLINE INTERPOLATION di : ui−1 ui ui+1 247 di−1. ui+1 − ui−1 ui+1 − ui−1 ui+1 − ui−1 xi = with (ui+1 − ui )2 .1 : ui−1 ui ui xi : ui ui ui di. we get αi βi γi di−1 + di + di+1 .8.6.1 : ui ui ui+1 di−1 : ui−2 ui−1 ui di+1 : ui ui+1 ui+2 Figure 6.29: Computation of xi from di−1 .

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

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

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

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

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

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

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

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

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

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

B-SPLINE CURVES .258 CHAPTER 6.

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

260 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.322 CHAPTER 8.17: Case 2b: r ∈ ab and a ∈ rt / .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TENSOR PRODUCTS AND SYMMETRIC TENSOR PRODUCTS .422 CHAPTER 11.

Part IV Appendices 423 .

424 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

466 APPENDIX B. COMPLEMENTS OF AFFINE GEOMETRY .

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

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

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

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

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

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

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

TOPOLOGY .474 APPENDIX C.

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

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

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

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

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

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

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

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

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

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

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

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

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

488 APPENDIX D. DIFFERENTIAL CALCULUS .

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

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

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

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

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

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

- 02 Adjacency Data Structures
- Array-Based Mesh Data Structures
- 24318702-Is-808-1989-Steel-Table
- 808
- Steel Hollow Sections
- 02 Adjacency Data Structures
- Binary_Search & Binary_Insert A_ Into Sorted Array
- 10.1.1.55.1517
- Binary_Search & Binary_Insert A_ Into Sorted Array
- 35952760 Computer Graphics 2
- Brief Introduction to Vectors and Matrices Chapter3

- Computer Graphics by Foley Dam Hughes
- Geometric Modelling
- Basic Analysis
- Convex Analysis and Optimization
- Indexing Large Metric Spaces for Similarity Search
- Spectral Theory
- Analysis - Hyland
- Math 103
- complex analysis 3
- Metric Spaces
- Bounded Linear Operators on a Hilbert Space
- Metric and Topological Spaces notes
- INTRODUCTION TO METRIC SPACES
- Pricing Barrier Options Using Monte Carlo Methods
- Banach Spaces
- Problems and Solutions in Real and Complex Analysis (DeMeo)
- Complex Analysis - George Cain (Chapter 3 - Elementary Functions)
- HW9Sols
- Functions on Metric Spaces and Continuity
- Solutions Ch1-5
- Theory of Computation
- METRIC SPACES and SOME BASIC TOPOLOGY
- Chapter3 Elementary Functions
- computational statistics with matlab
- Milne - Fileds and Galois Theory
- P-Adic Hilbert Spaces
- Walter a. Strauss - Partial Differential Equations - An Introduction
- Baby Rudin
- Monte Carlo Methods for Applied Scientists
- Elementary functions

Are you sure?

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

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue reading from where you left off, or restart the preview.

scribd